[PYTHON] Faisons une rumba distante [Matériel]

introduction

Saviez-vous que la Rumba peut être contrôlée? Rumba est équipé d'un port série en standard, et il semble que vous puissiez utiliser ce port pour exécuter Rumba comme programmé arbitrairement (cela semble être une histoire célèbre d'il y a longtemps).

J'ai récemment eu une rumba et j'ai décidé de jouer avec parce que c'était un gros problème. J'espère que vous pourrez me suivre jusqu'à la fin.

Cible

Dans cet article, le but est de faire fonctionner Rumba à distance. Les articles sont divisés en [Matériel] et [Logiciel], et cette fois nous résumerons les préparatifs avant de contrôler Rumba. Même si vous ne pouvez pas rentrer chez vous à cause d'un certain virus, si vous avez la Rumba, vous pouvez facilement rentrer chez vous à distance.

IMG_20200909_112758.jpg

Matériel usagé

1.Roomba La rumba qui peut être contrôlée est limitée. Fondamentalement, il n'y a que des ports série jusqu'à la ** série 500, 600, 700, 800 **. Cependant, il semble que la série 900 soit équipée de microUSB au lieu du port série. À propos, la Rumba ci-dessus est une petite série ancienne, il est donc possible récemment de l'obtenir à très bon marché avec Yahoo! Si vous n'en avez pas, pourquoi ne pas en profiter pour en obtenir un?

[[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 /) Vous pouvez l'utiliser même s'il s'agit d'un élément indésirable comme ↑.

2.Raspberry Pi La tarte aux framboises est utilisée pour contrôler. En gros, n'importe quel type convient tant que vous avez GPIO, mais ** 3 ** est recommandé si vous souhaitez opérer à distance. La raison en est que les modèles haut de gamme tels que 3 Model B + et 4 consomment plus d'énergie que cela, il est donc très probable qu'ils ne fonctionneront pas sur des batteries mobiles.

3. Batterie mobile

Pour conduire la tarte aux râpes. L'USB Type-A doit avoir une capacité d'alimentation de ** 2,4 [A] ** ou plus.

4. Caméra Web

Je l'utilise parce que je veux voir l'image lors de son utilisation à distance. Je pense que toute connexion USB est bien. Il peut être pratique d'avoir une fonction de mise au point automatique.

5. Câble de connexion Rumba et Raspeye

Il est utilisé pour connecter Rumba et Raspeye. Cependant, fondamentalement, ce câble n'est pas vendu, vous devez donc ** créer le vôtre **. Donc, j'ai décrit comment le faire ci-dessous. Si vous n'êtes pas particulier sur l'apparence, vous pouvez utiliser des fils de raccordement mâle-femelle.

Production

1. Production de câbles de connexion

IMG_20200902_191534.jpg Tout d'abord, nous allons fabriquer le câble. Préparez un connecteur mâle Mini-DIN 7Pin. À Akihabara, vous pouvez l'obtenir pour environ 150 yens au 2ème étage de Sengoku Trading. 0001.png Selon les spécifications Rumba officiellement publiées par iRobot, les broches 3 et 4 sont utilisées pour la transmission et la réception série. De plus, comme le niveau de signal de la communication série est décrit comme 0-5 [V], il semble que la communication au niveau TTL soit requise au lieu du ** niveau de signal RS232C **. Par conséquent, il ne peut pas être contrôlé directement depuis l'ordinateur sans convertisseur de niveau. Par conséquent, cette fois, je vais connecter GPIO de Raspeye et Rumba pour communiquer. 0002.png Plus précisément, fil comme indiqué sur cette figure. ** Veuillez câbler afin que TX et RX l'un de l'autre soient connectés **. Veuillez noter que vous ne pouvez pas communiquer avec TX-TX ou RX-RX. IMG_20200907_144646.jpg En aparté, pour le câble, nous recommandons le câble mini-prise stéréo 3,5φ du haut-parleur de 300 yens de Daiso, qui est optimal en épaisseur et en longueur. (Cependant, l'enceinte ne peut pas être utilisée) IMG_20200902_205823.jpg

Il est également recommandé d'utiliser le tube thermorétractable du produit Daiso car il peut être rendu beau.

2. Configuration de la tarte Razz

Je vais mettre la tarte aux râpes. Je pense que le système d'exploitation Raspberry Pi est sûr en tant que système d'exploitation.

2-1. Connectez-vous au WiFi

Connectez Raspeye à n'importe quel WiFi. Dans ce cas, c'est OK si vous pouvez définir quoi que ce soit à partir de l'interface graphique. Cependant, puisque vous souhaitez y accéder ultérieurement à partir de l'ordinateur hôte, il est recommandé d'attacher une adresse IP fixe.

Définissez une adresse IP fixe pour le réseau local sans fil de Raspberry Pi 3 (Raspbian Jessie) ↑ Je pense que l'explication de cette personne est facile à comprendre et utile.

2-2. Activer SSH

Après cela, je veux le contrôler à partir de la ligne de commande, alors activez SSH.

Méthode de configuration de la connexion SSH depuis l'extérieur du réseau local de Raspberry Pi 3 ↑ Je pense que l'explication de cette personne est facile à comprendre et utile. Dans ce cas, il explique en détail comment se connecter depuis l'extérieur de la zone locale, il est donc idéal en termes de télécommande. Cependant, si vous souhaitez vérifier uniquement l'opération et en profiter au début, vous ne pouvez activer que SSH.

2-3. Connexion depuis l'ordinateur hôte

Tout est OK tant que le terminal peut être connecté à Raspeye. Nous utilisons Tera Term. Si vous pouvez vous connecter en tapant le nom d'utilisateur et le mot de passe dans n'importe quelle adresse IP, mettez-le à jour pour le moment.

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

2-4. Activation de UART

Rasppie a désactivé la communication série par défaut et doit être activée.

Activer UART avec Raspberry Pi + communication série ↑ Je pense que l'explication de cette personne est facile à comprendre et utile.

3. Vérifiez la continuité du câble

Pour le moment, ce qui m'intéresse quand je viens ici, c'est de savoir si le câble est fabriqué correctement. Alors envoyons un signal et recevons-le nous-mêmes. S'il se conduit bien, vous devriez pouvoir le recevoir correctement.

$pip3 install PySerial

Ajoutez la bibliothèque ci-dessus à python3 avec pip.

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()

Le langage utilisé est Python 3.7. Faites cela sur la tarte à la râpe et court-circuitez les broches Mini-DIN 3 et 4 avec un clip ou quelque chose. J'espère que vous ne recevrez la valeur rx: b '\ x80' que pendant le court-circuit.

Si la valeur est rx: b'', il y a une forte possibilité que le fil soit cassé quelque part. Si vous obtenez n'a pas pu ouvrir le port '/ dev / ttyAMA0', vous n'avez peut-être pas réussi à activer UART, veuillez donc vérifier ici.

De plus, 2.7 est appelé par défaut lors de l'exécution de Python avec Raspeye, assurez-vous donc de l'exécuter avec Python3. ** (Python2 ne devrait pas avoir de fonction appelée bytes, donc cela semble être une erreur.)

4. Pour une utilisation plus confortable

C'est un aparté d'ici. Placer chaque appareil sur la rumba lors du contrôle de la rumba est salissant et n'a pas l'air très bien. C'est donc une introduction que je fais comme ça. IMG_20200903_161813.jpg Il s'agit d'un trépied et d'un groupe d'unité vendus à Daiso. La caméra Web que j'ai utilisée a un trou de vis pour fixer le trépied, j'ai donc utilisé ce trépied parce que je pensais qu'il était bon marché et juste. Puisqu'il est facile d'ajuster l'angle de vue de la caméra, il est idéal pour l'ajout de systèmes tels que le traitement d'image à l'avenir. De plus, tous les appareils sont fixés sur ce trépied, et la structure est telle que lors de l'utilisation normale de la rumba, il suffit de retirer le trépied. IMG_20200908_144109.jpg Pour la tarte à la râpe elle-même, en utilisant les trous de fixation dans le boîtier ci-joint, j'ai fait des trous dans un fourgon en plastique de taille et d'épaisseur appropriées et je l'ai fixé au trépied avec une bande de reliure. Le ruban magique est attaché aux appareils fréquemment retirés, comme les batteries mobiles.

la prochaine fois

Si cela est terminé, la configuration matérielle est terminée pour le moment. Cependant, cela ne fonctionne pas, donc la prochaine fois, Faisons une rumba distante [Logiciel], contrôle de base de la rumba et télécommande à l'aide d'une caméra Je voudrais construire un système.

Les références

1.iRobot Roomba 500 Open Interface (OI) Specification 2. Définissez une adresse IP fixe pour le LAN sans fil de Raspberry Pi 3 (Raspbian Jessie) 3. Activer UART sur Raspberry Pi + communication série

Recommended Posts

Faisons une rumba distante [Matériel]
Faisons une rumba distante [Logiciel]
Faisons un robot Discord.
Faisons une interface graphique avec python.
Faisons un service de vente au comptant 2
Faisons une rupture de bloc avec wxPython
Faisons un service de vente au comptant 1
Faisons un graphe avec python! !!
Faisons un spacon avec xCAT
Faisons un service de vente au comptant 3
Faisons un jeu de shiritori avec Python
[Développement à distance] Commençons par le faire !! (Pratique 1)
Faisons la voix lentement avec Python
Faisons un langage simple avec PLY 1
Faisons un site multilingue en utilisant flask-babel
Créez un framework Web avec Python! (1)
Faisons une IA à trois yeux avec Pylearn 2
Faisons un calcul de combinaison avec Python
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
Faisons un plug-in backend pour Errbot
[Ev3dev] Faisons un programme de contrôle à distance par Python avec le protocole RPyC
Remplaçons UWSC par Python (5) Faisons un robot
Faisons un module pour Python en utilisant SWIG
Faisons un jeu de squash
Faisons un service de vente au comptant 9 (édition Task Queue)
Faisons un Makefile et construisons-le (super débutant)
[Jouons avec Python] Créer un livre de comptes de ménage
Essayez de créer un jeu simple avec Python 3 et iPhone
Faire un décorateur de fonction
Faire une matrice de distance
Facilitons un peu la gestion des dépendances avec pip
[Pour jouer] Essayez de faire de Yuma un robot LINE (Python)
Je vais créer un mot de passe!
Créons une application Mac avec Tkinter et py2app
Essayez de créer une grille sphérique avec Rhinoceros / Grasshopper / GHPython
Faisons un service de vente au comptant 8 (édition de téléchargement d'image)
Créer un bouton Nyan
[Super facile] Faisons un LINE BOT avec Python.
Créons facilement un gif mathématique en utilisant Google Colaboratory
Créez un jeu à la Tetris!
Faisons un programme cron en Java! !! (Planificateur de tâches)
Créer un décodeur Base64
Créons un client de socket Web avec Python. (Authentification par jeton d'accès)
Faisons un robot qui résout le Rubik Cube! 2 Algorithme
Faisons un service de vente au comptant 4 (en Python mini Hack-a-thon)
Faisons un robot qui résout le Rubik Cube! 3 Logiciel
Faisons un robot qui résout le Rubik Cube! 1. Vue d'ensemble
Faisons un diagramme sur lequel on peut cliquer avec IPython
Créons un bot LINE en utilisant divers services [ngrok edition]
Créer un backend Blueqat ~ Partie 1
Créer un backend Blueqat ~ Partie 2
Faisons Othello avec wxPython
Faisons un plugin Errbot
[Django] Créer un menu déroulant
Essayons un script shell
Créer un LINE BOT (chat)