Mein Ardumower mit Moonlight Firmware

hanoba

Member
Ich möchte jetzt auch einmal meinen ArduMower und die dazugehörige Firmware vorstellen. Ich habe ihn seit April 2021 erfolgreich in Betrieb.

Ich habe folgende Hardware-Konfiguration:
  • RTK mit eigener Basisstation
  • PCB 1.3 mit Arduino Due
  • Steckplatz für SD-Card
  • IMU MPU6050
  • Free-Wheel Sensor
  • Bumperduino
  • keine Sonar-Sensoren
  • Schwarzes PE Gehäuse vom Januar 2021
  • Deckel zweigeteilt, um einfachen Zugriff auf PCB zu ermöglichen
  • Selbst gefräste Räder mit 30 cm Durchmesser
  • Messer: 29cm 4-Zahn (Ambrogio L200)
  • Heckantrieb

Ich verwende meine eigene "Moonlight" Firmware (ein Fork von Sunray v168) mit folgenden Erweiterungen:
  • verbessertes Ausgabeformat für Logging
  • kann Kommandos über UDP verarbeiten
  • unterstützt Logging über UDP und auf SD-Card
  • enthält einen Simulationsmodus, der mit einem Arduino Due + SD Card + ESP8266 + RTC arbeitet (für Software-Tests ohne Ardumower)
  • unterstützt zusätzliche Kommandos (siehe Bild)
  • unterstützt RTC (Logging Timestamp & SD Card File Date)
  • Unterstützt SD-Card Filesystem Kommandos (ls, rm, cat, cp)
  • Unterstützt Maps auf SD-Card
  • Unterstützt Remote Control via UDP
  • Kompatibel mit ArduMower Sunray-App (über Bluetooth)
  • Wird über die Python-Programme "amcp" und "amcmd" gesteuert
Anstelle der Sunray-App verwende ich ein Python-Program ("amcp" für ArduMower Control Program) das auf einem Laptop läuft. Die Kommunikation mit dem ArduMower erfolgt über UDP. Mit amcp können Maps-Perimeter (Rechtecke) am PC erstellt und editiert werden. Außerdem kann es Waypoints erzeugen. Siehe Screenshots für weitere Details. Die erzeugten Maps sind Sunray-App kompatibel.

Außerdem habe ich noch ein Python Kommandozeilen-Tool ("amcmd"), über das der ArduMower von der Kommandozeile über ssh gesteuert werden kann (siehe Bild).

Weitere Bilder und Videos folgen in Kürze.

Anhang anzeigen 5958

1678772274276.png
1678772354869.png
1678772382051.png
1678772438355.png
 

Anhänge

  • 1678772223047.png
    1678772223047.png
    59,4 KB · Aufrufe: 25
Zuletzt bearbeitet:
Fernzugriff auf meinen Ardumower

Mein Ardumower befindet sich auf einem Grundstück, das 15 km von meinem Wohnort entfernt ist. Ich kann das Ladegerät der Dockingstation von zuhause aus über Internet ein- und ausschalten. Den Ardumower kann man mit amcmd (siehe oben) über ssh bedienen. Dabei läuft amcmd auf einem Raspberry Pi und greift auf den Ardumower über UDP zu. Die PCB 1.3 habe ich wie folgt modifiziert, damit sich der Ardumower automatisch einschaltet sobald eine Ladespannung anliegt.



1679212315208.png

1679212356636.png

1679212393899.png
 
Zuletzt bearbeitet:
Blockschaltbild der Ardumower-Elektronik

Um einen besseren Überblick zu bekommen, habe ich das folgende Blockschaltbild der Ardumower-Elektronik (PCB 1.3) erstellt (ohne Gewähr ;)). Ist vielleicht auch für andere nützlich.

1679212798878.png
 
Mähen am Zaun

Mein Ardumower kann jetzt bis zum Zaun mähen und ändert dann einfach die Fahrtrichtung. Der Zaun liegt direkt am Wald, daher ist dort schlechter GPS-Empfang. Der Zaun wird mit dem Bumperduino detektiert.

 
Zuletzt bearbeitet:
Mähen am Zaun - Waypoints

Das Bild zeigt die Waypoints (weiß) für das Mähen am Zaun (grün). Die Umkehrpunkte unten am Zaun werden vom Bumperduino detektiert, wenn der Mower den Zaun berührt. Die Umkehrpunkte oben werden per GPS detektiert. Bei beiden Punkten wird jeweils nur die Fahrtrichtung umgekehrt.

1714130735884.png
 
Zuletzt bearbeitet:
Is it possible to define tha robot journey map without any mark on the real-time map? Maybe It can developed as an autonomous by pulling data from official parcel websites.
 
I am using a fork of the official Sunray firmware and I am not using the Sunray app but a Python program (based on PyGame) to define the mowing area and to create the waypoints. The background you see in the picture above is actually downloaded from Google Maps. But the data from Google Maps is by far not detailed enough. The green lines are the measured perimeter of my property. I used a laser distance meter to measure it. I manually adjusted the Google Maps photo to match my measurement. With my Python program I can define any mowing area without taking any GPS measurements with the Ardumower.
 
Zuletzt bearbeitet:
Oben