Sadržaj:

Infracrveni odašiljač i prijemnik USB NEC: 4 koraka (sa slikama)
Infracrveni odašiljač i prijemnik USB NEC: 4 koraka (sa slikama)

Video: Infracrveni odašiljač i prijemnik USB NEC: 4 koraka (sa slikama)

Video: Infracrveni odašiljač i prijemnik USB NEC: 4 koraka (sa slikama)
Video: CS50 Live, серия 009 2024, Rujan
Anonim
Infracrveni odašiljač i prijemnik USB NEC
Infracrveni odašiljač i prijemnik USB NEC

Ovaj projekt je spin-off drugog projekta na kojem radim, a budući da postoji natječaj za daljinsko upravljanje 2017. na Instructables, mislio sam da objavljujem ovaj projekt. Dakle, ako vam se sviđa ovaj projekt, molimo vas da glasate za njega. Hvala.

Kao što možda znate, veliki sam ljubitelj 8-bitnih PIC kontrolera Microchip, pogledajte:

Koristim programski jezik JAL jer izgleda kao Pascal (koji se meni također sviđa). JAL prevoditelj i knjižnice mogu se preuzeti s: https://www.justanotherlanguage.org/downloads (pomaknite se prema dolje za najnoviju objavljenu verziju).

Obično sam pišem sav kôd kako bih potpuno razumio što radim, ali za ovaj projekt morao sam spojiti PIC na USB priključak računala pa mi je trebao JAL USB serijski upravljački program za ovaj PIC kontroler. Koristio sam USB serijski upravljački program u JAL paketu za preuzimanje koji izgleda dobro radi. Budući da je ovaj USB serijski upravljački program napisan za jedan određeni PIC, koristio sam taj PIC koji je PIC18F14K50. Ovaj kontroler ima mnogo više funkcionalnosti nego što mi je potrebno za ovaj projekt, pa sam trenutno u tijeku da ovaj USB upravljački program radi na jednostavnijoj verziji PIC -a, PIC16F1455, koja je također jeftinija.

Dakle, o čemu se radi u ovom projektu? S uređajem spomenutim u ovim uputama možete slati i primati naredbe daljinskog upravljača s infracrvenim daljinskim upravljačem sa i na vaše računalo putem USB priključka koristeći popularni NEC Infra-Red protokol. Na taj način možete nadzirati Infra-Red naredbe i možete kontrolirati bilo koji uređaj koji koristi NEC Infra-Red protokol daljinskog upravljanja. Projekt dekodira i prevodi infracrvene poruke u bajt adrese i naredbeni bajt ili u ponovljenu poruku. Adresa se - naravno - koristi za adresiranje određenog uređaja poput televizora ili radija gdje naredbeni bajt označava funkciju koju je potrebno izvesti poput pojačavanja, smanjivanja glasnoće. Uz dekodiranje ovih poruka, one se također mogu prenijeti putem infracrvene boje pomoću ovog uređaja.

Korak 1: Nekoliko informacija o NEC-ovom infracrvenom protokolu

Nekoliko informacija o NEC-ovom infracrvenom protokolu
Nekoliko informacija o NEC-ovom infracrvenom protokolu

Kratak uvod u ovaj protokol. NEC Infra Red protokol daljinskog upravljača koristi se u mnogim uređajima i daljinskim upravljačima koje možete kupiti. On modulira infracrveni signal na nositelju od 38 kHz i koristi kodiranje udaljenosti impulsa za kodiranje logičkog '1' i logičkog '0'. Protokol koristi jednostavnu provjeru da li je poruka u redu slanjem adrese i naredbenog bajta te obrnute verzije oba u jednoj te istoj poruci i provjerom jesu li iste nakon prijema. Kada pritisnete gumb na daljinskom upravljaču, on jednom šalje potpunu infracrvenu poruku s adresom i naredbom. Držanjem gumba pritisnutim poslat ćete kraću ponovljenu poruku bez adrese i naredbe. Vrijeme ponavljanja poslanih poruka uz zadržavanje pritisnute tipke je fiksno.

Više informacija o protokolu NEC Infra Red može se, na primjer, naći na:

Korak 2: Potrebne komponente

Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente

Za ovaj projekt trebate imati sljedeće komponente:

  • PIC mikrokontroler PIC18F14K50, vidi:
  • Kristal 12 MHz
  • Keramički kondenzator: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolitički kondenzator 47 uF/16V
  • Infracrveni prijemnik TSOP4838, pogledajte:
  • Otpornici: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LED diode: 2 * infracrvena, 1 narančasta, 1 zelena, 1 crvena
  • Tranzistor BC640, vidi:
  • Džemper (opcionalno)
  • USB priključak

Pogledajte shematski dijagram kako spojiti komponente. Koristio sam ploču za ovaj projekt kao što možete vidjeti na slici i u videu. Krug se napaja iz USB priključka računala.

Korak 3: Softver i rad uređaja

Kao što je već spomenuto, softver je napisan za PIC18F14K50. Napisano je u JAL -u. Priložena je Intel Hex datoteka za programiranje vašeg PIC -a. Softver obavlja sljedeće funkcije:

  • Dekodiranje NEC infracrvenih poruka i slanje na računalo putem USB-a. Poruka se dekodira iz toka bita koji generira infracrveni prijemnik i prevodi u adresu + naredbena poruka ili ponovljena poruka.
  • Slanje NEC Infra Red poruka primljenih s računala putem USB -a. Imajte na umu da softver također stvara nosivu frekvenciju od 38 kHz koja izravno pokreće infracrvene LED diode. Paralelno s infracrvenom LED diodom spojena je žuta LED kako bi prijenos poruke bio vidljiv.

