Do IT yourself! - Saugroboter mit Mikrocontroller-Steuerung und Bluetooth

Inhaltsverzeichnis

Projektidee

Material

Schaltplan

Do IT yourself!

Die MicroPython-Variante (Raspberry Pi Pico)

Fazit

Projektidee: Saugroboter mit Mikrocontroller-Steuerung und Bluetooth

Auf der Suche nach einem Fahrzeug, welches mittels Mikrocontroller ferngesteuert werden könnte, erfüllten viele (z.B. RC-Autos) nicht die gewünschten Kriterien, vor allem bzgl. Modellgröße und Preis. So fiel die Wahl schnell auf ältere Saugroboter, die mittlerweile sehr günstig auf Flohmärkten zu finden sind und darüber hinaus eine Menge Platz im Innenraum für Bastelprojekte bieten.

Diese älteren Saugroboter sind sehr einfach aufgebaut und verfügen in der Regel nur über einige Infrarot-Sensoren, z.B. für das Erkennen von Hindernissen oder von verstopften Saugkanälen, sowie Motoren zur Fortbewegung, zum Saugen und Putzen. Die gesamte Steuerelektronik inkl. Akkuladeeinheit befindet sich auf einer zentralen Steuerplatine.

Die Idee war, alle vorhandenen Infrarot-Sensoren sowie Motoren zu verwenden und per Mikrocontroller anzusteuern. Gleichzeitig sollte die auf der Steuerplatine vorhandene Akkuladeeinheit so weiterverwendet werden, dass der im Saugroboter verbaute Akku außerhalb des Geräts aufgeladen werden könnte. Schließlich sollte der Saugroboter mit Bluetooth ausgestattet werden, um ihn manuell per Smartphone steuern zu können.

Nach oben

Material

Nach oben

Schaltplan

Nach oben

Do IT yourself!

Zunächst wurde die Steuerplatine ausgebaut und durch eine Streifenrasterplatine im Breadboard-Layout ersetzt, auf die der Mikrocontroller (hier: BLE-Nano), der Motortreiber für die Fahrmotoren, der MOSFET-Tranistor für den Saugmotor sowie Anschlussbuchsen für Stromversorgung, Sensoren und Motoren aufgelötet wurden.

Die Akku-Stromversorgung wurde direkt mit dem ON/OFF-Schalter des Saugroboters sowie per Steckkontakt mit der Streifenrasterplatine verbunden. Anschließend wurden die Anschlusskabel für die drei Motoren verlängert und mittels Steckkontakten mit der Streifenrasterplatine verbunden.

Da die im Gehäuse verbauten Infrarot-Sensor-LEDs weiterverwendet werden sollten, mussten diese per Kabel mit den Infrarot-Modulen verbunden werden; deren eingebaute Infrarot-LEDs wurden hierfür ausgelötet. Die Anschlüsse der Infrarot-Module wurden wiederum per Steckkontakten mit der Streifenrasterplatine verbunden.

Um eine Programmierung per USB-Kabel zu ermöglichen, ohne das Gehäuse öffnen zu müssen, wurde ein Micro-USB-Kabel mit Einbaubuchse verbaut und an den BLE-Nano angeschlossen. Auf diese Weise lässt sich schnell und unkompliziert Programmcode mittels Arduino-IDE auf den Saugroboter übertragen.

Die auf der Gehäuseoberseite vorhandenen LED-Aussparungen wurden mit einer roten Power-LED sowie einer programmierbaren gelben versehen, um z.B. Programmfunktionen zu visualisieren.

Die originale Steuerplatine wurde in ein ABS Modulgehäuse verbaut, wobei die Status-LEDs über passende Bohrungen sichtbar sind. Zur Stromversorgung wurde ein Anschlusskabel mit nach außen geführter Hohl-Buchse angelötet, der zu ladende Akku wird über eine ebenfalls nach außen geführte Kabelverbindung mittels Steckverbindern angeschlossen.

Der hier ausgeführte Arduino-Sketch steuert den Saugroboter mittels Bluetooth-Befehlen: Die Buchstaben "V" oder "v" lassen den SaugBot vorwärts fahren, die Buchstaben "R" oder "r" lassen den SaugBot rückwärts fahren, "S" oder "s" schaltet den Saugmotor ein, "D" oder "d" lässt den SaugBot drehen und "0" stoppt alle Motoren. Der Befehl "M" oder "m" zeigt die Messwerte der drei Infrarot-Sensoren an ("0" oder "1"). Zur Steuerung des Saugroboters wurde die Android-App "Serial Bluetooth Terminal" von Kai Morich genutzt.

Nach oben

Die MicroPython-Variante (Raspberry Pi Pico)

Auch mittels MicroPython lässt sich ein Saugroboter per Bluetooth steuern, und so wurde ein weiteres Projekt mit einem Raspberry Pi Pico und einem Bluetooth-Modul HC-05 realisiert. Auch bei diesem Saugroboter wurde die originale Steuerplatine durch eine Streifenrasterplatine im Breadboard-Layout ersetzt, auf die der Mikrocontroller, Spannungsregulierung, zwei Motortreiber und eine Anschluss-Steckerleiste gelötet wurden.

Anders als bei der Arduino-Variante wies dieser SaugBot zwei zusätzliche Motoren zur Reinigung des Bodens auf, die ebenfalls - gegenläufig drehend - angesteuert werden sollten. Auch die drei Infrarot-Sensoren wurden ebenso wie bei der Arduino-Variante genutzt, während alle weiteren Sensoren (z.B. Lichtschranke für die Verstopfung des Saugkanals) nicht weiterverwendet wurden.

Alle im Gehäuse verbauten Komponenten wie z.B. Infrarot-Sensoren und Motoren sowie das Bluetooth-Modul wurden per Kabel und Anschlussbuchsen auf die Steckerleiste aufgesteckt und so mit der Streifenrasterplatine verbunden. Auch das USB-Anschlusskabel mit Einbaubuchse wurde - ebenso wie bei der Arduino-Variante - in das Gehäuse verbaut. Unmittelbar neben dem Hauptschalter des Saugroboters wurde eine Power-Status-LED eingebaut, da die Aussparungen an der Gehäuseoberseite für die originalen drei Kontroll-LEDs aufgrund von Platzproblemen nicht für eigene LEDs genutzt werden konnten.

Auch bei diesem Saugroboter wurde die originale Steuerplatine in ein ABS Modulgehäuse verbaut, mit von außen sichtbaren Status-LEDs sowie Anschlusskabel zur Stromversorgung mit nach außen geführter Hohl-Buchse. Bei diesem Modell wird der zu ladende Akku über eine drei- statt zweipolige Kabelverbindung mittels Steckverbindern angeschlossen.

Das hier ausgeführte MicroPython-Programm steuert den Saugroboter ebenfalls mittels Bluetooth-Befehlen. Anders als bei der Arduino-Variante können zusätzlich die Putzmotoren über "P" oder "p" eingeschaltet werden, während "x" bzw. "X" die Sensorwerte anzeigen lässt.

Im Vergleich zur Arduino-Variante des Saugbots ergeben sich folgende Änderungen beim Material:

Der Schaltplan ist aufgrund des zusätzlichen Verkabelungsaufwands etwas umfangreicher als bei der Arduino-Variante:

Die Programmierung erfolgte hier über die Thonny-IDE, während die Steuerung am Smartphone z.B. mittels der Android-App "Serial Bluetooth Terminal" erfolgen kann.

Nach oben

Fazit

Ein Saugroboter eignet sich hervorragend für die Realisierung von Projekten, in denen Fahrzeuge mittels Mikrocontroller und Bluetooth und/oder WLAN gesteuert werden sollen. Insbesondere die älteren Modelle mit einfacher Infrarot-Sensorik lassen sich mit wenig Lötaufwand direkt an entprechende Mototreiber bzw. Sensor-Module anschließen und sind so bestens für den Einsatz mit Mikrocontrollern (Arduino, ESP, Raspberry Pi Pico) geeignet.

Sofern der Original-Akku des verwendeten Saugroboters noch funktioniert, kann dieser extern durch den Anschluss an die originale Steuerplatine des Saugroboters geladen werden, so dass man hier die Anschaffung von Universal-Ladegeräten oder zusätzlichen Akkupacks einspart.

Die Infrarot-Sensoren sind zwar nicht für komplexe oder exakte autonome Steuerungen der Saugroboter geeignet, lassen aber zumindest ein Hindernis erkennen. Darüber hinaus können zusätzlich angebrachte Sensoren (z.B. Ultraschall, Licht, Sound) für erweiterte autonome Steuerungsaufgaben im oder am Gehäuse des Saugroboters montiert werden.

Nach oben