Cuprins:

Transmițător și receptor infraroșu USB NEC: 4 pași (cu imagini)
Transmițător și receptor infraroșu USB NEC: 4 pași (cu imagini)

Video: Transmițător și receptor infraroșu USB NEC: 4 pași (cu imagini)

Video: Transmițător și receptor infraroșu USB NEC: 4 pași (cu imagini)
Video: CS50 Live, Episode 009 2024, Iunie
Anonim
Transmițător și receptor infraroșu USB NEC
Transmițător și receptor infraroșu USB NEC

Acest proiect este un spin-off al unui alt proiect la care lucrez și, deoarece există un concurs Remote Control 2017 pe Instructables, am crezut că postez acest proiect. Deci, dacă vă place acest proiect, vă rugăm să îl votați. Mulțumiri.

După cum știți, sunt un mare fan al controlerelor PIC pe 8 biți Microchip, consultați:

Folosesc limbajul de programare JAL, deoarece arată ca Pascal (ceea ce îmi place și eu). Compilatorul JAL și bibliotecile pot fi descărcate de pe: https://www.justanotherlanguage.org/downloads (derulați în jos pentru cea mai recentă versiune lansată).

În mod normal, eu însumi scriu tot codul ca să înțeleg complet ceea ce fac, dar pentru acest proiect am avut nevoie să conectez PIC la portul USB al computerului și așa că am nevoie de un driver serial USB JAL pentru acest controler PIC. Am folosit driverul serial USB în pachetul de descărcare JAL care pare să funcționeze bine. Deoarece acest driver serial USB a fost scris pentru un PIC specific, am folosit acel PIC care este PIC18F14K50. Acest controler are mult mai multe funcționalități decât am nevoie pentru acest proiect, așa că sunt în prezent în curs de obținere a acestui driver USB pe o versiune PIC mai simplă, PIC16F1455, care este și mai ieftină.

Deci, despre ce este acest proiect? Cu dispozitivul menționat în aceste Instrucțiuni puteți trimite și primi comenzi de la distanță cu infraroșu de la și către computerul dvs. prin portul USB utilizând popularul protocol NEC Infra-Red. În acest fel puteți monitoriza comenzile infraroșii și puteți controla orice dispozitiv care utilizează protocolul NEC Infra-Red Remote Control. Proiectul decodează și traduce mesajele Infra-Red într-un octet de adresă și un octet de comandă sau într-un mesaj repetat. Adresa este - desigur - utilizată pentru a se adresa unui anumit dispozitiv, cum ar fi un televizor sau un radio, unde octetul de comandă indică funcția care trebuie efectuată, cum ar fi creșterea volumului, reducerea volumului. Pe lângă decodarea acestor mesaje, acestea pot fi transmise și prin Infra-Red folosind acest dispozitiv.

Pasul 1: Câteva informații despre protocolul infraroșu NEC

Câteva informații despre protocolul infraroșu NEC
Câteva informații despre protocolul infraroșu NEC

O scurtă introducere a acestui protocol. Protocolul NEC Infra Red Remote Control este utilizat în multe dispozitive și telecomenzi pe care le puteți cumpăra. Modulează un semnal infraroșu pe un purtător de 38 kHz și folosește codificarea distanței pulsului pentru codificarea unui „1” logic și a unui „0” logic. Protocolul folosește o verificare simplă pentru a vedea dacă mesajul este OK, trimițând atât adresa, cât și octetul de comandă, precum și o versiune inversată a ambelor în același mesaj și verificând dacă acestea sunt aceleași după recepție. Când este apăsat un buton pe telecomandă, acesta trimite un mesaj complet cu infraroșu complet, cu adresă și comandă o dată. Menținerea butonului apăsat va duce la trimiterea unui mesaj de repetare mai scurt, fără informații despre adresă și comandă. Timpul de repetare a mesajelor transmise în timp ce țineți apăsat butonul este fix.

Mai multe informații despre protocolul NEC Infra Red pot fi găsite, de exemplu, pe:

Pasul 2: Componente necesare

Componente necesare
Componente necesare
Componente necesare
Componente necesare

Trebuie să aveți următoarele componente pentru acest proiect:

  • Microcontroler PIC PIC18F14K50, vezi:
  • Cristal 12 MHz
  • Condensator ceramic: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Condensator electrolitic 47 uF / 16V
  • Receptor infraroșu TSOP4838, consultați:
  • Rezistoare: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LED-uri: 2 * infraroșu roșu, 1 chihlimbar, 1 verde, 1 roșu
  • Tranzistor BC640, vezi:
  • Jumper (opțional)
  • Conector USB

Consultați schema schematică despre cum să conectați componentele. Am folosit o panou pentru acest proiect așa cum puteți vedea în imagine și în videoclip. Circuitul își obține puterea de la portul USB al computerului.

Pasul 3: Software-ul și funcționarea dispozitivului

După cum sa menționat deja, software-ul este scris pentru un PIC18F14K50. A fost scris în JAL. Fișierul Intel Hex pentru programarea PIC este atașat. Software-ul îndeplinește următoarele funcții:

  • Decodarea mesajelor NEC Infra-Red și trimiterea la computer prin USB. Mesajul este decodat din fluxul de biți generat de receptorul infraroșu și tradus într-o adresă + mesaj de comandă sau un mesaj de repetare.
  • Trimiterea mesajelor NEC Infra Red primite de la PC prin USB. Rețineți că software-ul creează, de asemenea, frecvența purtătorului de 38 kHz care acționează direct LED-urile infraroșii. În paralel cu LED-ul infraroșu, este conectat un LED chihlimbar pentru a face vizibilă transmisia unui mesaj.

