Contrôlez les robots Raspberry Pi via une télécommande infrarouge (partie 3)

Raspberry Pi Roboter per Infrarot Fernbedienung steuern

Une fois que notre robot a déjà appris à conduire et à suivre une ligne, nous voulons maintenant le laisser contrôler à distance. Pour cela, nous utiliserons d’abord une télécommande infrarouge et plus tard éventuellement une manette Xbox 360. En plus de contrôler la capacité de conduite, les modes (suivi de ligne, pilote automatique, etc.) doivent également être définis.

Dans cette partie des tutoriels sur le robot Raspberry Pi, nous programmons le récepteur IR et créons les commandes pour la télécommande. La télécommande est également montrée dans la vidéo.

Pièces matérielles requises

En plus des composants précédents, nous avons également besoin d’une télécommande IR et d’une diode infrarouge pour ce tutoriel (disponible ici en kit). Habituellement, le câbles de démarrage sont déjà inclus et la diode peut être connectée directement. Si vous achetez les diodes individuellement (ou si vous les avez encore disponibles), veuillez consulter la fiche technique pour être du bon côté avec le câblage suivant.

Vous pouvez également utiliser la diode IR avec télécommande pour la télécommande générale de votre Raspberry Pi, que ce soit dans un système multimédia tel que KODI ou simplement pour démarrer des scripts.

YouTube video

Connexion du récepteur IR

La connexion du récepteur infrarouge au Raspberry Pi est très simple, car le module n’a que trois broches. Si vous utilisez un récepteur comprenant un PCB (voir ci-dessus), les connexions seront nommées. Sinon, vous devrez rechercher dans la fiche technique l’affectation correcte, car cela peut différer.

En principe, la broche VCC est connectée à une broche 5V libre du Raspberry Pi, la broche GND à la masse / GND du Pi et la broche étiquetée IN / DATA va à GPIO 26.

Raspberry Pi Roboter Infrarot IR Steuerung

Circuit précédent du robot Raspberry Pi (avec récepteur IR)

Préparation

Pour utiliser le récepteur infrarouge, nous avons besoin du programme Lirc. J’ai déjà montré l’installation et le paramétrage de Lirc dans un tutoriel précédent. Je suppose que cela a été mis en œuvre car nous avons besoin d’un Lirc dans ce qui suit. La partie inférieure (télécommande universelle infrarouge Raspberry Pi – programmes de démarrage) concerne la création du fichier lircrc. Afin de contrôler le robot et de reconnaître les commandes plus tard dans notre script, nous devons créer un tel fichier.

Dès que vous avez installé et testé Lirc, nous créons ce fichier dans le dossier dans lequel se trouvent les autres scripts du robot:

cd robot/
sudo nano lircrc

Dans un instant, nous attendrons les codes de la télécommande. Pour ce faire, la chaîne de caractères est transférée dans le programme sous «config». Vous pouvez également attribuer d’autres clés ici plus tard, par exemple pour rendre d’autres actions disponibles ultérieurement. Dans mon cas, le mode de suivi d’une ligne est démarré avec le bouton Lecture / Pause.

Afin de pouvoir utiliser Lirc via Python, nous installons ensuite une bibliothèque correspondante:

sudo apt-get install python-lirc

Si vous utilisez Python 3, le package est python3-lirc.

Code pour recevoir des signaux infrarouges

Nous élargissons notre classe de robots créée précédemment. Pour ce faire, nous créons le IRControl() fonction après la fin de la lineFollowModeOn(self)une fonction.

Vous pouvez également voir le code complet (précédent) ici. Dans l’éditeur Nano, vous enregistrez avec CTRL + O et fermez avec CTRL + X.

Processus d’arrière-plan pour contrôler le robot

Nous voulons maintenant tester la fonctionnalité. Nous avons deux options pour cela. Le plus simple est que nous entrons simplement le code Python suivant dans la console (après sudo python). L’autre variante consiste à créer un script avec le code approprié et à le démarrer en arrière-plan après le démarrage. Ceci est par exemple particulièrement important sur Raspberry Pi Zero si vous n’avez pas d’adaptateur WLAN connecté. Conseil: si vous avez également un « gros » Raspberry Pi 3/ 2B, vous pouvez d’abord lire le code sur le Pi via SSH ou FTP, puis insérer simplement la carte Micro SD dans le Zero.

Le code du fichier de test est assez simple (sudo nano test.py):

Soit on démarre juste le fichier (sudo nano test.py) ou nous le laissons s’ouvrir automatiquement lorsque vous redémarrez.

Le moyen le plus simple de le faire est d’utiliser crontab:

crontab -e

À la fin, nous écrivons la ligne suivante:

@reboot ~/robot/test.py

Désormais, le fichier sera appelé au redémarrage et vous pourrez contrôler le robot Raspberry Pi à distance via une télécommande infrarouge.

Dans le prochain tutoriel, nous donnerons au robot un «pilote automatique» pour qu’il se déplace automatiquement là où il n’y a pas d’objet sur le chemin. La partie 6 de la série montre également le contrôler via le contrôleur Xbox 360.