Etape 2: Apprendre à communiquer avec télécommande IR
Nous allons apprendre comment nous pouvons recevoir des commandes de la télécommande IR. L’objectif est d’obtenir et n’oubliez pas de signal de codes de votre télécommande. Nous les utiliserons plus tard dans les croquis de Ringo de la Beetle.
Prenez un Arduino Uno, une maquette (sa taille n’importe sur cette étape), sauter fils et un récepteur IR. Faire un circuit que vous voyez sur les photos.
MISE EN GARDE ! Ce circuit est prévu pour le récepteur IR TSOP2136. Vôtre peuvent différer. Vérifiez d’abord la feuille de données pour votre récepteur.
Maintenant, suivez le lien et télécharger le code source. Si vous avez travaillé avec dépôts Git avant vous pouvez la fourche ou clone de celui-ci. Et si vous n’avez pas alors vous peuvent simplement télécharger l’archive ZIP du répertoire des sources et décompressez-le quelque part sur votre disque local.
Démarrez l’IDE Arduino et ouvrez projet /ir_receiver/ir_receiver.ino. Jetez un oeil sur le code. La première ligne de code est
#include "IRremote.h"
Cela signifie que l’esquisse utilise une spéciale bibliothèque IRremote.h qui implémente les fonctionnalités de réception et l’envoi (nous n’utilisons pas elle) signaux IR. Cette bibliothèque n’est pas une partie de l’IDE Arduino et nous avons besoin de l’installer. C’est un projet ouvert avec la licence GNU, donc nous pouvons l’utiliser pour Ringo. Lisez les instructions et installer la bibliothèque. N’oubliez pas de redémarrer IDE Arduino et rouvrir ir_receiver.ino.
Nous sommes maintenant prêts à télécharger le croquis. Connectez votre ordinateur et Arduino Uno via un câble USB.
Vérifier l’élément de menu Tools⇒Board en IDE Arduino. Il doit être défini sur « Arduino Uno ».
Vérifiez ensuite le menu item Tools⇒Serial Port. Il doit être défini sur votre contrôleur est connecté au port.
Compiler et télécharger le schéma (File⇒Upload).
Ouvrez le Serial Monitor (moniteur de Tools⇒Serial), puis vérifier son débit en bauds. Réglez-le à 9600.
Prendre un IR à distance et commencez à appuyer sur les boutons. Tout fonctionne très bien si vous voyez des codes dans le moniteur de la série.
Sur ces codes... Comme je l’ai dit nous allons les utiliser dans l’esquisse qui contrôle le robot. Divers fournisseurs utilisent différents protocoles de communication. Si des codes et des séquences de code peuvent différer pour différentes télécommandes IR. Et il sera difficile de les comprendre tous. Mais je veux simplifier le problème. Lorsque vous appuyez sur un bouton, vous pouvez voir que plusieurs codes s’affichent dans la fenêtre Moniteur de la série. Certains d'entre eux se reproduisent, d’autres sont uniques. Nous avons ne besoin que ces codes uniques. Et nous allons ignorer les codes qui se reproduisent. Certains fournisseurs utilisent des protocoles où il y a un code unique pour chaque bouton. Autres fournisseurs utilisent des protocoles avec deux codes uniques entrelacées d’un seul bouton. Je veux dire que quand vous appuyez sur la touche pour la première fois vous obtenez un code, lorsque vous appuyez dessus pour la deuxième fois, que vous obtenez un autre code. Alors lorsque vous appuyez dessus pour la troisième fois, vous obtenez le premier code à nouveau. Et ainsi de suite.
Notre robot peut exécuter des 13 commandes :
- Aller de l’avant.
- Revenir en arrière.
- Tourner à gauche.
- Tourner à droite.
- Aller de l’avant avec virage à gauche.
- Aller de l’avant avec virage à droite.
- Reculer avec virage à gauche.
- Reculer avec virage à droite.
- Arrêter.
- Définissez la 1ere vitesse (le plus lent).
- Régler la vitesse du 2ème.
- Régler la vitesse du 3e.
- Régler la 4ème vitesse (le plus rapide).
Sélectionnez les touches de votre télécommande pour ces commandes IR. J’ai utilisé les touches 1 à 9 pour les neuf premières commandes et boutons de couleur (rouge, vert, jaune et bleu) pour le dernier carré.
Maintenant, appuyez plusieurs fois sur chaque bouton et écrire tous les codes uniques dans la table avec deux colonnes : bouton et codes. Vous utiliserez ces codes dans l’esquisse qui contrôle le robot.