Sommario:

Trasmettitore e ricevitore a infrarossi USB NEC: 4 passaggi (con immagini)
Trasmettitore e ricevitore a infrarossi USB NEC: 4 passaggi (con immagini)

Video: Trasmettitore e ricevitore a infrarossi USB NEC: 4 passaggi (con immagini)

Video: Trasmettitore e ricevitore a infrarossi USB NEC: 4 passaggi (con immagini)
Video: Ricevitore ad infrarossi (Sensori con Arduino) 2024, Settembre
Anonim
Trasmettitore e ricevitore a infrarossi USB NEC
Trasmettitore e ricevitore a infrarossi USB NEC

Questo progetto è uno spin-off di un altro progetto a cui sto lavorando e dato che c'è un concorso Remote Control 2017 su Instructables ho pensato di pubblicare questo progetto. Quindi, se ti piace questo progetto, votalo. Grazie.

Come forse saprai, sono un grande fan dei controller PIC a 8 bit Microchip, vedi:

Uso il linguaggio di programmazione JAL poiché sembra Pascal (che mi piace anche). Il compilatore JAL e le librerie possono essere scaricati da: https://www.justanotherlanguage.org/downloads (scorri verso il basso per l'ultima versione rilasciata).

Normalmente scrivo tutto il codice da solo per capire completamente cosa sto facendo, ma per questo progetto avevo bisogno di collegare il PIC alla porta USB del PC e quindi avevo bisogno di un driver seriale USB JAL per questo controller PIC. Ho usato il driver seriale USB nel pacchetto di download JAL che sembra funzionare bene. Poiché questo driver seriale USB è stato scritto per un PIC specifico, ho usato quel PIC che è il PIC18F14K50. Questo controller ha molte più funzionalità di quelle di cui ho bisogno per questo progetto, quindi sono attualmente in procinto di far funzionare questo driver USB su una versione PIC più semplice, il PIC16F1455, che è anche più economico.

Allora di cosa tratta questo progetto? Con il dispositivo menzionato in questo Instructables puoi inviare e ricevere comandi di telecomando a infrarossi da e verso il tuo PC tramite la porta USB utilizzando il popolare protocollo a infrarossi NEC. In questo modo puoi monitorare i comandi Infra-Red e puoi controllare qualsiasi dispositivo che utilizzi il protocollo NEC Infra-Red Remote Control. Il progetto decodifica e traduce i messaggi a infrarossi in un byte di indirizzo e un byte di comando o in un messaggio di ripetizione. L'indirizzo è – ovviamente – utilizzato per indirizzare un determinato dispositivo come una TV o una Radio dove il byte di comando indica la funzione che deve essere eseguita come Volume Su, Volume giù. Oltre a decodificare questi messaggi, possono anche essere trasmessi tramite infrarossi utilizzando questo dispositivo.

Passaggio 1: alcune informazioni sul protocollo a infrarossi NEC

Alcune informazioni sul protocollo a infrarossi NEC
Alcune informazioni sul protocollo a infrarossi NEC

Una breve introduzione a questo protocollo. Il protocollo NEC Infra Red Remote Control è utilizzato in molti dispositivi e telecomandi che puoi acquistare. Modula un segnale a infrarossi su una portante di 38 kHz e utilizza la codifica della distanza di impulso per codificare un "1" logico e uno "0" logico. Il protocollo utilizza un semplice controllo per vedere se il messaggio è OK inviando sia l'indirizzo che il byte di comando e una versione invertita di entrambi nello stesso messaggio e controllando se sono gli stessi dopo la ricezione. Quando viene premuto un pulsante sul telecomando, invia un messaggio a infrarossi completo con indirizzo e comando una volta. Tenendo premuto il pulsante si otterrà l'invio di un messaggio di ripetizione più breve senza indirizzo e informazioni sul comando. Il tempo di ripetizione dei messaggi trasmessi mantenendo premuto il pulsante è fisso.

Ulteriori informazioni sul protocollo NEC Infra Red possono essere trovate ad esempio su:

Passaggio 2: componenti richiesti

Componenti richiesti
Componenti richiesti
Componenti richiesti
Componenti richiesti

È necessario disporre dei seguenti componenti per questo progetto:

  • Microcontrollore PIC PIC18F14K50, vedere:
  • Cristallo 12 MHz
  • Condensatore ceramico: 2 * 100 nF, 1 * 220 nF, 2 * 18 pF
  • Condensatore elettrolitico 47 uF/16V
  • Ricevitore a infrarossi TSOP4838, vedere:
  • Resistori: 2*33k, 1*4k7, 1*1k, 3*330 Ohm, 1*22 Ohm
  • LED: 2 * Infrarossi, 1 Ambra, 1 Verde, 1 Rosso
  • Transistor BC640, vedere:
  • Ponticello (opzionale)
  • Connettore USB

Vedere il diagramma schematico su come collegare i componenti. Ho utilizzato una breadboard per questo progetto come potete vedere nella foto e nel video. Il circuito prende l'alimentazione dalla porta USB del PC.

Passaggio 3: il software e il funzionamento del dispositivo

Come già accennato, il software è scritto per un PIC18F14K50. Era scritto in JAL. Il file Intel Hex per la programmazione del tuo PIC è allegato. Il software svolge le seguenti funzioni:

  • Decodifica i messaggi NEC Infra-Red e invialo al PC tramite USB. Il messaggio viene decodificato dal flusso di bit generato dal ricevitore a infrarossi e tradotto in un messaggio di indirizzo + comando o in un messaggio di ripetizione.
  • Invio di messaggi NEC Infra Red ricevuti dal PC tramite USB. Si noti che il software crea anche la frequenza portante di 38 kHz che pilota direttamente i LED a infrarossi. In parallelo al LED Infrarossi è collegato un LED Ambra per rendere visibile la trasmissione di un messaggio.

Per impostazione predefinita, questo circuito silenzia il ricevitore a infrarossi durante la trasmissione di un messaggio a infrarossi. Se un ponticello è posizionato sulla posizione 'Unmute', disabiliterà questa funzione di silenziamento. In tal caso anche il messaggio Infrarossi trasmesso verrà decodificato parallelamente alla trasmissione e dopo la completa ricezione viene inviato come messaggio Infrarosso ricevuto al PC. Se viene ricevuto un messaggio a infrarossi NEC valido, il LED rosso "IR OK" si accende.

Per far funzionare questo dispositivo è necessario disporre di un programma Terminal Emulator sul PC. Ho usato "Termite" per questo scopo. Quando il dispositivo è connesso al PC, verrà riconosciuto automaticamente come porta COM aggiuntiva da Windows 10 poiché sembra che ci sia un driver Microchip per questo dispositivo in Windows 10 preinstallato. L'impostazione per questa porta COM dovrebbe essere: 19200 baud 8 bit, 1 bit di stop, nessuna parità e utilizzo del controllo di flusso RTS/CTS. La velocità di trasmissione può essere impostata su qualsiasi altro valore, se necessario, quindi funzionerà anche una velocità di trasmissione di 115200. Una volta che il dispositivo è configurato tramite la porta USB collegandosi ad esso tramite il programma Terminal Emulator, il LED verde "Configurato" si accenderà.

Ricezione di messaggi a infrarossi

Quando viene ricevuto un messaggio a infrarossi, nel programma Terminal Emulator verrà visualizzato quanto segue:

  • ‘A:xx C:xx’ in caso di messaggio completo, dove xx è il numero esadecimale dell'indirizzo (A) e del comando (C). I valori per entrambi possono variare da 0x00 (0) a 0xFF (255).
  • "Ripeti" in caso di messaggio ripetuto.

Invio di messaggi a infrarossi