Prema zadanim postavkama ovaj će krug isključiti infracrveni prijemnik tijekom prijenosa infracrvene poruke. Ako je kratkospojnik postavljen na poziciju "Uključi zvuk", onemogućit će ovu funkciju isključivanja zvuka. U tom slučaju prenesena infracrvena poruka također će se dekodirati paralelno s prijenosom, a nakon potpunog prijema šalje se kao primljena infracrvena poruka na računalo. Ako primite valjanu NEC infracrvenu poruku, zasvijetlit će crvena LED dioda ‘IR OK’.

Da biste mogli upravljati ovim uređajem, na računalu morate imati program Terminal Emulator. U tu sam svrhu upotrijebio ‘Termite’. Kada je uređaj spojen na računalo, Windows 10 će ga automatski prepoznati kao dodatni COM port jer se čini da postoji upravljački program za mikročip za ovaj uređaj u Windows 10 unaprijed instaliran. Postavka za ovaj COM port trebala bi biti: 19200 bauda 8 bita, 1 stop-bit, bez pariteta i upotreba kontrole protoka RTS/CTS. Brzina prijenosa može se postaviti na bilo koju drugu vrijednost ako je potrebno, pa će i brzina prijenosa od 115200 također funkcionirati. Nakon što se uređaj konfigurira putem USB priključka povezivanjem na njega putem programa Terminal Emulator, zasvijetlit će zelena LED dioda ‘Konfigurirano’.

Primanje infracrvenih poruka

Kad primite infracrvenu poruku, u programu Terminal Emulator prikazat će se sljedeće:

  • "A: xx C: xx" u slučaju potpune poruke, gdje je xx heksadecimalni broj adrese (A) i naredbe (C). Vrijednosti za oboje mogu se kretati od 0x00 (0) do 0xFF (255).
  • ‘Ponovi’ u slučaju ponavljanja poruke.

Slanje infracrvenih poruka

Za to sam trebao definirati protokol koji govori uređaju što treba učiniti. Budući da koristimo Terminal Emulator, za definiranje poruke koristila sam ASCII znakove. Protokol za slanje naredbe uređaju koristi sljedeći format: '! AACCRR#', gdje (svi znakovi ne razlikuju velika i mala slova):

  • ‘!’ Označava početak poruke.
  • "AA" je vrijednost adrese u heksadecimalnom zapisu pa od "0" do "9" i "A" do "F",
  • "CC" je vrijednost naredbe u heksadecimalnom zapisu pa od "0" do "9" i "A" do "F"
  • 'RR' je broj ponavljajućih poruka koje je potrebno prenijeti u heksadecimalnom zapisu tako da '0' do '9' i 'A' do 'F'. Vrijednost '00' znači da se ne šalje ponovljena poruka.

Primjer poruke s adresom 0x07, naredbom 0x05 i 3 ponavljanja tada bi trebalo upisati na sljedeći način u programu Terminal Emulator:! 070503#

Uređaj ima različite odgovore nakon slanja naredbe s računala:

  • ‘Y’ znači da je poruka poslana. Imajte na umu da se ovaj odgovor daje nakon što se proslijede sve poruke - uključujući sva ponavljanja - pa može proći neko vrijeme prije nego što se dobije ovaj odgovor kada je potrebno prenijeti mnogo ponovljenih poruka.
  • 'N' znači da je u poruci poslanoj na računalo postojao nedopušteni znak.
  • 'B' znači da je infracrveni prijenos bio još zauzet kada je dana naredba.
  • ?’Znači da je uređaj očekivao‘!’, Ali je primio nešto drugo.

Korak 4:

Napravio sam kratki video o uređaju na djelu. Za ovaj video koristio sam komercijalnu LED svjetiljku s daljinskim upravljačem kako bih provjerio funkcioniraju li i prijenos i prijem. Video prikazuje sljedeće:

  • Konfiguriranje USB uređaja iz programa Terminal Emulation. Kad je uređaj konfiguriran, on odgovara porukom ‘USB NEC infracrveni odašiljač i prijamnik’. Na uređaju se uključuje zelena LED dioda koja pokazuje da je uređaj konfigurirano od strane računala.
  • Svjetiljka se uključuje pomoću daljinskog upravljača. Za to daljinski upravljač koristi adresu 0x00 i naredbu 0x07 koju uređaj dekodira i prikazuje na računalu.
  • Svjetiljka se isključuje pomoću daljinskog upravljača. Za to daljinski upravljač koristi adresu 0x00 i naredbu 0x06 koju uređaj dekodira i prikazuje na računalu.
  • Svjetiljka se uključuje upisivanjem iste naredbe za daljinski upravljač na računalu s vrijednošću ponavljanja 0 (bez ponavljanja) pa upisivanjem '! 000700#'. Svjetiljka se pali.
  • Promjena boje svjetiljke u plavu pomoću adrese 0x00 i naredbe 0x0A te pomoću ponavljanja 0x30. Žuta lampica, koja je spojena paralelno s infracrvenim LED diodama, treperi i prikazuje prijenos ponovljene poruke putem infracrvene boje. Upisana poruka je '! 000A30#'.

Imajte na umu da je tijekom snimanja ovog videa kratkospojna veza "Unmute" bila aktivna pa ste mogli vidjeti i prenesenu poruku "! 000700#", primljenu kao "A: 00 C: 07" u programu Terminal Emulation. U demonstraciji lampe koja je obojena u plavo također možete vidjeti da crvena LED svijetli sve dok se valjane - ponavljajuće - poruke prenose jer se primaju i dekodiraju paralelno s prijenosom ponavljajućih poruka.

Zabavite se u izgradnji vlastitog projekta i radujte se vašim reakcijama. Ne zaboravite glasovati za ovaj projekt na natječaju za daljinsko upravljanje 2017. ako vam se sviđa. Hvala još jednom.

Preporučeni: