Table des matières:

Télécommande IR universelle AIY : 5 étapes
Télécommande IR universelle AIY : 5 étapes

Vidéo: Télécommande IR universelle AIY : 5 étapes

Vidéo: Télécommande IR universelle AIY : 5 étapes
Vidéo: Télécommande universelle, pour portail ou garage automatique. 2024, Novembre
Anonim
Télécommande IR universelle AIY
Télécommande IR universelle AIY

Cette instructable décrit comment faire une télécommande infrarouge universelle AIY. Cela peut être utilisé pour contrôler n'importe quel téléviseur, barre de son, digibox, lecteur DVD ou lecteur bluray en utilisant votre voix.

Je l'appelle universel car il contient un récepteur IR qui peut être utilisé pour enregistrer le signal infrarouge de n'importe quelle télécommande.

Le projet AIY utilise le programme LIRC pour enregistrer et transmettre le signal IR.

Étape 1: Fabriquer un PCB

Faire PCB
Faire PCB
Faire PCB
Faire PCB

Liste des pièces:

Deux émetteurs LED infrarouges 940 nm 5 mm

Un récepteur infrarouge TSOP38238

Un transistor 2n3904

Une résistance de 10 ohms

Un veroboard

Quatre connecteurs simples (facultatif - je coupe un connecteur à six broches en connecteurs simples)

Câbles à connecter au chapeau AIY.

Assurez-vous que les LED IR ont la branche longue sur la première rangée et la branche courte sur la seconde. Deuxième LED avec patte longue sur la deuxième rangée et patte courte sur la troisième.

Le transistor doit avoir la base sur le troisième, le collecteur sur le quatrième et l'émetteur sur le cinquième. Assurez-vous que le côté plat de la résistance fait face au connecteur.

La résistance va entre la ligne cinq et la ligne huit.

Utilisez un court morceau de fil pour connecter la rangée une à la rangée sept.

Connectez le récepteur IR aux rangées sept, huit et neuf.

Ajoutez les connecteurs aux rangées un, quatre, huit et neuf.

Les connecteurs sont:

Rangée un - +5v puissance

Rangée quatre - signal de l'émetteur

Rangée huit - Sol

Rangée neuf - signal du récepteur

Étape 2: Connectez-vous au chapeau AIY

Connectez-vous au chapeau AIY
Connectez-vous au chapeau AIY
Connectez-vous au chapeau AIY
Connectez-vous au chapeau AIY

J'ai soudé des broches d'en-tête sur mon AIY pour faciliter la connexion.

Les broches que j'ai utilisées sont Servo 0 (GPIO 26) et Servo 5 (GPIO 24) pour le signal. J'ai également utilisé +5v de la broche horizontale au-dessus des broches Servo. J'ai pris le sol du GND à côté du Servo 0, mais vous pouvez utiliser n'importe quel sol que vous voulez.

À l'aide des câbles appropriés, j'ai connecté le chapeau AIY à la carte comme ceci:

+5V pour la première rangée

Servo 0 (GPIO 26) à la rangée quatre

GND à la ligne 8

Servo 5 (GPIO 24) à la rangée neuf.

Étape 3: Installer LIRC

En supposant que vous ayez déjà configuré et testé AIY:

Nous devons installer LIRC. Suivez ce précieux instructable par mirza irwan Osman:

www.instructables.com/id/Install-Linux-Infrared-Remote-Control-LIRC-Package

OU une instruction alternative peut être trouvée ici par Alex Bane:

alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/

REMARQUE: pour ma configuration, je devais m'assurer que le fichier /boot/config.txt contenait les éléments suivants:

dtoverlay=lirc-rpi, gpio_in_pin=24, gpio_out_pin=26

Étape 4: Obtenez ou créez des fichiers LIRC pour vos appareils

Cette étape suivante crée le fichier lircd.conf qui contient les détails sur la télécommande des appareils que vous souhaitez utiliser.

Il y a deux manières de créer ce fichier:

1. Si vous avez de la chance, vous pouvez trouver un fichier existant sur les pages LIRC de votre appareil

