Présentation du diable TV, une blague Arduino à télécommande facile

Publicité

Publicité
Publicité

Cachez ceci dans votre salon et riez comme la boîte de TiVo est apparemment possédée par un démon qui exige de regarder des chaînes de magasinage de cheesy. Que votre but 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 cette "blague", nous allons faire un appareil qui enregistre, puis joue, une série de commandes à distance IR. Il fonctionnera avec n'importe quel appareil qui utilise une télécommande IR, ou même un mélange d'appareils à la fois - en enregistrant jusqu'à 10 pressions de touches.

Composants

Voici une liste des choses dont vous aurez besoin pour ce projet:

  • Arduino et fils de raccordement
  • Récepteur IR, comme TSOP382 - mais vous devriez être en mesure de trouver un compatible dans l'ancienne électronique. J'ai sorti le mien d'un contrôleur d'éclairage RGB de rechange. Ils ont généralement 3 pattes et sont noirs, avec un côté ressemblant à une LED qui a été coupé en deux et collé. Je suis sûr qu'il y a un mot technique pour ça.
  • LED d'émetteur IR, tels que TIL38 - encore une fois, ceux-ci sont assez communs, mais j'ai acheté un nouveau de haute puissance de Maplin; ils ont l'air identiques à toute autre LED, alors assurez-vous de ne pas les mélanger dans votre kit électronique!
  • Résistance appropriée pour votre LED IR - utilisez cette calculatrice LED en fonction de la tension d'alimentation (5 V de l'Arduino), et de la tension et du courant direct de la fiche de données LED (généralement autour de 1, 2 V @ 20 mA). Cela est sorti comme 220 ohms dans mon cas.
  • Bouton-poussoir, et pulldown 10k et résistances de 100 ohms.
  • Téléchargez la bibliothèque à distance IR de Ken Shirriff de Github et placez-la dans votre dossier Arduino / Libraries . Il y a aussi un exemple de code que nous utiliserons et qui devrait ensuite être accessible depuis le menu Arduino Open -> Libraries .

Composants

Câblage

Abordez ce circuit en trois parties - l'interrupteur est un peu fiddly, mais tout le reste est facile. Rappelez-vous la jambe courte de la LED avec le visage plat est la cathode (négatif ou au sol); la longue jambe est l'anode (positive).

circuit-diagramme-ir-farce

Réception de signaux

Allez-y et ouvrez le code exemple libraries / IRremote / IRrecvDemo . Assurez-vous que RECV_Pin est correctement défini, compilez et téléchargez, puis ouvrez la console série à 9600 bauds. Prenez la télécommande que vous avez à portée de main, dirigez-la vers votre récepteur et appuyez sur les boutons. Les différents boutons produiront des codes différents; certains indiqueront un appui long avec le code initial puis FFFFFF, tandis que des télécommandes différentes peuvent simplement répéter le code à nouveau.

irrecv

Pour une vue plus détaillée des données reçues, jetez plutôt un oeil à l'exemple IRrecvDump, 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 voulez que les valeurs décodées.

irdump

Répéter un signal

Nous n'écrirons pas notre farce aujourd'hui à partir de zéro, alors allez-y et consultez l'exemple IRrecord . La complexité du code augmente considérablement ici, mais c'est surtout pour gérer différents types de codes IR - fondamentalement, voici ce qui se passe dans la boucle:

  • Vérifiez que le bouton est enfoncé, relisez le signal actuellement mémorisé si c'est le cas et répétez toutes les 50 ms jusqu'à ce qu'il soit enfoncé.
  • Si vous n'êtes pas pressé et qu'un signal est détecté, enregistrez-le.

La plus grande limite de cet exemple est qu'il ne fonctionne qu'avec un seul code à la fois, donc si vous appuyez sur un autre bouton distant, il écrasera le dernier. Le bouton rejoue simplement le tout dernier signal reçu. Compilez et exécutez le code de sorte que vous pouvez essayer avec ce répéteur de signal de base. Pour reproduire un seul signal, cela fonctionne très bien, mais c'est peu pratique dans une blague ou autrement.

La farce!

Modifions-le légèrement pour enregistrer 10 signaux espiègles ou plus. Vous pouvez trouver le code modifié complet ici, mais voici un aperçu des modifications que j'ai faites au cas où vous voudriez faire un essai en programmant ceci pour vous-même:

  • Définir 3 nouveaux tableaux de taille 10 pour stocker un ensemble de signaux chaque fois qu'un est détecté, et un entier pour stocker la taille de ces tableaux.
  • Stocker un index de l'endroit où nous sommes actuellement dans ce tableau. Augmentez l'index chaque fois qu'un signal est détecté - mais n'augmentez pas si le signal est un code répété.
  • Une valeur booléenne qui arrête d'être plus enregistrée une fois que nous avons atteint le maximum.
  • Un booléen pour indiquer si nous sommes en mode de lecture ou non, plutôt que d'avoir à maintenir le bouton enfoncé; également modifié la logique du bouton pour basculer cela.

Notez que le voyant LED sur l'Arduino (broche 13) s'activera une fois la mémoire pleine. À l'heure actuelle, vous devez enregistrer 10 appuis sur les boutons - pas moins - et le mode relecture attendra 1 seconde entre chaque relecture de bouton. Ici, c'est en action:

Vous pouvez soit jouer avec faire plus de farces IR, ou considérer cela comme un bon début sur un projet domotique plus épique Guide de domotique avec Raspberry Pi et Arduino Guide de domotique avec Raspberry Pi et Arduino Le marché de la domotique est inondé de coûteux systèmes de consommation, incompatibles entre eux et coûteux à installer. Si vous avez un Raspberry Pi et un Arduino, vous pouvez fondamentalement réaliser la même chose à ... Lire la suite; et n'oubliez pas de vérifier tous les autres projets Arduino. Partagez vos créations (ou problèmes) dans les commentaires, et s'il vous plaît montrer votre appréciation pour cet article en le partageant sur vos réseaux sociaux préférés!

Crédit d'image: DaGoaty

In this article