Habe jetzt das Bord 1.4 fertig gemacht und in Betrieb genommen. Mit einigen Schwierigkeiten. Ist das richtig, dass keine Pull-up Widerstande auf dem Adafruit Grand Central M4 mehr benötigt werden? Ich habe sie abgebaut und danach hatte ich auch die Verbindung mit EVO über ESP32. Soweit so gut.
Mein Problem, die Steuerung mit EVO ist einmal ca. 1 bis 2 Sek. zeitversetzt, bis eine Reaktion erfolgt zu anderen drehen sich die Räder nur eine viertel Umdrehung, dann ist Stopp. Sie drehen vorwärts und rückwärts, aber nur eine viertel Umdrehung.
Im Odometrie Test werden folgende Werte angezeigt:
t=10 ticks Left=2549 Right=2570 current Left=0.04 Right=0.04
nach t = 10, bleiben die Motoren stehen. In die Config.h habe ich folgende Werte einegtragen:
#define FREEWHEEL_IS_AT_BACKSIDE true // default Ardumower: true (change to false, if your freewheel is at frontside) - this is used for obstacle avoidance
#define WHEEL_BASE_CM 38 // wheel-to-wheel distance (cm)
#define WHEEL_DIAMETER 220 // wheel diameter (mm)
#define ENABLE_ODOMETRY_ERROR_DETECTION true // Verwenden Sie dies, um Odometriefehler zu erkennen_use this to detect odometry erros
Hat jemand eine Idee oder wo habe ich Fehler gemacht?
Software: 10.0.230 Sunray, ESP32
// #define ENABLE_ODOMETRY_ERROR_DETECTION false
// choose ticks per wheel revolution :
// ...for the 36mm diameter motor (blue cap) https://www.marotronics.de/2-x-36er-DC-Planeten-Getriebemotor-24-Volt-mit-HallIC-30-33-RPM-8mm-Welle
//#define TICKS_PER_REVOLUTION 1310 / 2 // odometry ticks per wheel revolution
// ...for the 36mm diameter motor (black cap) https://www.marotronics.de/MA36-DC-...-30-33-RPM-8mm-Welle-ab-2-Stueck-Staffelpreis
#define TICKS_PER_REVOLUTION 550 / 2
// ...for the newer 42mm diameter motor (green connector) https://www.marotronics.de/MA42-DC-...-30-33-RPM-8mm-Welle-ab-2-Stueck-Staffelpreis
// #define TICKS_PER_REVOLUTION 696 / 2 // odometry ticks per wheel revolution
// ...for the older 42mm diameter motor (white connector) https://wiki.ardumower.de/images/d/d6/Ardumower_chassis_inside_ready.jpg
//#define TICKS_PER_REVOLUTION 1050 / 2 // odometry ticks per wheel revolution
// ...for the brushless motor april 2021 https://wiki.ardumower.de/index.php?title=Datei:BLUnit.JPG
//#define TICKS_PER_REVOLUTION 1300 / 2 // 1194/2 odometry ticks per wheel revolution
// #define TICKS_PER_REVOLUTION 304 // odometry ticks per wheel revolution (RM18)
#define MOTOR_PID_KP 2.0 // do not change 2.0 (für Nicht-Ardumower-Motoren oder wenn die Motordrehzahlregelung zu schnell ist, können Sie versuchen: KP=1.0, KI=0, KD=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.03 // do not change 0.03
#define MOTOR_PID_KD 0.03 // do not change 0.03
//#define MOTOR_LEFT_SWAP_DIRECTION 1 // uncomment to swap left motor direction
//#define MOTOR_RIGHT_SWAP_DIRECTION 1 // uncomment to swap right motor direction
#define ENABLE_DYNAMIC_MOWER_SPEED false
#define SPEED_ACCELERATION 0.005 // Speed factor will be changed with every programm loop
#define SPEED_FACTOR_MAX 1.2
#define SPEED_FACTOR_MIN 0.5
#define USE_MOWMOTOR_CURRENT_AVERAGE true
#define MOWMOTOR_CURRENT_FACTOR 0.25
Mein Problem, die Steuerung mit EVO ist einmal ca. 1 bis 2 Sek. zeitversetzt, bis eine Reaktion erfolgt zu anderen drehen sich die Räder nur eine viertel Umdrehung, dann ist Stopp. Sie drehen vorwärts und rückwärts, aber nur eine viertel Umdrehung.
Im Odometrie Test werden folgende Werte angezeigt:
t=10 ticks Left=2549 Right=2570 current Left=0.04 Right=0.04
nach t = 10, bleiben die Motoren stehen. In die Config.h habe ich folgende Werte einegtragen:
#define FREEWHEEL_IS_AT_BACKSIDE true // default Ardumower: true (change to false, if your freewheel is at frontside) - this is used for obstacle avoidance
#define WHEEL_BASE_CM 38 // wheel-to-wheel distance (cm)
#define WHEEL_DIAMETER 220 // wheel diameter (mm)
#define ENABLE_ODOMETRY_ERROR_DETECTION true // Verwenden Sie dies, um Odometriefehler zu erkennen_use this to detect odometry erros
Hat jemand eine Idee oder wo habe ich Fehler gemacht?
Software: 10.0.230 Sunray, ESP32
// #define ENABLE_ODOMETRY_ERROR_DETECTION false
// choose ticks per wheel revolution :
// ...for the 36mm diameter motor (blue cap) https://www.marotronics.de/2-x-36er-DC-Planeten-Getriebemotor-24-Volt-mit-HallIC-30-33-RPM-8mm-Welle
//#define TICKS_PER_REVOLUTION 1310 / 2 // odometry ticks per wheel revolution
// ...for the 36mm diameter motor (black cap) https://www.marotronics.de/MA36-DC-...-30-33-RPM-8mm-Welle-ab-2-Stueck-Staffelpreis
#define TICKS_PER_REVOLUTION 550 / 2
// ...for the newer 42mm diameter motor (green connector) https://www.marotronics.de/MA42-DC-...-30-33-RPM-8mm-Welle-ab-2-Stueck-Staffelpreis
// #define TICKS_PER_REVOLUTION 696 / 2 // odometry ticks per wheel revolution
// ...for the older 42mm diameter motor (white connector) https://wiki.ardumower.de/images/d/d6/Ardumower_chassis_inside_ready.jpg
//#define TICKS_PER_REVOLUTION 1050 / 2 // odometry ticks per wheel revolution
// ...for the brushless motor april 2021 https://wiki.ardumower.de/index.php?title=Datei:BLUnit.JPG
//#define TICKS_PER_REVOLUTION 1300 / 2 // 1194/2 odometry ticks per wheel revolution
// #define TICKS_PER_REVOLUTION 304 // odometry ticks per wheel revolution (RM18)
#define MOTOR_PID_KP 2.0 // do not change 2.0 (für Nicht-Ardumower-Motoren oder wenn die Motordrehzahlregelung zu schnell ist, können Sie versuchen: KP=1.0, KI=0, KD=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.03 // do not change 0.03
#define MOTOR_PID_KD 0.03 // do not change 0.03
//#define MOTOR_LEFT_SWAP_DIRECTION 1 // uncomment to swap left motor direction
//#define MOTOR_RIGHT_SWAP_DIRECTION 1 // uncomment to swap right motor direction
#define ENABLE_DYNAMIC_MOWER_SPEED false
#define SPEED_ACCELERATION 0.005 // Speed factor will be changed with every programm loop
#define SPEED_FACTOR_MAX 1.2
#define SPEED_FACTOR_MIN 0.5
#define USE_MOWMOTOR_CURRENT_AVERAGE true
#define MOWMOTOR_CURRENT_FACTOR 0.25