Rutschen den Hang runter, warum bremst der Mower nicht

Und wie schaut es mit den PID und Stanley Werten aus?
Hast du da Anpassungen gemacht bzw. ist das ähnlich zu den JYQD 2017 Treibern?
 
Ah perfekt, das Thema kannte ich nicht, top!

Dann bleibt nur die Frage mit dem Remote RC Pins, da einfach simpel eine einzelne Leitung auf den Brake Eingang ziehen oder muss zusätzlich noch irgendwo 5V/GND mit angeschlossen werden? Sind die unteren beiden PINs korrekt beim P13 PCB Port?
 
Danke für die Hilfe!
Ich berichte in paar Wochen wenn die Treiber angekommen und umgebaut sind. :)
 
Kannst du uns hier rüber auf dem laufenden halten wie deine Erfahrung sind?


Ich hab ein anderes Phänomen, bei mir scheint es so als mäht der Mower problemlos Stunden lang. (Wobei Langzeittests wegen Trockenheit noch nicht da)
Wollte gestern die Karte neu einmessen und daher viel per Hand gefahren mit der App/Steuerkreuz und bemerkt das dann die Geartreiber recht schnell abschalten.
Hatte gestern innerhalb von 5min, 3x dass ein Rad plötzlich ausgefallen ist und nur via Robot Reboot wiederzubeleben war.
Auch die Bremse war dann auf dem Rad nicht mehr aktiv, scheint so als wäre der Ganze Treiber ausgestiegen.

Hast du ähnliche Probleme bemerkt, es waren 2x rechts und 1x links betroffen, daher würde ich Fehlfunktion eines einzelnen Treiber ausschließen.
Ich werde den Code auch mal verrücken wie von dir im anderen Thread angemerkt und gleich nochmal auf die Piste gehen.
 
Die Codeänderung hat leider keine Verbesserung gebracht, ich hatte gestern 2 Ausfälle, davor war 1 Woche Ruhe. Ich habe tatsächlich jetzt die Treiber in Verdacht. Diese gehen in den Fehlerzustand, und dieser lässt sich per Reboot zurück setzen. Da beim Reboot die Treiber weiterhin unter Spannung stehen brauchen wir hier keine Hardwareänderung. Die restlichen Pins lassen sich aus der Software ansteuern. Also müssten wir das durch kleine Codeänderung lösen können. Meine Vermutung ist, dass wir den Brake Pin im Faultrecovery Fall auch zurücksetzen sollten

Gruss
Alexander
 
So, ich schon wieder,
habe mein Problem erstmal in den Griff bekommen. Ich habe die JYQD Treiber (lt. Internetrecherche sollen es wohl Versionen aus 2017 sein) aus dem Shop erstmal ausgebaut und für den Einsatz bei mir für ungeeignet befunden. Es gibt aber JYQD Treiber aus 2021. Diese haben den gleichen Chip JY01 verbaut, vermutlich in der anderen Version. Aktuell über Bucht zu beziehen, sehen so aus:
Anhang anzeigen 4807
Diese haben Brake-Eingang der über 5V ausgelöst wird. Leider bietet der BL-Adapter oder die Software keinen separaten Pin zum Auslösen der Brake Funktionalität. Hierfür habe ich 2 Remote Pins missbraucht. Also PinRemoteSwitch mit Brake Eingang des linken Motors und PinRemoteSpeed mit Brake Eingang des rechten Moors verbunden.
Anhang anzeigen 4808
Wie man sieht sind diese bereits Levelgeshifted, so dass diese direkt für den Treiber einsetzbar sind.
Dann noch einige Zeilen in der AmRobotDriver.cpp ändern:
Code:
....
// left wheel motor
  pinMode(pinMotorEnable, OUTPUT);
  digitalWrite(pinMotorEnable, gearsDriverChip.enableActive);
  pinMode(pinMotorLeftPWM, OUTPUT);
  pinMode(pinMotorLeftDir, OUTPUT);
  pinMode(pinMotorLeftSense, INPUT);
  pinMode(pinMotorLeftFault, INPUT);
  pinMode(pinRemoteSwitch, OUTPUT); //Brake für JYQD 2021 bei 0% PWM

  // right wheel motor
  pinMode(pinMotorRightPWM, OUTPUT);
  pinMode(pinMotorRightDir, OUTPUT);
  pinMode(pinMotorRightSense, INPUT);
  pinMode(pinMotorRightFault, INPUT);
  pinMode(pinRemoteSpeed, OUTPUT); //Brake für JYQD 2021 bei 0% PWM
  ....
  void AmMotorDriver::setMotorPwm(int leftPwm, int rightPwm, int mowPwm){
  // remember speed sign during zero-transition
  if (leftPwm < 0) leftSpeedSign = -1;
  if (leftPwm > 0) leftSpeedSign = 1;
  if (rightPwm < 0) rightSpeedSign = -1;
  if (rightPwm > 0) rightSpeedSign = 1;
  if (mowPwm < 0) mowSpeedSign = -1;
  if (mowPwm > 0) mowSpeedSign = 1;  
 
  // limit pwm to ramp if required
  if (gearsDriverChip.usePwmRamp){
    int deltaLeftPwm = leftPwm-lastLeftPwm;
    leftPwm = leftPwm + min(1, max(-1, deltaLeftPwm));  
    int deltaRightPwm = rightPwm-lastRightPwm;
    rightPwm = rightPwm + min(1, max(-1, deltaRightPwm));  
  }
  if (mowDriverChip.usePwmRamp){
    int deltaMowPwm = mowPwm-lastMowPwm;
    mowPwm = mowPwm + min(1, max(-1, deltaMowPwm));    
  }

  // remember last PWM values
  lastLeftPwm = leftPwm;
  lastRightPwm = rightPwm;
  lastMowPwm = mowPwm;

  // apply motor PWMs
  setMotorDriver(pinMotorLeftDir, pinMotorLeftPWM, leftPwm, gearsDriverChip, leftSpeedSign);
  setMotorDriver(pinMotorRightDir, pinMotorRightPWM, rightPwm, gearsDriverChip, rightSpeedSign);
  setMotorDriver(pinMotorMowDir, pinMotorMowPWM, mowPwm, mowDriverChip, mowSpeedSign);
 
  // disable driver at zero speed (brake function)  
  bool enableGears = gearsDriverChip.enableActive;
  bool enableMow = mowDriverChip.enableActive;
  if (gearsDriverChip.disableAtPwmZeroSpeed){
    if ((leftPwm == 0) && (rightPwm == 0)){
      enableGears = !gearsDriverChip.enableActive;              
    }
    digitalWrite(pinMotorEnable, enableGears);
  }
  if (mowDriverChip.disableAtPwmZeroSpeed){
    if (mowPwm == 0) {
      if (mowDriverChip.disableAtPwmZeroSpeed){
        enableMow = !mowDriverChip.enableActive;
      }
    }    
    digitalWrite(pinMotorMowEnable, enableMow);
  }
  //Brake über RC Buchse für die JYQD 2021
  if (leftPwm == 0) digitalWrite(pinRemoteSwitch, HIGH);
    else digitalWrite(pinRemoteSwitch, LOW);
  if (rightPwm == 0) digitalWrite(pinRemoteSpeed, HIGH);
    else digitalWrite(pinRemoteSpeed, LOW);
  //ENDE
}

Das war's, und hier ist das Ergebnis:
habe das bei mir jetzt auch umgesetzt. Leider ohne Erfolg. Irgendetwas mache ich noch falsch. Habe eben mal gemessen. Wenn ich den RemoteSpeed-Pin auf High setze, messe ich die 5V, so wie es sein soll. Wenn ich diesen mit dem Brake-Eingang vom Treiber verbinde, sackt die Spannung auf 2.7V zusammen und es wird nicht gebremst. Hat jemand einen Tip für mich?
 
Welche Version der JYQD Treiber hast du genau?
Da es da ja mittlerweile drölf Versionen von gibt... nicht dass es daran schon scheitert.
 
Ich habe den hier beschriebenen ZS-X11D1, der die Aufschrift ZS-X11H trägt. Ich hoffe mal, dass es davon nicht auch noch Untervarianten gibt.

Mal ne andere (vielleicht dumme) Frage: kann ich den Treiber alternativ zur Bremse einfach gegen die Fahrtrichtung bestromen? Dann bremst er ja auch.
 
Ich habe den hier beschriebenen ZS-X11D1, der die Aufschrift ZS-X11H trägt. Ich hoffe mal, dass es davon nicht auch noch Untervarianten gibt.

Mal ne andere (vielleicht dumme) Frage: kann ich den Treiber alternativ zur Bremse einfach gegen die Fahrtrichtung bestromen? Dann bremst er ja auch.
Here a picture on how i wire a ZS-X11H on teensy project.
I don't understand why you want to use the 5V remote Pin , simply use the direct 3.3V output of AGCM4

RED wire is PWM ,it's directly3.3V coming from the teensy , so certainly same for AGCM4
YELLOW and GREEN are also 3.3V output of TEENSY.
Purple is the odometry and it's 5V signal , so connect it to the ODO input of the PCB1.4




1719250043116.png
 
Oben