În mod implicit, acest circuit va dezactiva receptorul infraroșu în timpul transmiterii unui mesaj infraroșu. Dacă un jumper este plasat în poziția „Unmute”, acesta va dezactiva această funcție de mut. În acest caz, mesajul Infra-Red transmis va fi, de asemenea, decodat în paralel cu transmisia și după recepția completă, este trimis ca un mesaj Infra-Red primit la computer. Dacă este primit un mesaj NEC Infra-Red valid, LED-ul roșu „IR OK” se va aprinde.

Pentru a utiliza acest dispozitiv, trebuie să aveți un program Terminal Emulator pe computer. Am folosit „Termite” în acest scop. Când dispozitivul este conectat la computer, acesta va fi recunoscut automat ca un port COM suplimentar de Windows 10, deoarece se pare că există un driver Microchip pentru acest dispozitiv în Windows 10 preinstalat. Setarea pentru acest port COM ar trebui să fie: 19200 baud 8 biți, 1 bit de oprire, fără paritate și folosind controlul fluxului RTS / CTS. Rata de transmisie poate fi setată la orice altă valoare, dacă este necesar, astfel încât să funcționeze și o rată de transmisie de 115200. Odată ce dispozitivul este configurat prin portul USB prin conectarea la acesta prin intermediul programului Terminal Emulator, LED-ul verde ‘Configurat’ se va aprinde.

Primirea mesajelor infraroșii

Când se primește un mesaj infraroșu, în programul Terminal Emulator vor fi afișate următoarele:

  • „A: xx C: xx” în cazul unui mesaj complet, unde xx este numărul hexazecimal al adresei (A) și al comenzii (C). Valorile pentru ambele pot varia de la 0x00 (0) la 0xFF (255).
  • „Repetați” în cazul unui mesaj repetat.

Trimiterea de mesaje infraroșii

Pentru aceasta, trebuia să definesc un protocol care să spună dispozitivului ce să facă. Deoarece folosim un Terminal Emulator, am folosit caractere ASCII pentru a defini un mesaj. Protocolul pentru trimiterea unei comenzi către dispozitiv utilizează următorul format: „! AACCRR #”, unde (toate caracterele nu disting majuscule și minuscule):

  • „!” Indică începutul mesajului.
  • „AA” este valoarea adresei în notație hexazecimală, deci „0” la „9” și „A” la „F”,
  • „CC” este valoarea comenzii în notație hexazecimală, deci „0” la „9” și „A” la „F”
  • „RR” este numărul de mesaje repetate care trebuie transmise în notație hexazecimală, deci „0” la „9” și „A” la „F”. O valoare „00” înseamnă că nu este trimis niciun mesaj repetat.

Un exemplu de mesaj cu adresa 0x07, comanda 0x05 și 3 repetări ar trebui să fie apoi tastat după cum urmează în programul Terminal Emulator:! 070503 #

Dispozitivul are răspunsuri diferite după ce o comandă este trimisă de pe computer:

  • „Y” înseamnă că a fost transmis un mesaj. Rețineți că acest răspuns este dat după ce toate mesajele - inclusiv toate repetările - sunt transmise, deci este posibil să dureze ceva timp până când acest răspuns este dat atunci când trebuie transmise multe mesaje repetate.
  • „N” înseamnă că a existat un caracter ilegal în mesajul trimis către computer.
  • „B” înseamnă că o transmisie cu infraroșu era încă ocupată când a fost dată comanda.
  • ?”Înseamnă că dispozitivul se aștepta la„!”, Dar a primit altceva.

Pasul 4:

Am făcut un scurt videoclip al dispozitivului în acțiune. Pentru acest videoclip am folosit o lampă LED comercială cu telecomandă pentru a vedea că funcționează atât transmisia, cât și recepția. Videoclipul arată următoarele:

  • Configurarea dispozitivului USB din programul Terminal Emulation. Când dispozitivul este configurat, acesta răspunde cu mesajul „USB NEC Infra Red Transmitter and Receiver”. Pe dispozitiv se aprinde LED-ul verde care arată că dispozitivul a fost configurat de PC.
  • Lampa este aprinsă cu telecomanda. Pentru aceasta, telecomanda utilizează adresa 0x00 și comanda 0x07, care este decodată de dispozitiv și afișată pe computer.
  • Lampa se stinge cu telecomanda. Pentru aceasta, telecomanda utilizează adresa 0x00 și comanda 0x06, care este decodată de dispozitiv și afișată pe computer.
  • Lampa se aprinde tastând aceeași comandă de telecomandă de pe computer cu o valoare de repetare 0 (fără repetare) deci tastând „! 000700 #”. Lampa se aprinde.
  • Schimbarea culorii lămpii în albastru folosind adresa 0x00 și comanda 0x0A și folosind repetările 0x30. Ledul Amber, care este conectat în paralel cu LED-urile Infra Red, clipește, arătând transmiterea mesajului de repetare prin Infra Red. Mesajul tastat este „! 000A30 #”.

Rețineți că în timpul înregistrării acestui videoclip conexiunea jumper „Unmute” a fost activă, astfel încât să puteți vedea și mesajul transmis „! 000700 #”, fiind primit ca „A: 00 C: 07” în programul Terminal Emulation. În demonstrația lămpii colorate în albastru, puteți vedea, de asemenea, că LED-ul roșu este aprins atâta timp cât mesajele valide - repetate - sunt transmise, deoarece acestea sunt recepționate și decodate în paralel cu transmiterea mesajelor repetate.

Distrează-te construindu-ți propriul proiect și așteptând cu nerăbdare reacțiile tale. Nu uitați să votați acest proiect în cadrul concursului Remote Control 2017 dacă vă place. Mulțumesc din nou.

Recomandat: