Staubsaugerroboter sind mittlerweile in aller Munde. Ist ja auch praktisch so ein Mini-R2D2 der sich um die Hausarbeit kümmert. Gut, vielleicht nicht um die Ganze … Aber zumindest um das Bodenstaubsaugen 😉
Da kam mir eine Idee in den Sinn. Man könnte ja so ein Teil auch mal selbst bauen. Also hab ich mir mal ein paar Gedanken dazu gemacht:
Fahrgestell
Das Fahrgestell ist natürlich Dreh- und Angelpunkt des Roboters. Hier bin ich aber relativ schnell zu dem Entschluss gelangt, einen alten defekten Staubsaugerroboter als Chassis zu verwenden. Ein kompletter Nachbau eines Chassis inklusive der Getriebemotoren usw. wäre wohl viel zu aufwändig für die – sind wir mal ehrlich – Spielerei :).
Material
Planung
Nun, dann ging es an die Planung der Hardware und des notwendigen Materials. Die Antriebsmotoren (2x Rad, 2x Bürste, 1x Gebläse) sollten nach Möglichkeit noch aus dem „defekten“ Staubsaugerroboter nutzbar sein. Das muss natürlich in die Suche mit einfließen. Aufgrund der Komplexität soll der Roboter später von einem RaspberryPi gesteuert werden. So kann man auch direkt live das Programm ändern bzw. den Staubsaugerroboter gar per Fernsteuerung betreiben. Der Arduino als Alternative war damit also recht schnell aussortiert. Gut! Es braucht also nur noch den entsprechenden Treiber für die Fahrmotoren und ein paar Relais für die Bürstenmotoren und das Gebläse selbst. Somit wäre der Roboter schon wieder einsatzbereit. Allerdings sollte er auch etwas besser sein, als seine Billig-Kameraden und nicht überall dagegen fahren, um zu erkennen „Ooops, da ist wohl irgendwas!“. Deswegen hab ich mich hier für ein Ultraschall-Radarsystem entschieden. Dazu benötige ich einen drehbaren Kopf mitsamt Ultraschall-Distanzsensor. Damit der Radarturm drehen kann, brauche ich noch einen Antrieb. Hierbei entschied ich mich für einen Modellbauservo, da diese sehr kraftvoll sind und eine einfache Ansteuerung ermöglichen.
Die ganze Technik passt so natürlich nicht mehr in das ursprüngliche Gehäuse. Ist aber auch nicht schlimm, es ist ja sowieso nur ein Spaß-Projekt. Ich erwarte von meinem kleinen Freund nicht, dass er unter eine Couch passt. Als Gehäuse kam mir eine kleine Holzkonstruktion aus Modellbauholz in den Sinn.
Beschaffung
Nun gut, dann kam die Beschaffung. Über die bekannten Online-Händler und örtliche Baumarkte hatte ich die Liste schnell zusammen.
Jetzt wo ich alles Material vor mir liegen hatte, konnte es losgehen. Als erstes habe ich den Roboter komplett zerlegt. Jetzt konnte ich die einzelnen Bauteile prüfen und wieder leichtgängig machen. Das war vor allem bei den beiden Fahrmotoren dringend notwendig. Denn im Laufe der Zeit haben die so einige Haare aufgesammelt und freudig um ihre Achsen herum verstaut. Wichtig bei diesem Schritt war mir auch, die richtigen Spannungen für die Ansteuerung der Motoren herauszufinden. Die Ergebnisse waren folgenden:
- Bürstenmotoren = 5 V
- Fahrmotoren = 8 V
- Gebläsemotor = defekt → Nicht schlimm, denn da kann man die Saugleistung gleich noch etwas tunen. Der neue Motor ist für 12 V ausgelegt (passend zur Batterie) und hat um einiges mehr Leistung als der Original-Motor
Aufbau
Nun konnte es losgehen, den Roboter wieder zusammenzubauen, zu verkabeln und die Holzkonstruktion aufzusetzen. Nach einigen Stunden Arbeit war auch das geschafft. Die Holzkonstruktion habe ich durch Stifte mit dem Original-Gehäuse verbunden. Darin befinden sich nun Batterie, RaspberryPi und Servomotor für den Drehturm. Im Original-Gehäuse untergebracht sind die Spannungsregler, Motortreiber und Relaiskarten. Der Drehturm beinhaltet lediglich den Ultraschall-Sensor, welcher mittels einer freiliegenden schleppkettenfähigen Sensorleitung mit der Holzkonstruktion und somit dem Arduino verbunden ist.
Programm
Schlussendlich ging es um das Programm, welches den Roboter steuert. Hier entschied ich mich für meinen Liebling Python als Programmiersprache.
Grundlegendes Konzept
Das Programm überwacht ständig die Batteriespannung, um diese vor Tiefentladung zu schützen. Im Notfall werden die Motoren und der RaspberryPi einfach abgeschaltet bzw. heruntergefahren.
Der Radarturm kartiert ständig die Umgebung und gibt die gemessene Entfernung bis zu einem Objekt für 8 verschiedene Winkel heraus. Über diese virtuelle Radarkarte kann sich der Roboter orientieren und muss Gegenstände nicht erst mechanisch ertasten um eine Kollision zu erkennen (also einfach gesagt, erstmal dagegen zu fahren).
Erkennt der Roboter nun ein Hindernis, fährt er ein Stück zurück, und dreht sich solange, bis kein Hindernis mehr erkennbar ist. Läuft das allerdings fehl, weil er sich festgefahren hat, so schaltet er nach einer gewissen Zeit ab
Spielereien
Als kleines Gimmick habe ich eine Steuerung per Bluetooth mit dem XBox-Controller realisiert. So kann der Roboter also ferngesteuert werden. Ich muss sagen, dass das „Staubsaugen“ (von der Couch aus Fusseln auf dem Boden jagen) so um einiges mehr Spaß macht 😀 Allerdings braucht man hier natürlich auch ein bisschen länger als mit dem normalen Staubsauger …
Eindrücke
Abschließend hier noch ein Video, wie das Ganze in Live aussah:
Hier noch ein kleiner Einblick in den Grobentwurf der Schaltung von damals 😀