Per questo avevo bisogno di definire un protocollo che dicesse al dispositivo cosa fare. Poiché utilizziamo un emulatore di terminale, ho utilizzato i caratteri ASCII per definire un messaggio. Il protocollo per inviare un comando al dispositivo utilizza il seguente formato: '!AACCRR#', dove (tutti i caratteri non fanno distinzione tra maiuscole e minuscole):

  • '!' indica l'inizio del messaggio.
  • "AA" è il valore dell'indirizzo in notazione esadecimale, quindi da "0" a "9" e da "A" a "F",
  • "CC" è il valore del comando in notazione esadecimale, quindi da "0" a "9" e da "A" a "F"
  • "RR" è il numero di messaggi ripetuti che devono essere trasmessi in notazione esadecimale, quindi da "0" a "9" e da "A" a "F". Un valore di "00" significa che non viene inviato alcun messaggio ripetuto.

Un esempio di messaggio con indirizzo 0x07, comando 0x05 e 3 ripetizioni dovrebbe quindi essere digitato come segue nel programma Terminal Emulator: !070503#

Il dispositivo ha risposte diverse dopo l'invio di un comando dal PC:

  • "Y" significa che è stato trasmesso un messaggio. Nota che questa risposta viene data dopo che tutti i messaggi, incluse tutte le ripetizioni, sono stati trasmessi, quindi potrebbe volerci del tempo prima che questa risposta venga data quando è necessario trasmettere molti messaggi ripetuti.
  • 'N' significa che c'era un carattere illegale nel messaggio inviato al PC.
  • 'B' significa che una trasmissione a infrarossi era ancora occupata quando è stato dato il comando.
  • ?' significa che il dispositivo si aspettava '!' ma ha ricevuto qualcos'altro.

Passaggio 4:

Ho realizzato un breve video del dispositivo in azione. Per questo video ho usato una lampada a LED commerciale con il suo telecomando per vedere che sia la trasmissione che la ricezione funzionano. Il video mostra quanto segue:

  • Configurazione del dispositivo USB dal programma Terminal Emulation. Quando il dispositivo è configurato risponde con il messaggio "USB NEC Infra Red Transmitter and Receiver". Sul dispositivo il LED verde è acceso indicando che il dispositivo è stato configurato dal PC.
  • La lampada si accende con il telecomando. Per questo il Controllo Remoto utilizza l'indirizzo 0x00 e il comando 0x07 che viene decodificato dal dispositivo e visualizzato sul PC.
  • La lampada si spegne con il telecomando. Per questo il Controllo Remoto utilizza l'indirizzo 0x00 e il comando 0x06 che viene decodificato dal dispositivo e mostrato sul PC.
  • La lampada si accende digitando lo stesso comando di Telecomando sul PC con un valore di ripetizione pari a 0 (nessuna ripetizione) quindi digitando '!000700#'. La lampada si accende.
  • Modificare il colore della lampada in blu utilizzando l'indirizzo 0x00 e il comando 0x0A e utilizzando 0x30 ripetizioni. Il Led Ambra, che è collegato in parallelo ai LED Infrarossi, lampeggia indicando la trasmissione del messaggio di ripetizione tramite Infrarossi. Il messaggio digitato è "!000A30#".

Si noti che durante la registrazione di questo video era attivo il collegamento jumper "Unmute" in modo da poter vedere anche il messaggio trasmesso "!000700#", ricevuto come "A:00 C:07" sul programma di emulazione terminale. Nella demo della lampada che si colora di blu si può anche vedere che il LED Rosso è acceso fintanto che vengono trasmessi i messaggi validi – ripetuti poiché vengono ricevuti e decodificati parallelamente alla trasmissione dei messaggi ripetuti.

Divertiti a costruire il tuo progetto e attendo con ansia le tue reazioni. Non dimenticare di votare per questo progetto nel concorso Remote Control 2017 se ti piace. Grazie ancora.

Consigliato: