Come configurare smartphone e PC. Portale informativo
  • Casa
  • Sistemi operativi
  • Controllo IR dell'Arduino. Controlliamo qualsiasi apparecchiatura di controllo remoto a casa tramite IR da una pagina web

Controllo IR dell'Arduino. Controlliamo qualsiasi apparecchiatura di controllo remoto a casa tramite IR da una pagina web

Di solito telecomandi telecomando TV, decoder via cavo, Lettore Blu-ray e gli impianti stereo non solo occupano spazio, ma rendono anche difficile la gestione di tutti questi dispositivi. Potresti considerare l'acquisto telecomando universale, ma sono generalmente costosi e talvolta non forniscono il livello di controllo o di interfaccia richiesto. Questo progetto crea un dispositivo in grado di inviare e ricevere codici di controllo remoto da una pagina web standard. Puoi programmare le funzionalità richieste da qualsiasi smartphone o computer!

Questo progetto utilizza il modulo Arduino Yún, appositamente progettato per controllare i dispositivi che supportano connessione di rete. Yún ha due processori, il primo dei quali esegue il sistema operativo Sistema Linux e può connettersi a cablato o rete senza fili. Il secondo processore svolge le stesse funzioni del processore del modulo Arduino Leonardo. Pertanto, fornisce una buona compatibilità con le librerie e l'hardware Arduino.

Questo progetto utilizza un LED a infrarossi e un ricevitore per inviare e ricevere segnali di controllo remoto. La luce infrarossa è invisibile all’occhio umano, ma viene facilmente rilevata dai sensori elettronici. Per una trasmissione del segnale più affidabile, i dispositivi utilizzano la luce infrarossa modulata, che elimina la possibilità di ricevere falsi segnali. Il ricevitore a infrarossi è piccolo dispositivo, che riceve segnali infrarossi modulati ad una frequenza specifica, tipicamente 38 kHz. Utilizzando questo ricevitore, il modulo Arduino determina i bit di informazioni inviati dal pannello di controllo.

Invio di comandi al tuo centro multimediale verrà effettuato utilizzando semplice interfaccia web, che viene eseguito localmente sul modulo Yún ed è disponibile per la maggior parte dei browser Web moderni. Il sito web facilita il lavoro di gestione dispositivo a infrarossi e permette di elaborare anche più comandi contemporaneamente. Ad esempio, premendo il pulsante "Guarda film" è possibile inviare un segnale per accendere la TV, il lettore Blu-ray e collegarlo all'ingresso TV.

Questo progetto richiede una certa esperienza nell'esecuzione di schizzi di Arduino e nell'utilizzo di strumenti da riga di comando. Componenti elettronici Il progetto può essere installato su una breadboard.

