Inhaltsverzeichnis:

Inspektor Roomba - Gunook
Inspektor Roomba - Gunook

Video: Inspektor Roomba - Gunook

Video: Inspektor Roomba - Gunook
Video: Inspector Roomba 2024, November
Anonim
Image
Image
Anschluss elektronischer Teile
Anschluss elektronischer Teile

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:

  1. BTM-222 Bluetooth-Modul oder anderes mit 115200 Baudrate x1
  2. 5V Abwärtsspannungsregler D24V6F5 x1
  3. Mini-Steckbrett x1
  4. Ein paar Drähte

Ausführung mit Gehäuse:

  1. 8-poliger Mini-DIN-Stecker x1
  2. Netzschalter x1
  3. LED 3 mm x1
  4. Widerstand 10k x1
  5. kleines Gehäuse 50x40x20 mm x1

erweiterte Version:

  1. Raspberry Pi 3 x 1
  2. RPi-Kupfer-Kühlkörper x1
  3. USB-WLAN-Adapter x1
  4. Micro-SD-Karte 8 GB oder größer x1
  5. RPi-Kamera - Fisheye-Objektiv x1
  6. Gehäuse für RPi x1
  7. Akkupack mit hoher Kapazität 5V (mindestens 10 Ah) x1
  8. Ein Stück Plastikhalterung x1
  9. Schrauben und Muttern M2 x4

Schritt 1: Anschluss elektronischer Teile

Anschluss elektronischer Teile
Anschluss elektronischer Teile
Anschluss elektronischer Teile
Anschluss elektronischer Teile
Anschluss elektronischer Teile
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

Image
Image
Verwenden der Android-Steuerungs-App
Verwenden der Android-Steuerungs-App
Verwenden der Android-Steuerungs-App
Verwenden der Android-Steuerungs-App
Verwenden der Android-Steuerungs-App
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

RPi Remote-Webcam
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:

  1. Bearbeiten: sudo nano /etc/modules - am Ende der Datei hinzufügen: bcm2835-v4l2
  2. Motion installieren: sudo apt-get install motion
  3. Ö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)
  4. Aktivieren Sie den Daemon (Dienst): sudo nano /etc/default/motion und suchen und ändern Sie start_motion_daemon=yes.
  5. Dienst starten: sudo service motion start oder sudo motion -n -c /etc/motion/motion.conf
  6. Ö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

Pläne für die weitere Entwicklung
Pläne für die weitere Entwicklung
Pläne für die weitere Entwicklung
Pläne für die weitere Entwicklung
Pläne für die weitere Entwicklung
Pläne für die weitere Entwicklung
Pläne für die weitere Entwicklung
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

Anschluss elektronischer Teile - Version 2 mit Gehäuse
Anschluss elektronischer Teile - Version 2 mit Gehäuse
Anschluss elektronischer Teile - Version 2 mit Gehäuse
Anschluss elektronischer Teile - Version 2 mit Gehäuse
Anschluss elektronischer Teile - Version 2 mit Gehäuse
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: