Nascondilo nel tuo salotto e ridi mentre la scatola di TiVo è apparentemente posseduta da un demone che chiede di guardare i canali di shopping di gusto. Sia che il tuo obiettivo finale sia quello di spegnere ogni TV nelle vicinanze o costruire un telecomando universale controllato da Siri, questo progetto rappresenta un ottimo punto di partenza per apprendere le basi del controllo e dei ricevitori IR.
In questo "scherzo", realizzeremo un dispositivo che registra, quindi riproduce, una serie di comandi remoti IR. Funzionerà con qualsiasi dispositivo che utilizza un telecomando a infrarossi, o anche un mix di dispositivi contemporaneamente - registrando fino a 10 tasti premuti.
componenti
Ecco un elenco delle cose che ti serviranno per questo progetto:
- Arduino e cavi patch
- Ricevitore IR, come TSOP382 - ma dovresti riuscire a trovarne uno compatibile nella vecchia elettronica. Ho estratto il mio da un controller di illuminazione RGB di riserva. Di solito hanno 3 zampe e sono neri, con un lato simile a un LED che è stato tagliato a metà e bloccato. Sono sicuro che c'è una parola tecnica per questo.
- LED del trasmettitore IR, come TIL38 - di nuovo, questi sono abbastanza comuni, ma ho comprato uno nuovo ad alta potenza da Maplin; sembrano identici a qualsiasi altro LED, quindi assicurati di non farli confondere con il tuo kit di elettronica!
- Resistore adatto per il vostro LED IR: utilizzare questo calcolatore LED in base alla tensione di alimentazione (5 V di Arduino) e alla tensione e corrente diretta del foglio dati LED (in genere attorno a 1, 2 V @ 20 mA). Questo è venuto fuori come 220 ohm nel mio caso.
- Pulsante, e pulldown 10k e resistori da 100 ohm.
- Scarica la libreria remota IR di Ken Shirriff da Github e inseriscila nella cartella Arduino / Librerie . C'è anche un codice di esempio che useremo che dovrebbe essere accessibile dal menu Arduino Open -> Libraries .
Cablaggio
Affronta questo circuito in tre parti: l'interruttore è un po 'complicato, ma tutto il resto è facile. Ricorda che la gamba corta del LED con la faccia piatta è il catodo (negativo o terra); la gamba lunga è l'anodo (positivo).
Ricezione di segnali
Vai avanti e apri il codice di esempio di librerie / IRremote / IRrecvDemo . Assicurati che RECV_Pin sia impostato correttamente, compila e carica, quindi apri la console seriale a 9600 baud. Prendi qualsiasi telecomando a portata di mano, puntalo verso il ricevitore e inizia a premere i pulsanti. Diversi pulsanti produrranno codici diversi; alcuni indicheranno una pressione lunga con il codice iniziale, quindi FFFFFF, mentre i telecomandi diversi potrebbero semplicemente ripetere nuovamente il codice.
Per una vista più dettagliata dei dati ricevuti, date invece un'occhiata all'esempio IRrecvDump, che indicherà sia il tipo di segnale ricevuto (NEC a 32 bit in questo caso), sia i valori non elaborati. Buono a sapersi, ma nella maggior parte dei casi vorrai solo i valori decodificati.
Ripetizione di un segnale
Non scriveremo la nostra burla oggi da zero, quindi vai avanti e controlla l'esempio di IRrecord . La complessità del codice aumenta enormemente qui, ma è principalmente in grado di gestire diversi tipi di codici IR - fondamentalmente, ecco cosa sta succedendo all'interno del ciclo:
- Controllare che il pulsante sia premuto, riprodurre il segnale attualmente memorizzato, se lo è e ripetere ogni 50 ms fino a quando non viene premuto.
- Se non viene premuto e viene rilevato un segnale, registrarlo.
Il più grande limite di questo esempio è che funziona solo con un codice alla volta, quindi se si preme un altro pulsante remoto, sovrascriverà l'ultimo. Il pulsante riproduce semplicemente l'ultimo segnale ricevuto. Compilare ed eseguire il codice in modo da poter provare questo ripetitore di segnale di base. Per la riproduzione di un singolo segnale, funziona bene, ma è poco utile in uno scherzo o altro.
Lo scherzo!
Modifichiamolo leggermente per registrare 10 o più segnali dispettosi. Puoi trovare qui il codice completo, ma ecco uno schema delle modifiche che ho apportato nel caso in cui ti piacerebbe avere una programmazione programmata per te:
- Definire 3 nuovi array di dimensione 10 per memorizzare un insieme di segnali ogni volta che uno viene rilevato e un numero intero per memorizzare la dimensione di tali matrici.
- Memorizza un indice di dove ci troviamo attualmente in quell'array. Aumentare l'indice ogni volta che viene rilevato un segnale - ma non aumentare se il segnale è un codice di ripetizione.
- Un valore booleano che interrompe la registrazione quando si raggiunge il massimo.
- Un booleano per indicare se siamo in modalità riproduzione o no, piuttosto che dover tenere premuto il pulsante; anche modificato la logica del pulsante per alternare questo.
Notare che il LED indicatore sull'Arduino (pin 13) si attiverà quando la memoria è piena. Al momento, è necessario registrare 10 pressioni di pulsanti - non meno - e la modalità di riproduzione attenderà 1 secondo tra ogni riproduzione di pulsanti. Eccolo in azione:
Puoi giocare con fare più scherzi IR, o considerare questo un buon inizio su un progetto di automazione domestica più epico Home Automation Guide Con Raspberry Pi e Arduino Home Automation Guide Con Raspberry Pi e Arduino Il mercato domotico è invaso da costosi sistemi di consumo, incompatibile tra loro e costoso da installare. Se hai un Raspberry Pi e un Arduino, puoi sostanzialmente ottenere la stessa cosa a ... Read More; e non dimenticare di dare un'occhiata a tutti gli altri progetti di Arduino. Condividi le tue creazioni (o problemi) nei commenti e mostra il tuo apprezzamento per questo articolo condividendolo sui tuoi social network preferiti!
Immagine di credito: DaGoaty