ArduMower Brushless Drive

Krass, ich habe garnicht mitbekommen das die ganzen Treiber hochgingen...

Ich habe das Treiberboard 1.0 und mein Mähwerk stoppt Regelmäßig durch zu hohes Gras. Auch wenn ich fernsteuere und einfach in die Botanik fahre. Es kommt vor dass das Blatt 1 Minute steht bevor es wieder anläuft. Kein Protectionboard oder ähnliches. Ich hatte PWM vor der PWM Last Regelung immer auf 255.
Es werden auch Stöckchen, Äpfel, Birnen etc. "verarbeitet"... Allerdings gehen auch lange keine 70 Watt in den Motor (Nennleistung vom Brushless).. eher so 10 bis 20 Watt max. (laut Strommessung in der App)
Also Mower max. 2 A hatte ich letztes Jahr, bei leerem Akku... also bei 22 Volt oder so, gesamt 44Watt für alles.

Allerdings las ich auch gleich zu Anfang Mowmotor foult, odo error... oder so. Manchmal lief er dann einfach nicht an. Hab Odo Error Detection glaube einfach
auskommentiert und dann ging es immer.
 
So was ich von Markus gehört und auch auf der Homepage gesehen habe, wird Brushless wieder ausgeliefert und ist wieder bestellbar. Es ist eher aktuell das Problem mit den Brushed Treibern, das die aus sind.
 
Ardumower mit Brushless Motoren sind auch wieder bestellbar. Aktuell werden erst die noch offenen Bestellungen abgearbeitet. Ich denke das in den nächsten zwei Wochen auch die Treiber einzeln zu beziehen sind, sofern es nicht wieder zu Lieferschwierigkeiten kommt.
 
bzw. wie Hartmut schon schrieb
"Drehen die Motoren nicht an, dann die Zeilen auskommentieren. Drehen die Motoren im Stillstand dann Wert um 1 erhöhen.

Hallo zusammen,
musste jetzt meine Treiber durch eine andere Version ersetzen. Zuvor hat es bei mir gereicht die Zeilen auszukommentieren, jetzt drehen meine Motoren im Stillstand.

Welche Zahlen muss ich um 1 erhöhen? Ich spiele die ganze Zeit mit den Codezeilen, aber das Verhalten bleibet gleich.
 
Ich hätte noch eine Frage an die Leute, die JYQD-Treiber zusammen mit der Sunray-Software verwenden.

Beim Fahren mit dem Joystik fährt der Robi los und stopt wieder, fährt los und stopt wieder und das solange ich den Joystik in die gewünschte Richtung drücke. Ist das Verhalten bei euch auch so, oder muss der Mäher theoretisch fließend fahren.

Mähen habe ich noch nicht ausprobiert, bin noch nicht soweit.
 
Oh das hatte ich auch kurz. Ich habe mow pwm max 200 und pwmMax=200. Speed mit Slider bei 20 und alle STANDLEY_Control auf 0.1.
Jedenfalls fährt er nun flüssig. Bei den 0.1 Werten bin ich noch am testen wie er am besten gerade fährt.
 
Das abrupte Stoppen bei der Bluetooth oder WLAN fahrt per App ist ein Bug und liegt nicht am Treiber.

Ich kann jedem nur empfehlen sich noch eine 2,4ghz funke und ein Empfänger zu besorgen und den Einzubauen.
Ein Traum. Ich kann mal ein Video hochladen, dann versteht ihr was ich meine.
 
Danke Hartmut, die Einstellungen werde ich, wenn es nicht regnet ausprobieren.

Ich habe vorhin das ausprobiert:
// motor speed control (PID coefficients) - these values are tuned for Ardumower motors
// general information about PID controllers: https://wiki.ardumower.de/index.php?title=PID_control
#define MOTOR_PID_KP 1.0 // do not change 2.0 (for non-Ardumower motors or if the motor speed control is too fast you may try: KP=1.0, KI=0, KD=0)
#define MOTOR_PID_KI 0 // do not change 0.03
#define MOTOR_PID_KD 0 // do not change 0.03
Das Ding fuhr richtig flussig, hat richtig Spaß gemacht, habe manuell den ganzen Graten abgefahren und geguckt, wo ich kein FIX habe . Muss ich schauen, ob es hier noch was besseres geht.
STANDLEY_Control auf 0.1
Irgendwo oben hast du geschrieben, das es auf 0 gesetzt werden soll, das habe ich aktuell. Jedenfalls probiere ich 0,1 auch mal aus

@Mr. Tree: Welche Motoren bzw. Treiber hast du, evtl. mal meine Einstellungen ausprobieren. Wie gesagt, das lief mit dem Joystik richtig gut.
 
Ich habe die BL Motoren und das V1.0 Board, eines der super ersten.
Das stoppen war bei einer älteren Firmware aufgetaucht, dann war es mal weg, und nun ist es bei mir wieder da.
Es liegt nicht am Treiber, da bin ich mir sicher. Der setzt einfach das um was an PWM Wert reingeht.
Es ruckt ja auch nur bei Fernsteuerung, im Betrieb gibt es das nicht. Du fährst 2 sek, dann ruckstopp, dann weiter...
Für mich ist es aber nicht schlimm, da ich zum Programmieren oder manuelle Mähen die Funke im RC Modus und einen Gartenstuhl nehme ^^
 
Welche Zahlen muss ich um 1 erhöhen? Ich spiele die ganze Zeit mit den Codezeilen, aber das Verhalten bleibet gleich.
Du kannst die auskommemtierten Zeilen wieder Aktivieren und testen ob die Motoren dann stehen und anlaufen. Wenn sie nicht anlaufen dann von -2 auf Minus 1 erhöhen. Drehen die Motoren bei Minus 2 immer noch dann auf Minus 3 gehen.
AmRobotDriver.cpp zu finden in sunray/src/driver/ ab etwa Zeile 135

void AmMotorDriver::setBrushless(int pinDir, int pinPWM, int speed) {
//DEBUGLN(speed);
if (speed < 0) {
digitalWrite(pinDir, HIGH) ;
//if (speed >= -2) speed = -2; //>hier
pinMan.analogWrite(pinPWM, ((byte)abs(speed)));
} else {
digitalWrite(pinDir, LOW) ;
// if (speed <= 2) speed = 2; //>hier
pinMan.analogWrite(pinPWM, ((byte)abs(speed)));
}
Hier in den roten Zeilen ändern.
 
Hallo Hartmut,
ich habe gefüllt alles ausprobiert von:
if (speed >= -2) speed = -2
bis
if (speed >= -10) speed = -10

und gleichzeitig
if (speed <= 2) speed = 2
bis
if (speed <= 10) speed = 10

ohne Erfolg, deswegen war die Frage welche Zahlen genau (beide gleichzeitig oder nicht usw.)

Aber wie gesagt die Lösung aus dem Github hat dann im Endeffekt funktioniert

Gruß
Alexander
 
Ich habe die BL Motoren und das V1.0 Board, eines der super ersten.
Das stoppen war bei einer älteren Firmware aufgetaucht, dann war es mal weg, und nun ist es bei mir wieder da.
Es liegt nicht am Treiber, da bin ich mir sicher. Der setzt einfach das um was an PWM Wert reingeht.
Es ruckt ja auch nur bei Fernsteuerung, im Betrieb gibt es das nicht. Du fährst 2 sek, dann ruckstopp, dann weiter...
Für mich ist es aber nicht schlimm, da ich zum Programmieren oder manuelle Mähen die Funke im RC Modus und einen Gartenstuhl nehme ^^
Hello,

yes, I've seen sometimes this behavior. I don't have a V1.0 Board, (it is a homemade). I haven't really understood the problem.
I'm closed to restart my investigations. I ll let you know
 
Was noch noch nicht ganz klar ist sind die PID Werte. Da sind im Wiki Formeln und der Hinweis den P Wert zu erhöhen bis es eine ozieliert - abflachende Welle gibt. Poste gleich vom Laptop mal die Formeln. Kann nur durch Versuch und Irrtum gefunden werden. Wenn es heute trocken wird teste ich mal.
 
// für BL Mototen mit JYQD_V7.3E3
// Erhöhen sie P bis das System zu oszillieren beginnt
// Set I=0.6*P und D=0.125*P // P=I/0.6

#define MOTOR_PID_KP 1.0 // Fehler-Vektor A nach B // do not change 2.0 (for non-Ardumower motors or if the motor speed control is too fast you may try: KP=1.0, KI=0, KD=0)

#define MOTOR_PID_KI 0.6 //Ausrichtungsfehler // do not change 0.03
#define MOTOR_PID_KD 0.125 // Ableitung- Geschwindigkeit zum Ziel verlangsamen // do not change 0.03

Hier muss für die Treiber JYQD der optimale Wert gefunden werden.
Hat hier schon jemand Erfahrungen und Testwerte für den sauberen Wendepunkt und Geradeauslauf beim Mähen?

Mit den Orginalwerten fährt er beim Wenden zu weit und dann oft schräg auf einer anderen Bahn zum Ziel.
Die Werte oben will ich heute testen und dann schrittweise verändern.
 
Man müsste die Ausgabewerte und Sollwerte loggen, dann könnte man die Parameter nach konventioneller Methode aus einem Diagram ablesen.

Ich würde Integral und Differentialwerte estmal Standard lassen und nur den Proportionalanteil variieren.
 
Wegen dem Stop and Go per Bluetooth sollten wir mal untersuchen per seriellem Monitor was an der ESP32 alles ankommt. Und dann entsprechend die Bleutooth Parameter anpassen die wie folgt in der Config.h im Odner esp32_ble zu finden ist.

// bluetooth low energy (BLE)
#define USE_BLE 1 // comment this line to remove BLE support
#define BLE_MTU 20 // max. transfer bytes per BLE frame
#define BLE_MIN_INTERVAL 2 // connection parameters (tuned for high speed/high power consumption - see: https://support.ambiq.com/hc/en-us/articles/115002907792-Managing-BLE-Connection-Parameters)
#define BLE_MAX_INTERVAL 10
#define BLE_LATENCY 0
#define BLE_TIMEOUT 30
 
Oben