[PYTHON] Machen wir eine Remote-Rumba [Hardware]

Einführung

Wussten Sie, dass Rumba gesteuert werden kann? Rumba ist standardmäßig mit einer seriellen Schnittstelle ausgestattet, und es scheint, dass Sie diese Schnittstelle verwenden können, um Rumba wie programmiert auszuführen (es scheint seit langem eine berühmte Geschichte zu sein).

Ich habe vor kurzem eine Rumba bekommen, also habe ich beschlossen, damit herumzuspielen. Ich hoffe du kannst bis zum Ende mit mir mithalten.

Ziel

In diesem Artikel besteht das Ziel darin, Rumba remote zu betreiben. Die Artikel sind in [Hardware] und [Software] unterteilt. Dieses Mal werden wir die Vorbereitungen zusammenfassen, bevor wir Rumba steuern. Selbst wenn Sie aufgrund eines bestimmten Virus nicht nach Hause gehen können, können Sie mit Rumba problemlos aus der Ferne nach Hause gehen.

IMG_20200909_112758.jpg

Gebrauchte Ausrüstung

1.Roomba Rumba, die gesteuert werden kann, ist begrenzt. Grundsätzlich gibt es nur serielle Schnittstellen bis zur Serie ** 500, 600, 700, 800 **. Es scheint jedoch, dass die 900er-Serie anstelle der seriellen Schnittstelle mit microUSB ausgestattet ist. Übrigens, die oben genannte Rumba ist eine kleine alte Serie, so dass es in letzter Zeit möglich ist, sie mit Yahoo! Wenn Sie keine haben, warum nutzen Sie diese Gelegenheit nicht, um eine zu bekommen?

