Lawn Mower AWD Mähroboter Allrad Automower All wheel drive 4WD von Fürst Ruprecht

Hallo Michael,
für die aktuell in Github stehende Version.
Ich habe auch noch einen Fehler gefunden.
Möglicherweise ist ein zusätzlicher Wert nicht ausdokumentiert.
Meine persönliche Version ist deutlich aufgebohrt und auf meinem Rechner ist ein leichter Durcheinander, da habe ich wohl etwas gemixt.
Evtl. // kommentierst Du die Zeile einfach mal weg.
Ich versuche schnellst möglich eine korrigierte Version einzustellen.
Ah, hilfreich wäre natürlich ein Hinweis auf die Variable die nicht deklariert ist.
Gruß Fürst Ruprecht
 
Servus,
ich war heute morgen leider auf dem Sprung daher nur unzureichende Infos.
Also ich nutz den sheepsheep branch, der sollte wohl auf 1.07a basieren.
Die Fehlermeldungen kommenwohl aus der Pfodd.cpp:

sketch\pfod.cpp: In member function 'void RemoteControl::sendMowMenu(boolean)':
pfod.cpp:410:20: error: 'class Robot' has no member named 'motorMowForceOff'; did you mean 'motorMowAccel'?
sendYesNo(robot->motorMowForceOff);
^~~~~~~~~~~~~~~~
motorMowAccel
sketch\pfod.cpp: In member function 'void RemoteControl::processMowMenu(String)':
pfod.cpp:443:48: error: 'class Robot' has no member named 'motorMowForceOff'; did you mean 'motorMowAccel'?
else if (pfodCmd.startsWith("o12")) robot->motorMowForceOff = !robot->motorMowForceOff;
^~~~~~~~~~~~~~~~
motorMowAccel
pfod.cpp:443:75: error: 'class Robot' has no member named 'motorMowForceOff'; did you mean 'motorMowAccel'?
else if (pfodCmd.startsWith("o12")) robot->motorMowForceOff = !robot->motorMowForceOff;
^~~~~~~~~~~~~~~~
motorMowAccel
sketch\pfod.cpp: In member function 'void RemoteControl::sendFreeWheelMenu(boolean)':
pfod.cpp:484:20: error: 'class Robot' has no member named 'freeWheelUse'; did you mean 'remoteUse'?
sendYesNo(robot->freeWheelUse);
^~~~~~~~~~~~
remoteUse
pfod.cpp:486:20: error: 'class Robot' has no member named 'freeWheelIsMoving'
sendYesNo(robot->freeWheelIsMoving);
^~~~~~~~~~~~~~~~~
sketch\pfod.cpp: In member function 'void RemoteControl::processFreeWheelMenu(String)':
pfod.cpp:506:32: error: 'class Robot' has no member named 'freeWheelUse'; did you mean 'remoteUse'?
if (pfodCmd == "w00") robot->freeWheelUse = !robot->freeWheelUse;
^~~~~~~~~~~~
remoteUse
pfod.cpp:506:55: error: 'class Robot' has no member named 'freeWheelUse'; did you mean 'remoteUse'?
if (pfodCmd == "w00") robot->freeWheelUse = !robot->freeWheelUse;
^~~~~~~~~~~~
remoteUse
sketch\pfod.cpp: In member function 'void RemoteControl::sendPerimeterMenu(boolean)':
pfod.cpp:560:28: error: 'class Robot' has no member named 'perimeterMagleft'; did you mean 'perimeterMag'?
serialPort->print(robot->perimeterMagleft);
^~~~~~~~~~~~~~~~
perimeterMag
pfod.cpp:561:14: error: 'class Robot' has no member named 'perimeterMagleft'; did you mean 'perimeterMag'?
if (robot->perimeterMagleft < 0) serialPort->print(" (inside)");
^~~~~~~~~~~~~~~~
perimeterMag
pfod.cpp:587:27: error: 'class Robot' has no member named 'lastSensorTriggeredName'; did you mean 'lastSetMotorSpeedTime'?
serialPort->print(robot->lastSensorTriggeredName());
^~~~~~~~~~~~~~~~~~~~~~~
lastSetMotorSpeedTime
sketch\pfod.cpp: In member function 'void RemoteControl::sendCommandMenu(boolean)':
pfod.cpp:1030:27: error: 'class Robot' has no member named 'lastSensorTriggeredName'; did you mean 'lastSetMotorSpeedTime'?
serialPort->print(robot->lastSensorTriggeredName());
^~~~~~~~~~~~~~~~~~~~~~~
lastSetMotorSpeedTime
sketch\pfod.cpp: In member function 'void RemoteControl::processLiveDataPerimeterMenu(boolean)':
pfod.cpp:1251:28: error: 'class Robot' has no member named 'perimeterMagleft'; did you mean 'perimeterMag'?
serialPort->print(robot->perimeterMagleft);
^~~~~~~~~~~~~~~~
perimeterMag
pfod.cpp:1253:28: error: 'class Robot' has no member named 'perimeterMagright'; did you mean 'perimeterMag'?
serialPort->print(robot->perimeterMagright);
^~~~~~~~~~~~~~~~~
perimeterMag
pfod.cpp:1261:28: error: 'class Robot' has no member named 'PIDX'
serialPort->print(robot->PIDX);
^~~~
sketch\pfod.cpp: In member function 'void RemoteControl::run()':
pfod.cpp:1327:32: error: 'class Robot' has no member named 'perimeterMagleft'; did you mean 'perimeterMag'?
serialPort->print(robot->perimeterMagleft);
^~~~~~~~~~~~~~~~
perimeterMag
pfod.cpp:1483:32: error: 'class Robot' has no member named 'freeWheelIsMoving'
serialPort->print(robot->freeWheelIsMoving);
^~~~~~~~~~~~~~~~~
pfod.cpp:1500:32: error: 'class Robot' has no member named 'perimeterMagleft'; did you mean 'perimeterMag'?
serialPort->print(robot->perimeterMagleft);
^~~~~~~~~~~~~~~~
perimeterMag
exit status 1
'class Robot' has no member named 'motorMowForceOff'; did you mean 'motorMowAccel'?


