Autonom fahrenden Rasenroboter entwickelt
Projektdauer: 6 Wochen
Anzahl der Entwickler: 1
Zeilen Code: ~500
Arbeitsstunden: ~300
Programmiersprachen: Go, JavaScript, Python
Technologien: RaspberryPi, Arduino, ESP32, WebSocket
Idee
Die Idee war einfach. Nie mehr selbst den Rasen mähen und einen Roboter bauen, der das für einen erledigt. Und so entstand die Idee für den autonom fahrenden Rasenroboter.
Der Start des Projekts
Also begann ich mit der Planung. Ich wollte den Roboter so einfach wie möglich halten und kaufte mir ein Hoverboard das ich als Basis verwendete. Die Firmware des Hoverboards habe ich mit Hilfe von der GitHub Repository Hoverboard-Firmware überschrieben, damit ich die Motoren des Hoverboards ansteuern konnte.
Entfernen nicht benötigter Teile
Als nächstes habe ich alle nicht benötigten Teile des Hoverboards entfernt. Dazu gehörte das Gehäuse und teile der Elektronik. Zudem musste ich ein Stück der Achse absägen, damit sie auf auf das Brett passte.
Erster Prototyp
Nachdem ich alle Teile entfernt hatte, habe ich den ersten Prototypen zusammengebaut. Dazu habe ich die Achsen auf ein Brett geschraubt.
Zweiter Prototyp
Nachdem ich die ersten Tests durchgeführt hatte, baute ich den zweiten Prototypen. Dieser verfügt über ein verstärktes Brett, da das Brett beim ersten Prototypen zu dünn war und sich an den Stellen, an denen die vorderen beiden Lenkrollen befestigt waren, die Schrauben herausgerissen hatten.
Auf dem Akku (hier in Blau) habe ich eine Powerbank befestigt, auf der ein ESP32 montiert ist. Der ESP32 ist mit dem Hoverboard verbunden und steuert die Motoren. Zu dem Zeitpunkt erfolgte die Steuerung noch über einen PC Controller und nicht autonom.
Anbringen aller Komponenten
Nachdem ich einige Zeit mit dem zweiten Prototypen verbracht hatte, entschied ich mich, alle Komponenten auf dem Brett zu montieren. Ich wechselte vom ESP32 zu einem Raspberry Pi, da dieser mir mehr Möglichkeiten bot, wie zum Beispiel den Anschluss einer Kamera.
Gehäuse und Abstandssensoren
Über Kleinanzeigen erwarb ich das Gehäuse eines alten Rasenroboters. In dieses Gehäuse habe ich an der Vorderseite drei Ultraschallsensoren und einen weiteren an der Rückseite eingebaut. Mit den Ultraschallsensoren kann ich den Abstand zu Hindernissen messen und den Rasenroboter so programmieren, dass er diesen ausweicht.
Kommunikation
Ich entschied mich dafür, die Motordaten mit Python auszulesen und diese an die Programmiersprache Go weiterzugeben. In Go habe ich basierend auf den Sensordaten berechnet, wie der Rasenroboter fahren soll.
Um die Sensordaten einsehen zu können, habe ich eine Webseite erstellt, die diese in Echtzeit anzeigt. Die Webseite ist mit dem Raspberry Pi verbunden und zeigt Informationen wie die Geschwindigkeit der Motoren, die Entfernung zu Hindernissen und den Akkustand an.
Rasenroboter in Aktion
Wie hier deutlich zu erkennen ist, erkennt der Rasenroboter die Mauer mittels Ultraschallsensoren und weicht ihr aus – ganz ohne das Verlegen eines Drahts im Boden.
Preisliste
Hier eine Liste der Komponenten und deren Preise die ich für den Rasenroboter eingekauft habe. Komponenten die nicht aufgelistet sind, hatte ich bereits zu Hause. Können aber auch auf Amazon oder anderen Plattformen erworben werden.
Komponente | Preis | Geschäft |
---|---|---|
Hooverboard | 45,00 € | Kleinanzeigen |
2x Lenkrollen | 9,98 € | Baumarkt |
Gehäuse | 30,00 € | Kleinanzeigen |
Messermotoren + Messerscheibe | 80,00 € | Kleinanzeigen |
Buck Converter Step-Down Modul | 13,98 € | Amazon |
REV Zwischenschalter | 3,59 € | Baumarkt |
Compass Module | 6,29 € | Amazon |