Passaggio 1: collegamento dei componenti

  • Collegare il LED a infrarossi al modulo Yún facendo passare un filo dall'anodo del LED (cavo lungo) a uscita digitale 13 moduli Yún.
  • Utilizzando un resistore da 100 ohm, collegare il catodo del LED (cavo più corto) al pin di terra del sensore IR (cavo centrale del sensore).
  • Collegare il pin di rilevamento del sensore a infrarossi (il pin più a sinistra se visto dalla parte anteriore del sensore) al pin digitale 11 del modulo Yún.
  • Collegare il pin di terra del sensore a infrarossi (pin centrale) al pin di terra del modulo Yún.
  • Infine, collega il cavo di alimentazione del sensore (il pin all'estrema destra se visto dalla parte anteriore del sensore) al pin da 5 volt del modulo Yún.

Passaggio 2: installare le dipendenze del software

  • Quando inserito Scheda microSD nel modulo Yún, accendi Yún connettendoti Micro USB Cavo B al modulo Yún e Adattatore USB nutrizione.
  • Assicurati che Yún sia configurato e connesso alla tua rete wireless. La configurazione del modulo Yún è indicata in questa pagina.
  • Connettiti a riga di comando Yún usando SSH. Questo processo descritto in questa pagina.
  • Una volta connesso alla riga di comando, vedrai la versione del codice del firmware. Questo progetto testato con la versione BusyBox v1.19.4 dal 10/04/2014 e successive. Se ne usi di più vecchia versione, quindi seguire le seguenti istruzioni.
  • Al prompt dei comandi, esegui i seguenti comandi per aggiornare il gestore pacchetti:
aggiornamento opkg
  • Successivamente, installa PIP, il gestore pacchetti Python:
opkg installa distribuisci && opkg installa python-openssl && opkg installa python-expat && easy_install pip

Questo processo richiede alcuni minuti. Potresti visualizzare alcuni messaggi di avviso, ma puoi ignorarli.

  • Crea una directory sulla tua scheda SD per salvare i pacchetti Python:
mkdir /mnt/sda1/python-packages
  • Installa il framework Flask Python:
pip install --target /mnt/sda1/python-packages flask

Potresti visualizzare alcuni messaggi di avviso, ma puoi ignorarli.

  • Aggiorna il percorso di ricerca per i file del pacchetto Python:
echo "esporta PYTHONPATH=/mnt/sda1/python-packages" >> /etc/profile
  • Creare directory in cui si trova l'ambiente IDE di Arduino caricherà i file del server web:
mkdir /mnt/sda1/Arduino mkdir /mnt/sda1/arduino/www
  • Riavvia Arduino Yún per aggiornare il percorso di ricerca dei file Python.

  • Scarica la libreria IR. (Arduino IRremote, libreria creata da Ken Shirriff.)
    Decomprimere l'archivio, rinominare la cartella con Arduino_ IRremoto- maestro SU Arduino_ IRremoto e importa la cartella Arduino_IRremote come libreria nell'ambiente Sviluppo Arduino IDE. Informazioni dettagliate indicato
  • Carica il tuo schizzo Telecomando intelligente Controlla Arduino da archivio zip da qui.
    Decomprimere l'archivio e trascinare la cartella SmartRemoteControl alla cartella con Schizzo di Arduino. Apri lo schizzo nell'IDE di Arduino.
  • Compila lo sketch e caricalo sul modulo Yún tramite WiFi selezionando l'apposita opzione nell'elenco delle porte Arduino Yún. Assicurati di caricare lo schizzo tramite WiFi in modo che gli script Python richiesti vengano copiati nel modulo Yún! Dopo aver scaricato lo schizzo, apri Serial Monitor nell'IDE di Arduino (l'operazione potrebbe richiedere alcuni minuti).
  • Puntare il telecomando verso sensore a infrarossi e premere alcuni pulsanti sul telecomando. Dovresti vedere il codice sul monitor seriale. Se il codice non viene visualizzato, controllare i collegamenti del circuito del sensore.

Passaggio 4: configurare i codici di controllo remoto

  • Ora puoi configurare attività e codici di controllo remoto associandoli FileXML configurazioni. Utilizzando editor di testo, apri il file attività. xml in una sottodirectory www cartelle di sketch sul tuo PC. (Dall'IDE di Arduino, fai clic sul menu Schizzo e seleziona "Mostra cartella Schizzo").
  • Considera il formato delle operazioni di esempio nel file. Ciascun blocco operativo definisce un nome di attributo che apparirà come pulsante sulla pagina web del telecomando. All'interno di ogni operazione, il blocco di codice contiene una sequenza di codici infrarossi che devono essere eseguiti. Nell'esempio, viene eseguito prima il comando Sony A90 (accensione/spegnimento) per accendere il televisore, poi il comando Panasonic (accensione/spegnimento) per accendere il lettore Blu-ray. Ogni codice ha un parametro stringa che è l'output dati diretto del codice remoto rilevato dallo sketch Arduino.
  • Aggiungi i tuoi comandi al file copiando l'esempio e modificando nomi e codici. Quando il telecomando è puntato verso il sensore a infrarossi, premere i pulsanti e annotare attentamente la sequenza specifica del codice a infrarossi. Copia la sequenza nella configurazione del codice operativo.
  • Non appena ricevi file richiesto configurazione, salva il file e ricarica lo schizzo sul modulo Yún tramite WiFi. Per aggiornare il file di configurazione, modifica il file e carica lo schizzo tramite WiFi utilizzando l'IDE Arduino.

Passaggio 5: avvio del server con un'interfaccia web

  • Per avviare il server, collega il modulo Yún tramite SSH. Per avviare il server, eseguire il comando seguente:
python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Quando il server si avvia correttamente, verrà visualizzato il messaggio:
* In esecuzione su http://0.0.0.0:5000/ * Riavvio con Reloader
  • Se viene visualizzato un errore, controlla tutte le dipendenze installate nei passaggi precedenti.
  • Nel tuo browser web, inserisci http://arduino.local:5000/. Se il browser non supporta l'URL mDNS (come Windows, Android e alcuni Distribuzioni Linux) inserisci http:// arduino_ ip_ indirizzo:5000/, dove arduino_ ip_ indirizzoè l'indirizzo IP del tuo Arduino Yún. L'indirizzo IP si trova nella parte inferiore dell'IDE di Arduino quando si collega Yún (Figura 2).
  • Una volta caricata la pagina, vedrai un elenco di azioni dei pulsanti configurate. Se vedi un errore, controlla che le dipendenze siano installate correttamente, lo schizzo sia caricato e che il server funzioni senza errori.
  • Per arrestare il server, fare clic su combinazione Ctrl-C nella finestra di comando in cui è stato avviato il server.

Passaggio n. 6: utilizzo dell'interfaccia Web

  • Da usare telecomando intelligente puntare il LED dispositivi elettronici e fare clic su uno di pulsanti attivi. Se il dispositivo richiesto non si accende, provare ad avvicinare il LED ai dispositivi richiesti. La gamma dei LED è piccola, circa 6 piedi. È necessario aggiungere un transistor per aumentare la portata del LED. Vengono fornite informazioni dettagliate Qui.
  • Puoi anche testare i codici a infrarossi aprendo Yún Serial Monitor nell'IDE di Arduino e inviando il codice a infrarossi come comando. Ad esempio, l'invio del codice "SONY: C A90" (senza virgolette) farà sì che l'hardware invii un comando a accendendo Sony A90. ("C" rappresenta il bit della lunghezza del comando, 12, convertito in esadecimale).
  • Per avvio automatico server durante il caricamento, modificare il file / ecc/ RC. locale nel modulo Yún (usando l'editor nano o vi) e aggiungi riga successiva Prima con la riga "exit 0" alla fine:
PYTHONPATH=/mnt/sda1/pacchetti-python python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Per il riconoscimento vocale, esegui browser di Google Cromo. Fare clic sul pulsante "Parla" e Browser Chrome chiederà il permesso di utilizzare il microfono. Pronunciare quindi il nome dell'operazione attiva e attendere finché non viene riconosciuta. Ad esempio, per eseguire l'operazione "Film" sul film, premere il pulsante "Parla" e pronunciare la parola "Film" nel microfono. Frasi come "Riproduci film" o "Esegui film" non sono supportate: viene riconosciuto solo il nome chiaro dell'operazione attiva.

Ci sono molti articoli su Internet su come realizzare il telecomando della TV utilizzando Arduino, ma io avevo bisogno di un telecomando universale per controllare la TV e il lettore multimediale. Il vantaggio principale del mio telecomando universale è che i pulsanti nell'applicazione del telefono Android hanno un duplice scopo, ma guarda il video.



Il telecomando è molto comodo in quanto quasi gli stessi pulsanti sullo schermo vengono utilizzati per controllare la TV e il lettore. Una differenza è che " AV"nella modalità di controllo TV diventa un pulsante" " (stop) quando si passa alla modalità di controllo del lettore. Le immagini mostrano due modalità, a sinistra c'è la modalità di controllo TV, a destra c'è la modalità di controllo del lettore.

Bene, ora ti parlerò un po 'della creazione di un telecomando del genere. Per il dispositivo ho utilizzato il telecomando ERGO TV e il telecomando del lettore multimediale DUNE HD TV101W.

Per ricevere i dati dai telecomandi ho utilizzato un sensore a infrarossi TSOP1138 (analogo di TSOP4838) ad una frequenza operativa di 38 kHz e l'ho collegato alla scheda Arduino secondo lo schema:

Questo schizzo non sarà necessario per determinare la codifica della trasmissione dei dati e leggere il codice dei pulsanti del telecomando.

Nello schizzo nella riga int RECV_PIN = 11; indicare il nostro pin numero 4

Dopo aver caricato lo schizzo, aprire il “port monitor” e, premendo i pulsanti del telecomando, osservare i dati ricevuti.

L'immagine mostra un esempio di scansione del pulsante di accensione dal telecomando della TV e dal telecomando del lettore. Ora creiamo una tabella per i codici dei pulsanti.

L'ho preso come nella foto sopra. Sotto l'iscrizione TV Codici dei pulsanti del telecomando del televisore; sotto l'iscrizione Giocatore- codici dal telecomando del lettore multimediale.

Ora scolleghiamo il nostro ricevitore di segnali a infrarossi dalla scheda Arduino e lo colleghiamo ad essa Modulo Bluetooth HC-05 e LED infrarosso secondo lo schema in foto.

Successivamente, passiamo direttamente allo schizzo.

Schizzo

#includere IRsend irsend; int y = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // codici dei pulsanti per il telecomando del televisore if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); ritardo(40 ); ) se (x == 98) ( irsend.sendNEC(0x807FA857, 32); ritardo(40); ) se (x == 99) ( irsend.sendNEC(0x807F708F, 32); ritardo(40); ) se (x == 100) ( irsend.sendNEC(0x807FF00F, 32); ritardo(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); ritardo(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); ritardo(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); ritardo(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); ritardo(40); se (x == 105) (irsend.sendNEC(0x807FD827, 32); ritardo(40); , 32); ritardo(40); 107) ( irsend.sendNEC(0x807F48B7, 32); ritardo(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); ritardo(40); if (x == 109) ( irsend. inviaNEC(0x807F6897, 32);


ritardo(40);

) ) if (y == 2) ( //codici dei pulsanti del telecomando del lettore multimediale if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); ritardo(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); ritardo(40); if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); ritardo(40); ) if (x == 100) ( irsend.sendNEC( 0xFDE817, 32); ritardo(40); ) se (x == 101) ( irsend.sendNEC(0xFDA857, 32); ritardo(40); ) se (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; ritardo (40); ) se (x == 103) ( irsend.sendNEC(0xFDA857, 32); ritardo(40); ) se (x == 104) ( irsend.sendNEC(0xFD6897, 32); ritardo(40 ); ) se (x == 105) ( irsend.sendNEC(0xFDE817, 32); ritardo(40); ) se (x == 106) ( irsend.sendNEC(0xFD18E7, 32); ritardo(40); ) se (x == 107) ( irsend.sendNEC(0xFD9867, 32); ritardo(40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); ritardo(40); ) if (x == 109) ( irsend.sendNEC(0xFD20DF, 32); ritardo(40); ) ) ) )
Nello schizzo dovrai modificare i codici dei pulsanti, ovvero nelle righe:

Se (x == 97) ( irsend.sendNEC(0x807F08F7, 32); ritardo(40);
Modificare il valore 807F08F7 in:

If (y == 1) ( //codici dei pulsanti per il telecomando del televisore if (x == 97) ( irsend.sendNEC(0x12345678, 32); ritardo(40); ) Dove 12345678 è il codice del tuo pulsante. Dopo aver modificato lo schizzo utilizzando i codici dei pulsanti, carica lo schizzo su

Scheda Arduino Pult al telefono.

All'avvio avremo una schermata rossa icona bluetooth nell'angolo in basso a destra, che segnala che non siamo connessi al nostro dispositivo.

Successivamente, fai clic su questa icona. Dovremmo vedere una finestra con un elenco di tutti quelli disponibili dispositivi bluetooth, dove selezioniamo il nostro dispositivo per connetterci.

Ora siamo di nuovo indietro schermata iniziale e possiamo già controllare la TV:

Per passare alla modalità di controllo dobbiamo premere il pulsante etichettato "Giocatore". Come ho detto prima, il nostro pulsante etichettato "AV" cambierà in un pulsante " ":

Per disconnetterci dal nostro dispositivo è sufficiente tenere premuto il pulsante “Power” per alcuni secondi.

Bene, alcune foto del mio dispositivo finito.

È andata abbastanza bene, a quanto pare. Aspetto commenti sull'articolo.

In questa lezione vedremo come collegare un ricevitore IR ad Arduino. Ti diremo quale libreria dovrebbe essere utilizzata per il ricevitore IR e mostreremo uno schizzo per testare il funzionamento ricevitore a infrarossi dal telecomando e analizzare i comandi in C++ per ricevere un segnale. Notiamo subito che il sensore IR di Arduino non è adatto ad ogni telecomando; la frequenza del segnale può differire.

Dispositivo ricevitore IR. Principio di funzionamento

I ricevitori di radiazioni infrarosse sono ora ampiamente utilizzati in elettrodomestici, grazie a prezzo accessibile, semplicità e facilità d'uso. Questi dispositivi consentono di controllare i dispositivi utilizzando un telecomando e possono essere trovati in quasi tutti i tipi di apparecchiature. Ma nonostante ciò, il modulo Bluetooth sta gradualmente guadagnando sempre più popolarità.

Il principio di funzionamento di un ricevitore IR. Elaborazione del segnale dal telecomando

Il ricevitore IR su Arduino è in grado di ricevere ed elaborare segnale infrarosso, sotto forma di impulsi di una determinata durata e frequenza. Utilizzato nella produzione di sensori di ostacoli e telemetro per Arduino. In genere il ricevitore IR ha tre gambe ed è composto da i seguenti elementi: Fotodiodo PIN, amplificatore, filtro passa banda, rilevatore di ampiezza, filtro integratore e transistor di uscita.

Sotto l'influenza della radiazione infrarossa in un fotodiodo, che ha tra P E N regioni hanno creato un'ulteriore regione di semiconduttore ( io-regione), la corrente inizia a fluire. Il segnale va ad un amplificatore e poi ad un filtro passa banda, che è sintonizzato su una frequenza fissa: 30; 33; 36; 38; 40 e 56 kilohertz e protegge il ricevitore dalle interferenze. Qualsiasi elettrodomestico può causare interferenze.

Affinché il segnale del telecomando possa essere ricevuto dal ricevitore IR Arduino, il telecomando deve avere la stessa frequenza su cui è impostato il filtro nel ricevitore IR. Pertanto, non tutti i telecomandi funzioneranno. Dovresti selezionare un ricevitore IR e un trasmettitore IR con la stessa frequenza. Dopo il filtro, il segnale va a un rilevatore di ampiezza che integra il filtro e il transistor di uscita.

Come collegare un ricevitore IR ad Arduino

Gli alloggiamenti dei ricevitori a infrarossi contengono un filtro ottico per proteggere il dispositivo dai campi elettromagnetici esterni; sono realizzati con una forma speciale per focalizzare la radiazione ricevuta su un fotodiodo. Per collegare il ricevitore IR ad Arduino UNO vengono utilizzati tre piedini collegati a GND, 5 V e A0. Si consiglia di utilizzare inizialmente 3,3 Volt per non bruciare il sensore IR durante la configurazione.

Per questa lezione avremo bisogno dei seguenti dettagli:

  • Scheda Arduino Uno / Arduino Nano / Arduino Mega;
  • breadboard;
  • Ricevitore IR;
  • telecomando;
  • 1 LED e resistenza da 220 Ohm;
  • cavi maschio-maschio e maschio-femmina.

Schema di collegamento del ricevitore IR alla porta analogica di Arduino

Collegare il ricevitore IR secondo lo schema sopra riportato e collegare i LED ai pin 12 e 13. Prima di scaricare il programma sarà necessario installare la libreria IRremote.h, se non è già installata. Questa biblioteca non si applica alle librerie di ambiente standard Programmazione Arduino IDE. È possibile scaricare la libreria IRremote.h e lo schizzo finito in un archivio da Google Drive tramite il collegamento.

Schizzo per il ricevitore IR Arduino:

#includere // collega la libreria per il ricevitore IR IRrecv irricv(A0); // indica il pin a cui è collegato il ricevitore IR risultati decode_results; void setup () // configurazione della procedura ( irrecv.enableIRIn (); // inizia a ricevere un segnale a infrarossi pinModalità(13, USCITA); // il pin 13 sarà l'output modalità pin(12, USCITA); // il pin 12 sarà l'output modalità pin(A0, INPUT); // il pin A0 sarà l'ingresso (eng. "intput") Serial.begin(9600); // collega il monitor della porta) void loop () // procedura loop ( if (irrecv.decode (&risultati)) // se i dati sono arrivati, esegue i comandi( Seriale .println(risultati.valore); // invia i dati ricevuti alla porta // accende e spegne i LED, a seconda del segnale ricevuto if (valore.risultati == 16754775) ( digitalWrite (13, ALTO); ) if (valore.risultati == 16769055) ( digitalWrite (13, BASSO); ) if (valore.risultati == 16718055) ( digitalWrite (12, HIGH ) if (results.value == 16724175) ( digitalWrite (12, LOW ); ) irrecv.resume (); // accetta segnale successivo sul ricevitore IR } }

Spiegazioni per il codice:

  1. La libreria IRremote.h contiene una serie di comandi e permette di semplificare lo sketch;
  2. L'istruzione decode_results assegna il nome della variabile results ai segnali ricevuti dal telecomando.

Il sensore IR può essere utilizzato in molti dispositivi sul microcontrollore Arduino, incluso il controllo remoto di un servoazionamento su Arduino da un ricevitore IR. Durante la configurazione, è necessario accendere il monitor Porta Arduino IDE e scopri quale segnale viene inviato da questo o quel pulsante sul telecomando. I codici risultanti dovrebbero essere utilizzati nello schizzo dopo il doppio segno di uguale nelle condizioni if().

Inoltre leggi spesso:

Il telecomando a infrarossi è uno dei più modi semplici interazione con dispositivi elettronici. Quindi, in quasi tutte le case ci sono diversi dispositivi di questo tipo: TV, centro musicale, lettore video, aria condizionata. Ma soprattutto applicazione interessante telecomando a infrarossi - controllo remoto del robot. In realtà, in questa lezione proveremo a implementare questo metodo di controllo utilizzando il famoso controller Arduino Uno.

1. Telecomando IR

Cosa serve per insegnare a un robot a obbedire a un telecomando a infrarossi (IR)? Innanzitutto, abbiamo bisogno del telecomando stesso. Puoi utilizzare un normale telecomando TV oppure acquistare un telecomando in miniatura per l'autoradio. Questi tipi di telecomandi vengono spesso utilizzati per controllare i robot.

Questo telecomando ne ha 10 pulsanti digitali e 11 pulsanti per manipolare la musica: volume, riavvolgimento, riproduzione, arresto, ecc. Più che sufficiente per i nostri scopi.

2. Sensore IR

In secondo luogo, per ricevere un segnale dal telecomando abbiamo bisogno di uno speciale sensore IR. In generale, possiamo rilevare la radiazione infrarossa con un fotodiodo/fototransistor convenzionale, ma a differenza di esso, il nostro sensore IR percepisce il segnale infrarosso solo ad una frequenza di 38 kHz (a volte 40 kHz). È questa proprietà che consente al sensore di ignorare molti rumori luminosi estranei provenienti dalle lampade di illuminazione e dal sole.

Per questo tutorial utilizzeremo il popolare sensore IR VS1838B, che ha le seguenti caratteristiche:

  • frequenza portante: 38 kHz;
  • tensione di alimentazione: 2,7 - 5,5 V;
  • consumo di corrente: 50 µA.

È possibile utilizzare altri sensori, ad esempio: TSOP4838, TSOP1736, SFH506.

3. Connessione

Il sensore ha tre cavi (tre gambe). Se si osserva il sensore dal lato ricevitore del segnale IR, come mostrato in figura,

  • poi a sinistra ci sarà un'uscita per il controller,
  • al centro - contatto di potenza negativo (terra),
  • e a destra - il contatto di alimentazione positivo (2,7 - 5,5 V).

Diagramma schematico di connessione

Aspetto del layout

4. Programma

Dopo aver collegato il sensore IR, scriveremo un programma per Arduino Uno. Per questo useremo libreria standard IRremoto, progettato specificamente per semplificare il lavoro con la ricezione e la trasmissione di segnali IR. Utilizzando questa libreria, riceveremo i comandi dal telecomando e, per cominciare, li visualizzeremo semplicemente nella finestra del monitor della porta seriale. Questo programma ci sarà utile per capire quale codice dà ciascun pulsante.

#include "IRremote.h" IRrecv irrecv(2); // indica il pin a cui è collegato il ricevitore decode_results results; void setup() ( Serial.begin(9600); // imposta la velocità della porta COM irrecv.enableIRIn(); // inizia a ricevere ) void loop() ( if (irrecv.decode(&results)) ( // if dati arrivati ​​Serial .println(results.value, HEX); // stampa i dati irrecv.resume( // accetta il seguente comando) )

Carica il programma su Arduino. Successivamente, proviamo a ricevere comandi dal telecomando. Apri il monitor della porta seriale (Ctrl+Shift+M), prendi il telecomando e puntalo verso il sensore. Premendo diversi pulsanti, osserviamo i codici corrispondenti a questi pulsanti nella finestra del monitor.

Problema durante il caricamento del programma

In alcuni casi, quando si tenta di caricare un programma nel controller, potrebbe apparire un errore:

TDK2 non è stato dichiarato nel suo ambito

Per risolverlo, basta eliminare due file dalla cartella della libreria. Andiamo all'esploratore. Vai alla cartella in cui è installata l'applicazione IDE Arduino (molto probabilmente “C:\Program Files (x86)\Arduino”). Quindi nella cartella della libreria:

…\Arduino\librerie\RobotIRremote

Ed elimina i file: IRremoteTools.cpp E IRremoteTools.h. Quindi riavviamo l'IDE di Arduino e proviamo a caricare nuovamente il programma sul controller.

5. Controlla il LED utilizzando il telecomando IR

Ora che sappiamo quali codici corrispondono ai pulsanti del telecomando, proviamo a programmare il controller in modo che si accenda e spenga il LED quando vengono premuti i pulsanti del volume. Per fare ciò abbiamo bisogno dei codici (possono variare a seconda del telecomando):

  • FFA857 - aumenta il volume;
  • FFE01F - diminuzione del volume.

Come LED utilizziamo il LED integrato sul pin n. 13, quindi lo schema di collegamento rimarrà lo stesso. Quindi, il programma:

#include "IRremote.h" IRrecv irrecv(2); // indica il pin a cui è collegato il ricevitore decode_results results; void setup() ( irrecv.enableIRIn(); // inizia a ricevere ) void loop() ( if (irrecv.decode(&results)) ( // se i dati sono arrivati ​​switch (results.value) ( ​​case 0xFFA857: digitalWrite( 13, ALTO); break; caso 0xFFE01F: digitalWrite(13, LOW); irrecv.resume();

Lo carichiamo su Arduino e lo testiamo. Clic vol+— il LED si accende. Clic vol-- esce. Ora, sapendo come funziona, puoi controllare i motori dei robot o altri dispositivi microelettronici fatti in casa invece del LED!

Ricevitore IR e telecomando a infrarossi telecomando: il metodo di controllo più comune e più semplice apparecchiature elettroniche. Lo spettro della radiazione infrarossa non è visibile all'occhio umano, ma viene perfettamente ricevuto dai ricevitori IR integrati dispositivi elettronici. Moduli Arduino il telecomando IR viene utilizzato per il controllo varie tecniche in linea di vista.

L'uso diffuso degli emettitori IR è diventato possibile grazie al loro basso costo, semplicità e facilità d'uso. La radiazione IR è compresa tra 750 e 1000 micron: questa è la parte dello spettro più vicina alla luce visibile. Nella regione della radiazione infrarossa, le proprietà ottiche possono cambiare vari materiali. Alcuni vetri, ad esempio, diventano opachi ai raggi IR, mentre la paraffina, al contrario, risulta trasparente nello spettro IR.

La radiazione viene registrata utilizzando materiali fotografici speciali, sulla base dei quali vengono realizzati i ricevitori. Oltre ai corpi riscaldati (sole, lampade a incandescenza o candele), la fonte di radiazione infrarossa può essere costituita da dispositivi a stato solido: LED IR, laser. Le radiazioni nella gamma degli infrarossi hanno una serie di caratteristiche che le rendono comode da usare nei telecomandi:

  • Gli emettitori a stato solido (LED IR) sono economici e compatti.
  • I raggi infrarossi non vengono percepiti o rilevati dall'occhio umano.
  • Anche i ricevitori IR sono economici e di piccole dimensioni.
  • Bassa interferenza poiché il trasmettitore e il ricevitore sono sintonizzati sulla stessa frequenza.
  • Assente influenza negativa sulla salute umana.
  • Alta riflettanza dalla maggior parte dei materiali.
  • Gli emettitori IR non influenzano il funzionamento di altri dispositivi.

Il telecomando funziona come segue. Quando si preme il pulsante, il segnale viene codificato in luce infrarossa, il ricevitore lo riceve ed esegue l'azione richiesta. Le informazioni sono codificate come una sequenza logica di pacchetti di impulsi con una determinata frequenza. Il ricevitore riceve questa sequenza e demodula i dati. Per ricevere un segnale viene utilizzato un microcircuito che contiene un fotorilevatore (fotodiodo), amplificatori, un filtro passa banda, un demodulatore (un rilevatore che consente di isolare l'inviluppo del segnale) e un transistor di uscita. Dispone anche di filtri: elettrici e ottici. Tali dispositivi funzionano a una distanza massima di 40 metri. Il metodo IR di trasmissione dei dati esiste in molti dispositivi: elettrodomestici, in apparecchiature industriali, computer, linee in fibra ottica.

Ricevitore IR Arduino

Per leggere il segnale IR avrai bisogno della scheda Arduino stessa, di una breadboard, di un ricevitore di segnale IR e di ponticelli. Esistono numerosi ricevitori diversi, ma è meglio utilizzare TSOP312 o altri adatti ad Arduino. I dati dal telecomando al ricevitore possono essere trasmessi tramite il protocollo RC5 o NEC.

Per determinare quale gamba appartiene a cosa, è necessario guardare il sensore dal lato del ricevitore. Quindi sul ricevitore il contatto centrale è a massa, a sinistra c'è l'uscita al microcontrollore, a destra c'è l'alimentazione.

Per comodità, è possibile utilizzare moduli ricevitori IR già pronti.

Collegare il ricevitore IR ad Arduino

Le uscite del ricevitore IR sono collegate ad Arduino a GND, 5V e ingresso digitale. Di seguito è mostrato lo schema per collegare il sensore all'undicesimo pin digitale.

Ecco come appare il circuito con il modulo ricevitore a infrarossi:


Librerie per lavorare con IR

Per lavorare con i dispositivi IR, è possibile utilizzare la libreria IRremote, che semplifica la costruzione dei sistemi di controllo. È possibile scaricare la libreria. Dopo il download, copia i file nella cartella \arduino\libraries. Per connetterti al tuo schizzo, devi aggiungere librerie file di intestazione#includere .

Per leggere le informazioni, utilizzare l'esempio IRrecvDumpV2 dalla libreria. Se il telecomando esiste già nell'elenco di quelli riconosciuti, non è necessaria la scansione. Per leggere i codici è necessario eseguire Ambiente Arduino IDE e apri l'esempio IRrecvDemo da IRremote.

Esiste una seconda libreria per lavorare con i segnali IR: IRLib. È simile nella funzionalità al precedente. Rispetto a IRremote, IRLib ha un esempio per determinare la frequenza di un sensore IR. Ma la prima libreria è più semplice e comoda da usare.

Dopo aver caricato la libreria, puoi iniziare a leggere i segnali ricevuti. A questo scopo viene utilizzato il seguente codice.

L'operatore decode_results è necessario per assegnare il nome della variabile results al segnale ricevuto.

Nel codice è necessario riscrivere "HEX" in "DEC".

Quindi, dopo aver caricato il programma, è necessario aprire il monitor seriale e premere i pulsanti sul telecomando. apparirà sullo schermo vari codici. È necessario prendere nota indicando a quale pulsante corrisponde il codice ricevuto. È più conveniente registrare i dati ottenuti in una tabella. Questo codice può quindi essere scritto nel programma in modo che il dispositivo possa essere controllato. I codici vengono scritti nella memoria della stessa scheda EEPROM di Arduino, il che è molto comodo poiché non è necessario programmare i pulsanti ogni volta che si accende il telecomando.

Succede che durante il caricamento di un programma venga visualizzato l'errore "TDK2 non è stato dichiarato nel suo ambito". Per risolvere il problema è necessario andare su Explorer, recarsi nella cartella in cui è installata l'applicazione IDE Arduino ed eliminare i file IRremoteTools.cpp e IRremoteTools.h. Successivamente è necessario ricaricare il programma sul microcontrollore.

Conclusione

L'uso del telecomando IR di Arduino semplifica la vita all'utente. Può fungere da telecomando telefono cellulare, tablet o computer: tutto ciò di cui hai bisogno è software speciale. Usando Arduino puoi centralizzare tutto il controllo. Con un pulsante sul telecomando puoi eseguire più azioni contemporaneamente, ad esempio accendere la TV e il Blu-Ray contemporaneamente.

I migliori articoli sull'argomento