2. Si vous ne le trouvez pas, vous devrez alors enregistrer un fichier à l'aide du récepteur IR et de votre télécommande.

Pour l'étape 1, accédez à la page d'accueil de LIRC et parcourez la liste des appareils pris en charge:

www.lirc.org/

Si vous pouvez trouver le fichier pour le périphérique, vous devez alors transférer les informations du fichier dans le fichier lircd.conf /etc/lirc

Comme mon AIY est sans en-tête, j'utilise WINScP pour apporter les modifications à lirc.conf.

Les informations dont vous avez besoin commencent par "begin remote" et se terminent par "end remote"

REMARQUE: Si vous souhaitez contrôler plusieurs appareils, ajoutez simplement le code de télécommande supplémentaire dans le même fichier après la "télécommande de fin" existante. Assurez-vous que chaque télécommande a un nom unique. J'utilise "mytv" pour ma télévision, et "sky" pour ma sky digibox etc.

Si vous ne trouvez pas le code de votre appareil, vous devrez l'enregistrer.

Suivez cette instructable pour apprendre à enregistrer chaque télécommande à l'aide de LIRC:

www.instructables.com/id/Record-Infrared-Codes-of-Any-Remote-Control-Unit-f/

Une fois que vous avez enregistré la première télécommande, répétez le processus jusqu'à ce que toutes les télécommandes soient enregistrées. Vous pouvez ensuite mettre à jour le fichier lirc.conf avec tous les codes que vous avez enregistrés. Je devais le faire pour ma barre de son.

Étape 5: Codez AIY pour contrôler vos appareils

Pour contrôler l'émetteur IR depuis AIY, apportez les modifications nécessaires au fichier "assistant_library_with_local_commands_demo.py"

Vous pouvez exécuter "assistant_library_with_local_commands_demo.py" à partir du Start Dev Terminal afin de voir si votre code fonctionne.

Mon AIY démarre automatiquement au démarrage en suivant les instructions ici:

aiyprojects.withgoogle.com/voice/#makers-guide-3-4--run-your-app-automatically

Sachez que si vous souhaitez modifier votre code, vous devez arrêter l'exécution d'AIY, puis le redémarrer en utilisant ceux-ci:

service sudo my_assistant stop

service sudo my_assistant démarrer

Le code ci-joint contient mon programme de travail actuel.

(Notez que ce code contient également des fonctionnalités supplémentaires telles que la radio Internet).

Le code utilise des variations sur l'envoi du LIRC send_start et send_stop pour transmettre le signal IR requis. J'ai constaté qu'il est nécessaire d'introduire une pause entre le démarrage et l'arrêt du signal, et cela peut varier selon les appareils (mon téléviseur Panasonic nécessite un signal plus long que la sky box). Alors par exemple:

subprocess.call('irsend SEND_START mytv KEY_POWER', shell=True)

temps.sommeil (0,5)

subprocess.call('irsend SEND_STOP mytv KEY_POWER', shell=True)

Pour envoyer des combinaisons de signaux, par exemple la chaîne Sky TV, j'ai créé une liste qui désignait une phrase à un code de chaîne. Notez que parfois l'AIY n'entendra pas toujours le mot juste, j'ai donc également inclus des variations sur la phrase (telles que bbc 1 et bbc one, ou le mot "guide" ainsi que "dave" car AIY a toujours renvoyé que lorsque je a dit « dave » - ce doit être mon accent !). J'ai ensuite utilisé une routine qui récupérait le code à trois caractères de la liste et transmettrait chaque numéro (voir module ##Routine de changement de canal Sky##)

Il est également possible d'envoyer des combinaisons de signaux à plusieurs appareils. Ainsi, par exemple, j'ai une routine "système allumé" qui allume le téléviseur, allume la barre de son, démarre la sky box et la bascule sur BBC 1.

Une fois que l'émetteur IR fonctionne avec AIY, il est possible d'imaginer toutes les différentes combinaisons pour l'utiliser. Par exemple, je peux envoyer une commande de temps pour régler le volume sur la barre de son.

Bonne télécommande AIY IR !

Conseillé: