Inhaltsverzeichnis:
- Schritt 1: Anschluss elektronischer Teile
- Schritt 2: Verwenden der Android-Steuerungs-App
- Schritt 3: Roomba Open Interface in Beispielen
- Schritt 4: RPi Remote-Webcam
- Schritt 5: Pläne für die weitere Entwicklung
- Schritt 6: Anschluss elektronischer Teile - Version 2 mit Gehäuse
Video: Inspektor Roomba - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Die meisten von uns verwenden iRobot Roomba-Roboter nur zum Staubsaugen, aber nur wenige wissen, dass dies eine großartige Basis für neue Roboterprojekte ist. Alle Hersteller sollten das Roomba Open Interface (OI) ausprobieren, um herauszufinden, wie einfach es ist, diesen Roboter zu steuern. In dieser Anleitung erfahren Sie, wie Sie Ihrem Roomba einige nützliche Funktionen hinzufügen. Zu Beginn werde ich beschreiben, wie man Roomba über Bluetooth und Android-App fernsteuert. Später zeige ich Ihnen, wie Sie Videostreaming basierend auf dem RPi ausführen können und schließlich skizziere ich den Plan für die weitere Entwicklung dieses Projekts.
In diesem Projekt benötigte Teile:
- BTM-222 Bluetooth-Modul oder anderes mit 115200 Baudrate x1
- 5V Abwärtsspannungsregler D24V6F5 x1
- Mini-Steckbrett x1
- Ein paar Drähte
Ausführung mit Gehäuse:
- 8-poliger Mini-DIN-Stecker x1
- Netzschalter x1
- LED 3 mm x1
- Widerstand 10k x1
- kleines Gehäuse 50x40x20 mm x1
erweiterte Version:
- Raspberry Pi 3 x 1
- RPi-Kupfer-Kühlkörper x1
- USB-WLAN-Adapter x1
- Micro-SD-Karte 8 GB oder größer x1
- RPi-Kamera - Fisheye-Objektiv x1
- Gehäuse für RPi x1
- Akkupack mit hoher Kapazität 5V (mindestens 10 Ah) x1
- Ein Stück Plastikhalterung x1
- Schrauben und Muttern M2 x4
Schritt 1: Anschluss elektronischer Teile
Diesmal ist dieser Schritt sehr einfach, da wir nur zwei Module anschließen müssen, um unseren Roomba steuern zu können. Das erste ist ein Bluetooth-Modul, das mit 115200 bps betrieben werden kann. Der zweite ist der 5V-Abwärtsspannungsregler D24V6F5. Der aufgeladene Roomba-Akku hat eine Spannung von etwa 14,4 V und unser Bluetooth-Modul benötigt 5 V, daher müssen wir die Akkuspannung mit dem Spannungsregler auf das Niveau von 5 V reduzieren. Der D24V6F5-Regler hat einen Wirkungsgrad zwischen 80 und 90%, was im Vergleich zu klassischen Linearreglern, die typischerweise einen Wirkungsgrad unter 40% haben, ein sehr guter Wert ist. Der einfachste Weg, diese beiden Module zu verbinden, besteht darin, sie in ein Mini-Steckbrett zu stecken und gemäß dem Schaltplan wie oben zu verdrahten. Außerdem sind alle Anschlüsse in nummerierten Fotos dargestellt. Seien Sie beim Anschließen an die Batteriepole vorsichtig. Ein versehentlicher Kurzschluss kann den Akku beschädigen!
Schritt 2: Verwenden der Android-Steuerungs-App
Ich habe eine Android-App entwickelt, mit der Sie den Roboterstaubsauger der Roomba 500-Serie über Bluetooth steuern können. Sie können meine App kostenlos von Google Play herunterladen - Roomb Control. Es funktioniert sowohl mit Smartphones als auch mit Tablets.
So verwenden Sie die Roomb Control-App:
- Tippen Sie auf die obere rechte Ecke des Bildschirms (3 vertikale Punkte)
- wählen Sie den Reiter "Verbinden"
- Tippen Sie auf die Registerkarte "BTM222" und nach einer Weile sollten Sie die Meldung "Mit BTM222 verbunden" sehen.
- Nach dem Verbinden können Sie Ihren Roomba. steuern
- Wenn Sie Ihr Bluetooth-Gerät nicht sehen, tippen Sie auf die Schaltfläche "Nach Geräten suchen".
- Denken Sie bei der ersten Verwendung Ihres Bluetooth-Moduls daran, es mit Ihrem Smartphone zu koppeln, indem Sie den Standardcode eingeben, der in der Bluetooth-Modulspezifikation angegeben ist
Schritt 3: Roomba Open Interface in Beispielen
In diesem Schritt finden Sie Beispiele für gängige Befehle zur Steuerung der Roomba Serie 500. Weitere Informationen zu Roomba Open Interface finden Sie in diesem Dokument.
Roomba 500+ kann in einem von vier Modi betrieben werden:
- Der Vollmodus gibt Ihnen die vollständige Kontrolle über Roomba (keine Sicherheitseinschränkung wie im sicheren und passiven Modus)
-
Der abgesicherte Modus führt einige sicherheitsrelevante Ausnahmen ein, wenn Sie nicht alle Aktoren steuern können:
- Erkennung eines Radsturzes
- Erkennung einer Klippe während der Vorwärts- oder Rückwärtsbewegung
- Ladegerät eingesteckt und mit Strom versorgt
- Im passiven Modus können Sie Sensordaten anfordern und empfangen, aber in diesem Modus können Sie keine Roomba-Aktoren (Motoren, Lichter, Lautsprecher) steuern.
- Aus-Modus beim ersten Einschalten oder nach einem Batteriewechsel (Warten auf Startbefehl)
Ein sicherer und voll funktionsfähiger Betriebsmodus ist der abgesicherte Modus, der der bevorzugte Modus für die Fernbedienung ist. Um den abgesicherten Modus auszuführen, müssen wir zuerst den Befehl 128 senden, der das Open Interface startet, und dann den Befehl 130 (oder 131), um Roomba in den abgesicherten Modus zu versetzen. Wenn wir einen der integrierten Reinigungsmodi (clean, spot, dock usw.) ausführen möchten, sollten wir den dritten Befehl mit entsprechendem Code senden (Clean-135, Spot-134, Dock-143). Die vollständige Seriensequenz für diese Modi lautet wie folgt:
- Abgesicherten Modus einstellen - (128, 130)
- Punkt - (128, 130, 134)
- Sauber - (128, 130, 135)
- Dock - (128, 130, 143)
Wenn sich der Roomba im abgesicherten Modus befindet, können wir die Antriebsräder des Roomba mit dem Befehl 137 steuern. Die vollständige 5-Byte-Seriensequenz ist wie folgt: (137, Velocity High Byte, Velocity Low Byte, Radius High Byte, Radius Low Byte). Beispiele für die seriellen Abläufe für die Roomba-Bewegungssteuerung:
- Vorwärts - (137, 100, 0, 128, 0)
- Zurück - (137, 254, 12, 128, 0)
- Rechts abbiegen - (137, 100, 0, 255, 255)
- Links abbiegen - (137, 100, 0, 0, 1)
Alternativ zur Steuerung der Roboterbewegung können wir den Befehl 146 verwenden. Mit diesem Befehl können wir PWM (Pulsweitenmodulation) für das rechte und das linke Rad steuern: (146, Rechtes PWM High Byte, Rechtes PWM Low Byte, Linkes PWM High Byte, Links PWM Low-Byte). Beispiel für PWM-Steuerung:
- Oben rechts verschieben - (146, 0, 130, 0, 255)
- Oben nach links verschieben - (146, 0, 255, 0, 130)
Der Befehl 139 steuert die Farben der LEDs. Wir können die Farbe der Clean/Power-LED ändern, indem wir den Wert des Farbbytes in serieller Reihenfolge einstellen: (139, LED-Bits, Farbe, Intensität). Wenn das Farbbyte auf 0 gesetzt ist, erhalten wir grüne Farbe. Durch Erhöhen dieses Wertes erhalten wir Zwischenfarben (orange, gelb usw.) und rote Farbe für den Maximalwert 255. Beispiele für die Steuerung von LEDs:
- grün - (139, 0, 0, 128)
- orange - (139, 0, 128, 128)
- rot - (139, 0, 255, 128)
Der letzte Befehl, den ich erwähnen möchte, ist der Befehl 140, mit dem Sie einfache Lieder abspielen können. Beispiele für die Seriensequenzen zum Abspielen von Liedern:
- Lied 1 - (140, 0, 5, 72, 32, 74, 32, 76, 32, 77, 32, 79, 32, 141, 0)
- Lied 2 - (140, 1, 5, 69, 16, 71, 16, 72, 16, 74, 16, 76, 16, 141, 1)
Schritt 4: RPi Remote-Webcam
Um das Videostreaming von der Kamera auf allen Geräten anzeigen zu können, die mit meinem lokalen Netzwerk verbunden sind (PC, Smartphone, Tablet usw.), habe ich den Motion-Webcam-Server installiert. Details dazu finden Sie in diesem Instructable. Die wichtigsten Schritte sind wie folgt:
- Bearbeiten: sudo nano /etc/modules - am Ende der Datei hinzufügen: bcm2835-v4l2
- Motion installieren: sudo apt-get install motion
- Öffnen Sie die Datei motion.conf, indem Sie Folgendes eingeben: sudo nano /etc/motion/motion.conf und stellen Sie die Videoparameter ein (z. B.: daemon on, width 640, height 480, framerate 30, webcam_localhost off)
- Aktivieren Sie den Daemon (Dienst): sudo nano /etc/default/motion und suchen und ändern Sie start_motion_daemon=yes.
- Dienst starten: sudo service motion start oder sudo motion -n -c /etc/motion/motion.conf
- Öffnen Sie nun den Webbrowser auf Ihrem Computer oder Smartphone und geben Sie ein: RPi IP:8081 (wobei "RPi IP" die IP Ihres Raspberry Pi und 8081 der Standardport ist). Beispiel: 192.168.1.14:8081. Wenn nach einiger Zeit alles gut funktioniert, sollten Sie die Ansicht Ihrer Kamera in Ihrem Webbrowser sehen.
Schritt 5: Pläne für die weitere Entwicklung
Derzeit ist mein Roomba mit einem kleinen Roboterarm ausgestattet, der in dieser Anleitung beschrieben wird. Dieser Roboterarm kann über Bluetooth von der Android-App ferngesteuert werden. Im nächsten Schritt werde ich die Ansicht von der Kamera zum Ferngreifen und Bewegen von Objekten in den markierten Raum verwenden (Betrieb im halbautonomen Modus).
Wenn Sie meine anderen Projekte im Zusammenhang mit Robotik sehen möchten, besuchen Sie bitte:
- meine Website: www.mobilerobots.pl
- Facebook: mobile Roboter
Schritt 6: Anschluss elektronischer Teile - Version 2 mit Gehäuse
Wenn Sie Ihren eigenen abnehmbaren Empfänger bauen möchten, um den Roomba zu steuern, ist dieser zusätzliche Schritt für Sie. Wir fügen noch ein paar weitere Elemente hinzu und werden sie alle in einem schlanken Gehäuse verschließen. Die Hauptkomponente, die wir in diesem Schritt benötigen, ist ein 8-poliger Mini-DIN-Stecker. Darüber hinaus benötigen wir den Netzschalter und die Anzeige basierend auf LED und Widerstand 10k.
Jetzt müssen Sie sich keine Sorgen mehr machen, dass Drähte herausragen. Der Bluetooth-Empfänger ist in einem kleinen Gehäuse mit den Maßen 50x40x20 mm untergebracht. Wenn Sie es nicht verwenden möchten, können Sie es einfach von Ihrem Roomba entfernen, indem Sie den Mini-DIN-Stecker ziehen.
Empfohlen:
Roomba-Projekt: 5 Schritte (mit Bildern)
Roomba-Projekt: Dieses instructable wurde in Erfüllung der Projektanforderung des Makecourse an der University of South Florida (www.makecourse.com) erstellt. Dieses instructable deckt alle notwendigen Schritte und Komponenten ab, die zum Zusammenbau meines Roomba-Projekts erforderlich sind
Von Roomba zu Rover in nur 5 Schritten!: 5 Schritte
In nur 5 Schritten von Roomba zum Rover!: Roomba-Roboter sind eine unterhaltsame und einfache Möglichkeit, Ihre Zehen in die Welt der Robotik einzutauchen. In diesem Instructable werden wir detailliert beschreiben, wie man einen einfachen Roomba in einen steuerbaren Rover umwandelt, der gleichzeitig seine Umgebung analysiert. Teileliste1.) MATLAB2.) Roomb