[[IRobot Roomba770] Junk Essay](https://furuya-base.net/home/2020/09/09/%e3%80%90irobot-roomba770%e3%80%91%e3%82%b8%e3% 83% a3% e3% 83% b3% e3% 82% af% e3% 82% a8% e3% 83% 83% e3% 82% bb% e3% 82% a43 /) Sie können es auch dann verwenden, wenn es sich um ein Junk-Objekt wie ↑ handelt.

2.Raspberry Pi Himbeerkuchen wird zur Kontrolle verwendet. Grundsätzlich ist jeder Typ in Ordnung, solange Sie über GPIO verfügen. ** 3 ** wird jedoch empfohlen, wenn Sie remote arbeiten möchten. Der Grund dafür ist, dass High-End-Modelle wie 3 Modell B + und 4 mehr Strom verbrauchen, sodass es sehr wahrscheinlich ist, dass sie nicht mit mobilen Batterien betrieben werden.

3. Mobiler Akku

Zum Fahren von Raspeltorte. USB Typ A muss eine Versorgungskapazität von ** 2,4 [A] ** oder höher haben.

4. Webkamera

Ich benutze es, weil ich das Bild sehen möchte, wenn ich es aus der Ferne bediene. Ich denke, dass jede USB-Verbindung in Ordnung ist. Es kann zweckmäßig sein, eine Autofokusfunktion zu haben.

5. Rumba- und Raspeye-Verbindungskabel

Es wird verwendet, um Rumba und Raspeye zu verbinden. Grundsätzlich wird dieses Kabel jedoch nicht verkauft, daher müssen Sie ** Ihr eigenes ** erstellen. Also habe ich unten beschrieben, wie man es macht. Wenn Sie sich hinsichtlich des Aussehens nicht besonders auskennen, können Sie Überbrückungsdrähte zwischen Stecker und Buchse verwenden.

Produktion

1. Herstellung von Verbindungskabeln

IMG_20200902_191534.jpg Zuerst machen wir das Kabel. Bereiten Sie einen Mini-DIN 7Pin-Stecker vor. In Akihabara erhalten Sie es für etwa 150 Yen im 2. Stock des Sengoku Tsusho. 0001.png Gemäß den von iRobot offiziell herausgegebenen Rumba-Spezifikationen werden die Pins 3 und 4 für das serielle Senden und Empfangen verwendet. Da der Signalpegel der seriellen Kommunikation als 0-5 [V] beschrieben wird, scheint es, dass eine Kommunikation auf TTL-Ebene anstelle des ** RS232C-Signalpegels ** erforderlich ist. Daher kann es ohne Pegelwandler nicht direkt vom Computer aus gesteuert werden. Daher werde ich dieses Mal GPIO von Raspeye und Rumba verbinden, um zu kommunizieren. 0002.png Insbesondere Draht wie in dieser Abbildung gezeigt. ** Bitte so verdrahten, dass TX und RX miteinander verbunden sind **. Bitte beachten Sie, dass Sie nicht mit TX-TX oder RX-RX kommunizieren können. IMG_20200907_144646.jpg Abgesehen davon empfehlen wir für das Kabel das 3,5-φ-Stereo-Ministecker-Kabel des 300-Yen-Lautsprechers von Daiso, das sowohl in der Dicke als auch in der Länge optimal ist. (Der Lautsprecher kann jedoch nicht verwendet werden.) IMG_20200902_205823.jpg

Es wird auch empfohlen, das Schrumpfrohr des Daiso-Produkts zu verwenden, da es gut aussehen kann.

2. Razz Pie Setup

Ich werde die Raspeltorte setzen. Ich denke, Raspberry Pi OS ist sicher wie das Betriebssystem.

2-1. Stellen Sie eine Verbindung zu WiFi her

Verbinden Sie Raspeye mit einem beliebigen WLAN. In diesem Fall ist es in Ordnung, wenn Sie über die GUI etwas einstellen können. Da Sie jedoch später vom Host-Computer aus darauf zugreifen möchten, wird empfohlen, eine feste IP-Adresse anzuhängen.

Legen Sie eine feste IP-Adresse für das WLAN von Raspberry Pi 3 (Raspbian Jessie) fest ↑ Ich denke, die Erklärung dieser Person ist leicht zu verstehen und hilfreich.

2-2. SSH aktivieren

Danach möchte ich es über die Befehlszeile steuern, also SSH aktivieren.

Methode zum Einstellen der SSH-Verbindung von außerhalb des LAN von Raspberry Pi 3 ↑ Ich denke, die Erklärung dieser Person ist leicht zu verstehen und hilfreich. In diesem Fall wird ausführlich erläutert, wie eine Verbindung von außerhalb des lokalen Bereichs hergestellt wird, sodass die Fernbedienung ideal ist. Wenn Sie jedoch nur den Vorgang überprüfen und ihn zuerst genießen möchten, können Sie nur SSH aktivieren.

2-3. Verbindung vom Host-Computer

Alles ist in Ordnung, solange das Terminal mit Raspeye verbunden werden kann. Wir verwenden Tera Term. Wenn Sie eine Verbindung herstellen können, indem Sie den Benutzernamen und das Kennwort in eine beliebige IP-Adresse eingeben, aktualisieren Sie diese vorerst.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

2-4. UART aktivieren

Bei Rasppie ist die serielle Kommunikation standardmäßig deaktiviert und muss aktiviert sein.

UART mit Raspberry Pi + serieller Kommunikation aktivieren ↑ Ich denke, die Erklärung dieser Person ist leicht zu verstehen und hilfreich.

3. Überprüfen Sie den Durchgang des Kabels

Was mich vorerst interessiert, wenn ich hierher komme, ist, ob das Kabel richtig hergestellt ist. Senden wir also tatsächlich ein Signal und empfangen es selbst. Wenn es gut funktioniert, sollten Sie es korrekt empfangen können.

$pip3 install PySerial

Fügen Sie die obige Bibliothek mit pip zu python3 hinzu.

test_serial.py


import serial

def main():

    #'/dev/serial0'
    #'/dev/ttyAMA0'

    port = '/dev/ttyAMA0'
    ser = serial.Serial('COM3', 115200, timeout=0.1)

    while True:

        tx = bytes([128])
        ser.write(tx)
        print("tx:", tx)

        rx = ser.readline()
        print("rx: ", rx)

if __name__ == '__main__':
    main()

Die verwendete Sprache ist Python 3.7. Tun Sie dies an der Raspeltorte und schließen Sie die Mini-DIN-Stifte 3 und 4 mit einem Clip oder etwas anderem kurz. Hoffentlich erhalten Sie den Wert "rx: b" \ x80 "nur, wenn Sie einen Kurzschluss haben.

Wenn der Wert "rx: b" ist, besteht eine hohe Wahrscheinlichkeit, dass der Draht irgendwo gebrochen ist. Wenn Sie die Meldung "Port konnte nicht geöffnet werden" / dev / ttyAMA0 "erhalten, ist UART möglicherweise nicht aktiviert. Überprüfen Sie dies daher dort.

Außerdem wird 2.7 standardmäßig aufgerufen, wenn Python mit Raspeye ausgeführt wird. Stellen Sie daher sicher, dass Sie es mit Python3 ausführen. ** (Python2 sollte keine Funktion namens "Bytes" haben, daher scheint es sich um einen Fehler zu handeln.)

4. Für eine bequemere Verwendung

Es ist eine Seite von hier. Das Platzieren jedes Geräts auf der Rumba bei der Steuerung der Rumba ist unordentlich und sieht nicht sehr gut aus. Daher ist es eine Einführung, die ich so mache. IMG_20200903_161813.jpg Dies ist ein Stativ und eine Einheitsband, die an Daiso verkauft werden. Die Webkamera, die ich verwendet habe, hat ein Schraubenloch zum Befestigen des Stativs, deshalb habe ich dieses Stativ verwendet, weil ich dachte, es sei billig und genau richtig. Da es einfach ist, den Blickwinkel der Kamera anzupassen, ist es ideal, um in Zukunft Systeme wie die Bildverarbeitung hinzuzufügen. Darüber hinaus sind alle Geräte an diesem Stativ befestigt. Bei normaler Verwendung von Rumba muss nur das Stativ entfernt werden. IMG_20200908_144109.jpg Für die Raspeltorte selbst habe ich mit dem Befestigungsloch im angebrachten Gehäuse ein Loch in einen Kunststoffwagen geeigneter Größe und Dicke gemacht und es mit einem Bindeband am Stativ befestigt. An häufig entfernten Geräten, z. B. mobilen Batterien, ist ein Klebeband angebracht.

nächstes Mal

Wenn dies abgeschlossen ist, ist das Hardware-Setup vorerst abgeschlossen. Dies funktioniert jedoch nicht. Daher können Sie beim nächsten Mal Lassen Sie uns eine Remote-Rumba [Software], eine grundlegende Rumba-Steuerung und eine Remote-Kamera verwenden Ich möchte ein System bauen.

Verweise

1.iRobot Roomba 500 Open Interface (OI) Specification 2. Legen Sie eine feste IP-Adresse für das WLAN von Raspberry Pi 3 (Raspbian Jessie) fest 3. UART für Raspberry Pi + serielle Kommunikation aktivieren

Recommended Posts

Machen wir eine Remote-Rumba [Hardware]
Lassen Sie uns eine Remote-Rumba erstellen [Software]
Machen wir einen Discord Bot.
Lassen Sie uns eine GUI mit Python erstellen.
Machen wir einen Spot Sale Service 2
Machen wir einen Blockbruch mit wxPython
Machen wir einen Spot Sale Service 1
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Machen wir einen Spot Sale Service 3
Lassen Sie uns mit Python ein Shiritori-Spiel machen
[Fernentwicklung] Machen wir es zuerst !! (Übung 1)
Lassen Sie uns mit Python langsam sprechen
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
Lassen Sie uns mit flask-babel eine mehrsprachige Site erstellen
Erstellen Sie ein Webframework mit Python! (1)
Machen wir mit Pylearn 2 eine dreiäugige KI
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Lassen Sie uns ein Backend-Plug-In für Errbot erstellen
[Ev3dev] Lassen Sie uns ein Fernsteuerungsprogramm von Python mit dem RPyC-Protokoll erstellen
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Lassen Sie uns mit SWIG ein Modul für Python erstellen
Lass uns ein Squashspiel machen
Machen wir einen Spot Sale Service 9 (Task Queue Edition)
Lass uns ein Makefile machen und es bauen (super Anfänger)
[Lass uns mit Python spielen] Ein Haushaltsbuch erstellen
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
Machen Sie einen Funktionsdekorateur
Erstellen Sie eine Distanzmatrix
Lassen Sie uns das Abhängigkeitsmanagement mit pip etwas einfacher machen
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
Ich mache ein Passwort!
Lassen Sie uns eine Mac-App mit Tkinter und py2app erstellen
Versuchen Sie, mit Rhinoceros / Grasshopper / GHPython ein sphärisches Gitter zu erstellen
Machen wir einen Spot Sale Service 8 (Image Uploader Edition)
Machen Sie einen Nyan-Knopf
[Super einfach] Machen wir einen LINE BOT mit Python.
Lassen Sie uns mit Google Colaboratory ganz einfach ein mathematisches GIF erstellen
Mach ein Spiel im Tetris-Stil!
Lassen Sie uns ein Cron-Programm in Java erstellen! !! (TaskScheduler)
Erstellen Sie einen Base64-Decoder
Lassen Sie uns mit Python einen Web-Socket-Client erstellen. (Zugriffstoken-Authentifizierung)
Lassen Sie uns einen Roboter bauen, der den Zauberwürfel löst! 2 Algorithmus
Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)
Lassen Sie uns einen Roboter bauen, der den Zauberwürfel löst! 3 Software
Lassen Sie uns einen Roboter bauen, der den Zauberwürfel löst! 1. Übersicht
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
Lassen Sie uns einen LINE-Bot mit verschiedenen Diensten erstellen [ngrok edition]
Erstellen Sie ein Blueqat-Backend ~ Teil 1
Erstellen Sie ein Blueqat-Backend ~ Teil 2
Machen wir Othello mit wxPython
Lassen Sie uns ein Errbot-Plugin erstellen
[Django] Erstellen Sie ein Pulldown-Menü
Versuchen wir es mit einem Shell-Skript
Machen Sie einen LINE BOT (Chat)