Gruss Michael
 
Hallo Michael,
Danke für die Informationen.
Der Fehler „motorMowForceOff“ liegt in den Unterschieden der robot.h der beiden Softwareversionen.
Bis eben wußte ich garnicht, daß es diese, Deine Variante gibt.
Die Offizielle:

EC52E2C3-CF6C-485C-A3DD-BCA66E002BD2.png

Deine Variante:

BC5DDEE3-4E86-4611-BF47-B82DBCA669FA.png

Leichte Unterschiede :)

Die anderen Punkte sind ebenfalls Abweichungen zwischen den Versionen.
Lediglich PerimterMagLeft ist mein Fehler, der daraus resultiert, daß ich zwei Empfänger einsetze.
Der normale Fall steht aber ebenfalls auskommentiert in pfod.ccp , müßte umgekehrt sein.
Gruß Fürst Ruprecht
 
Nirgends.
Der code steht unter Mitglieder und ihre Ardumower - im Beitrag - 4motion 4wd allrad


Gruß Fürst Ruprecht
 
Hallo Leute,

mein 4wd humpelt zur Zeit immer noch als 2WD mit Stützraht über den Rasenn (wegen Servodefekt). Die Teile für die nächste Baustufe sind aber da, die Konstruktion läuft.
In der Zwischenzeit habe ich die Azurite-Software und die PFOD/ESP-Webserver geringfügig an meine Bedürfnisse angepaßt.
Änderungen:
Azurite: RC-Steuerung, Bevorzugte Wenderichtung anstatt random, Einstellung Trackinggeschwindigkeit (MaxSpeedperiPwm), Bremsen, Wendewinkel einstellbar, Lenkung per servo (ist auskommentiert, evtl nicht vollständig, habe ich jetzt nicht gecheckt), zwei Perimeterempfänger - angepaßtes Tracking etc. , Softborder - Beidrehen bei Drahtanfahren im steilen Winkel, Drahtfolgen für x-Sekunden ->LÄUFT LEIDER NICHT, finde den Bug nicht.

PFOD: Compass mit grafischer Anzeige Soll/Ist und zusätzlichen Buttons, LiveData - wie gehabt, passende Steuerung der o.g. Funktionen, Timer von thorsten.
Hier gibt es ein Problem, daß bei den umfangreichen Menuseiten nicht alle Details richtig angezeigt werden (die Werteübermittlung aber funktioniert). Ich vermute ein Problem aufgrund der Datentransfer-Menge oder ein Timingproblem.

Ich freue mich über Feedback und Hilfe beim Fehlerabarbeiten.

Gruß Fürst Ruprecht
 

Anhänge

  • ardumower_azurite_FuerstRuprecht.zip
    267,9 KB · Aufrufe: 24
PFOD - mein aktueller Stand:
die Standardversion sollte mit dem Azurite-Stand vom 9.08.2020 laufen.
Bei den html-files gibt es dann eine Custom-Version, die in der pfod auskommentiert ist. Zur Verwendung der custom-version die html-Dateien umbenennen (z.B. compass.html ->cpmpass-standard.html und compass_custom.html->compass.html) und die Codeabschnitte entsprechend aus/einkommentieren.
Auch hier freue ich micht über Feedback, insbesondere zum Problem der fehlerhaften Anzeige (siehe oben).

Gruß Fürst Ruprecht
 

Anhänge

  • MowerWebControl_ESP32_02092020.zip
    122,5 KB · Aufrufe: 22
Hi. Nice project. I too have plans on making a mower with two blade motors and 4WD. What modifications or how did you wire the motors to the PCB board? Thanks.

Dan
 
Hello Dan, I switched the right and left motors in parallel. It works very well. This creates an ABS effect. The concept has two weak points. The servomotor for the steering must be very powerful and is heavily loaded when driving along the perimeter. Because of the limited steering angle, the Mower cannot turn on the spot - this must be adjusted in the software. The 4WD is far superior to the 2WD in sloping terrain (my experience). I'm currently working on a new solution that allows the steering to turn 180 degrees. Here all 4 wheels have to be controlled individually.
Gruß Fürst Ruprecht
 
This creates an ABS effect.
Could you clarify what ABS effect is.?

The servomotor for the steering must be very powerful and is heavily loaded when driving along the perimeter.
Are you speaking of each of the drive motors or the dual MC33926 motor driver? If it is the motor driver which one are you running?

The 4WD is far superior to the 2WD in sloping terrain (my experience).
I live in Florida and our grass is very thick and if it grows too much it will bog down and sometimes stop a gas mower. I wasn't sure that a single caster would get through our grass even when it had been cut so I started considering 4WD. So, are you running duel blade motors in parallel? Thanks for your help.

Dan
 
Hallo Dan,
ABS is anti-blocking system.
In the current mower I use the PCB-1.3 in the standard configuration. Two MC33926, one for the right / left motors, one for the two mower motors.
In the next mower, each drive motor must have its own driver because of the 180 degree steering. For this I bought some VNH5019. The VNH5019 can be equipped with a larger heat sink. From my point of view, you have to cool all drivers well in Florida. I have re-laid the lawn and it is very dense. In summer, the driver for the mower motor often switches off. The two mower motors run in parallel. I use two “Ambrogio Robot 50_D0018_02” mower blades with a diameter of 25cm - (2x25 = 50) which is too much! The mower is currently 50cm wide, the wheels are 21cm in diameter. The layout is such that the mower mows to the edge (outer edge of the wheels). In the new concept I will change the following (this is also my recommendation to you): width mower = 44cm, wheels = 21cm, Ambrogio knife shorten to 22cm. 6xVNH5019 with heat sink outside the E-box. 180 degree steering. (Teensy 4.1 as a controller?).

¿Es el césped de Florida como el de México?
Gruß Fürst Ruprecht
 
Hi Dan,
ABS is an anti-blocking system.
In the current mower I use the PCB-1.3 in the standard configuration. Two MC33926, one for the right / left motors, one for the two mower motors.
In the next mower, each drive motor must have its own driver because of the 180 degree steering. For this I bought some VNH5019. The VNH5019 can be equipped with a larger heat sink. From my point of view, you have to cool all drivers well in Florida. I have re-laid the lawn and it is very dense. In summer, the driver for the mower motor often switches off. The two mower motors run in parallel. I use two “Ambrogio Robot 50_D0018_02” mower blades with a diameter of 25cm - (2x25 = 50) which is too much! The mower is currently 50cm wide, the wheels are 21cm in diameter. The layout is such that the mower mows to the edge (outer edge of the wheels). In the new concept I will change the following (this is also my recommendation to you): width mower = 44cm, wheels = 21cm, Ambrogio knife shorten to 22cm. 6xVNH5019 with heat sink outside the E-box. 180 degree steering. (Teensy 4.1 as a controller?).

¿Es el césped de Florida como el de México?
Greetings to Prince Ruprecht

Just bought my PCB and thanks for the help. I might as a couple of questions in the future. And yes I do have very thick St. Augustine grass. :)
 
Gibt es eine aktuelle Version für den ESP 8266??? Die Version von Seite 1 ist nicht lauffähig. Liegt jedoch an der pfod.cpp.
Gibt Fehlermeldungen beim Kompilieren
 
Ich hab da schon einiges auskommentiert und nun geht's... Mit perimeterMagrechts oder links war was... Ich gucke am Wochenende Mal und schreibe das hier rein.
 
Hallo zusammen,
anbei meine gedruckten Räder mit Silikonstollen. Da die Kunststoffvariante auf dem Rasenkantenstein zu laut klappert, habe ich es jetzt mit angegossenen Silikon-Stollen probiert. Auch waren meine bisherigen Reifenprofile nicht wirklich optimal. Das Rad-Gesamt hat 210 mm Durchmesser (meiner Geometrie geschuldet). Die Felge hat eine Breite von 40mm, könnte auch schmaler oder breiter gedruckt werden. Die Radringe (Breite ohne Rand 10mm, mit Rand 11mm) werden je nach Breitenwunsch auf die Felge gesteckt und durch die Bohrungenen mit Schrauben verbunden. Die Radringe lassen sich gegeneinander verdrehen - dadurch kann das Profil verändert werden. Getestet habe ich noch nicht, da der Mäher gerade im Versionsabgrade ist.
Gruß Fürst Ruprecht
 

Anhänge

  • 2021-03-05 13.05.55.jpg
    2021-03-05 13.05.55.jpg
    1,7 MB · Aufrufe: 16
  • 2021-03-05 13.06.20.jpg
    2021-03-05 13.06.20.jpg
    2 MB · Aufrufe: 16
  • 2021-03-05 13.06.52.JPG
    2021-03-05 13.06.52.JPG
    2,4 MB · Aufrufe: 14
  • 2021-03-05 13.06.54.jpg
    2021-03-05 13.06.54.jpg
    2,3 MB · Aufrufe: 15
  • 2021-03-05 13.07.16.jpg
    2021-03-05 13.07.16.jpg
    1,7 MB · Aufrufe: 15
  • 2021-03-05 13.08.24.jpg
    2021-03-05 13.08.24.jpg
    2 MB · Aufrufe: 16
  • 2021-03-05 13.09.47.jpg
    2021-03-05 13.09.47.jpg
    1,8 MB · Aufrufe: 16
Hier die "Herstellung":
Der Faden soll dafür sorgen, daß der Stollen nicht so leicht abreißen kann. Mal sehen ob´s funktioniert.
 

Anhänge

  • 2021-01-09 16.10.22.jpg
    2021-01-09 16.10.22.jpg
    1,3 MB · Aufrufe: 38
  • 2021-01-09 16.10.30.jpg
    2021-01-09 16.10.30.jpg
    1,5 MB · Aufrufe: 37
  • 2021-01-09 16.11.26.jpg
    2021-01-09 16.11.26.jpg
    1,3 MB · Aufrufe: 32
  • 2021-01-09 16.11.40.jpg
    2021-01-09 16.11.40.jpg
    1,5 MB · Aufrufe: 30
  • 2021-01-09 16.13.36.jpg
    2021-01-09 16.13.36.jpg
    1 MB · Aufrufe: 34
  • 2021-01-09 16.13.44.jpg
    2021-01-09 16.13.44.jpg
    1,2 MB · Aufrufe: 36
Konstruktionsdateien:
Konstruktion in Fusion360.
STL-Dateien zum Drucken
 

Anhänge

  • Rad_Fusion360.zip
    14,4 MB · Aufrufe: 12
  • Rad_STL.zip
    16,4 MB · Aufrufe: 13
4WD-Generation2

Hallo Leute,
anbei ein Ausblick auf meinen 4WD in der Generation 2021.
Zur Zeit laufen die Teile aus dem 3D-Drucker.
Neu wird sein (soweit es auch funktioniert):
Allrad - alle 4 Motoren einzeln angesteuert
Vorderachslenkung über Servo und Zahnräder mit 180 Grad-Einschlagwinkel
Manuelle Höhenverstellung Mähmotor

Gruß Fürst Ruprecht
 

Anhänge

  • 4WD-Generation-2.JPG
    4WD-Generation-2.JPG
    360,2 KB · Aufrufe: 22
Oben