Présentation de TV Devil, une télécommande facile Prank Arduino
Cachez-le dans votre salon et riez, car la boîte de TiVo est apparemment possédée par un démon qui demande à regarder des chaînes de magasinage ringardes. Que votre objectif ultime soit d'éteindre tous les téléviseurs du quartier ou de construire une télécommande universelle contrôlée par Siri, ce projet constitue un excellent point de départ pour apprendre les bases du contrôle et des récepteurs IR..
Dans ce “farce”, nous allons créer un appareil qui enregistre, puis lit une série de commandes à distance IR. Il fonctionnera avec n'importe quel appareil utilisant une télécommande infrarouge, ou même avec une combinaison d'appareils à la fois - en enregistrant jusqu'à 10 pressions de touche.
Composants
Voici une liste des choses dont vous aurez besoin pour ce projet:
- Arduino et fils de brassage
- Récepteur IR, tel que TSOP382 - mais vous devriez pouvoir en trouver un compatible dans les vieux appareils électroniques. J'ai sorti le mien d'un contrôleur d'éclairage RVB de rechange. Ils ont généralement 3 pieds et sont noirs, avec un côté ressemblant à une LED qui a été coupée en deux et collée. Je suis sûr qu'il existe un mot technique pour cela.
- Émetteur infrarouge à LED, tel que TIL38 - encore une fois, ils sont assez courants, mais j’en ai acheté un nouveau à haute puissance de Maplin; elles ont l’air identiques à toutes les autres DEL, alors assurez-vous de ne pas les mélanger dans votre kit électronique!
- Résistance adaptée à votre LED IR - utilisez cette calculatrice à LED en fonction de la tension d'alimentation (5 V de l'Arduino), ainsi que de la tension et du courant directs de la fiche de données de la LED (généralement autour de 1,2 V à 20 mA). Cela est sorti comme 220 ohms dans mon cas.
- Bouton-poussoir et résistances 10k pulldown et 100 ohms.
- Téléchargez la bibliothèque à distance IR de Ken Shirriff de Github et placez-la dans votre Arduino / Bibliothèques dossier. Il y a aussi quelques exemples de code que nous allons utiliser et qui devraient ensuite être accessibles depuis l'Arduino. Ouvrir -> Bibliothèques menu.
Câblage
Abordez ce circuit en trois parties - le commutateur est un peu délicat, mais tout le reste est facile. Rappelez-vous que la partie courte de la LED avec la face plate est la cathode (négative ou la masse); la longue jambe est l'anode (positif).
Recevoir des signaux
Allez-y et ouvrez le bibliothèques / IRremote / IRrecvDemo exemple de code. Assurez-vous que le RECV_Pin est configuré correctement, compilez et téléchargez, puis ouvrez la console série à 9600 bauds. Saisissez toute télécommande que vous avez à portée de main, dirigez-la vers votre récepteur et commencez à appuyer sur les touches. Des boutons différents produiront des codes différents. certains indiqueront un appui long avec le code initial puis FFFFFF, tandis que différentes télécommandes peuvent simplement répéter le code.
Pour une vue plus détaillée des données reçues, jetez un coup d’œil à la IRrecvDump exemple à la place, qui indiquera à la fois le type de signal reçu (NEC 32 bits dans ce cas) et les valeurs brutes. Bon à savoir, mais dans la plupart des cas, vous ne voudrez que les valeurs décodées.
Répéter un signal
Nous n'écrirons pas notre blague aujourd'hui à partir de zéro, alors allez-y et jetez un œil à la IRrecord Exemple. La complexité du code augmente considérablement ici, mais il s’agit principalement de gérer différents types de codes IR. En gros, voici ce qui se passe dans la boucle:
- Vérifiez si le bouton est enfoncé, rejouez le signal actuellement stocké et répétez-le toutes les 50 ms jusqu'à ce que vous appuyiez dessus.
- Si vous n’appuyez pas sur le bouton et si un signal est détecté, enregistrez-le..
La plus grande limitation de cet exemple est qu'il ne fonctionne qu'avec un code à la fois. Par conséquent, si vous appuyez sur un autre bouton de la télécommande, le dernier sera écrasé. Le bouton reproduit simplement le tout dernier signal reçu. Compilez et exécutez le code afin que vous puissiez essayer ce répéteur de signal de base. Pour reproduire un seul signal, cela fonctionne bien, mais c'est peu pratique dans une farce ou autrement.
La blague!
Modifions-le légèrement pour enregistrer au moins 10 signaux malicieux. Vous pouvez trouver le code complet modifié ici, mais voici un aperçu des modifications que j'ai apportées au cas où vous souhaiteriez programmer ceci pour vous-même:
- Définir 3 nouveaux tableaux de taille 10 pour stocker un ensemble de signaux à chaque détection, et un entier pour stocker la taille de ces tableaux.
- Stocke un index indiquant où nous en sommes actuellement dans ce tableau. Augmente l'index chaque fois qu'un signal est détecté - mais n'augmente pas si le signal est un code à répétition.
- Une valeur booléenne qui empêche d'enregistrer davantage lorsque nous avons atteint le maximum.
- Un booléen pour indiquer si nous sommes en mode de lecture ou non, plutôt que de devoir maintenir le bouton enfoncé. également modifié la logique du bouton pour basculer cette.
Notez que le voyant LED sur l’Arduino (broche 13) s’allumera une fois la mémoire pleine. Pour le moment, vous devez enregistrer 10 appuis sur les boutons - pas moins - et le mode de lecture attend 1 seconde entre chaque lecture de bouton. Ici c'est en action:
Vous pouvez jouer avec plus de farces infrarouges ou le considérer comme un bon départ pour un projet domotique plus épique. Guide domotique avec Raspberry Pi et Arduino Guide domotique avec Raspberry Pi et Arduino Le marché de la domotique est inondé de systèmes grand public coûteux, incompatibles les uns avec les autres et coûteux à installer. Si vous avez un Raspberry Pi et un Arduino, vous pouvez obtenir la même chose en… Lire la suite; et n'oubliez pas de consulter tous les autres projets Arduino. Partagez vos créations (ou problèmes) dans les commentaires et montrez votre appréciation pour cet article en le partageant sur vos réseaux sociaux préférés!
Crédit image: DaGoaty
Explorer plus sur: Arduino, Television.