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, Novembar
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 projekat, 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 mi se takođe sviđa). JAL kompajler i biblioteke mogu se preuzeti sa: https://www.justanotherlanguage.org/downloads (pomerite se nadole za najnoviju objavljenu verziju).

Obično sam pišem sav kôd kako bih u potpunosti razumio šta radim, ali za ovaj projekt mi je bilo potrebno 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 funkcija nego što mi je potrebno za ovaj projekt, pa sam trenutno u procesu postavljanja ovog USB upravljačkog programa na jednostavniju PIC verziju, 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š računar putem USB priključka koristeći popularni NEC Infra-Red protokol. Na ovaj 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. Osim dekodiranja ovih poruka, one se mogu prenijeti i putem infracrvene boje pomoću ovog uređaja.

Korak 1: Nekoliko informacija o NEC Infracrvenom protokolu

Nekoliko informacija o NEC Infracrvenom protokolu
Nekoliko informacija o NEC 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 nosiocu od 38 kHz i koristi kodiranje udaljenosti impulsa za kodiranje logičkog '1' i logičkog '0'. Protokol koristi jednostavnu provjeru da vidi je li poruka u redu tako što će poslati adresu i bajt naredbe te obrnutu verziju oba u jednoj te istoj poruci i provjeriti jesu li iste nakon prijema. Kada se pritisne dugme na daljinskom upravljaču, ono jednom šalje kompletnu infracrvenu poruku sa adresom i komandom. Ako pritisnete dugme, poslaćete kraću ponovljenu poruku bez adrese i podataka o komandi. Vrijeme ponavljanja poslanih poruka uz zadržavanje pritisnutog dugmeta 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, pogledajte:
  • 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 žuta, 1 zelena, 1 crvena
  • Tranzistor BC640, pogledajte:
  • Džemper (opcionalno)
  • USB konektor

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čunara.

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čunar putem USB-a. Poruka se dekodira iz bitova koje generira infracrveni prijemnik i prevodi u adresu + naredbena poruka ili ponovljena poruka.
  • Slanje NEC Infra Red poruka primljenih s računara putem USB -a. Imajte na umu da softver također stvara nosivu frekvenciju od 38 kHz koja direktno pokreće infracrvene LED diode. Paralelno sa infracrvenom LED diodom, žuta LED dioda je povezana kako bi prijenos poruke bio vidljiv.

Podrazumevano će ovo kolo isključiti prijemnik infracrvenog signala tokom prenosa infracrvene poruke. Ako je kratkospojnik postavljen na položaj „Uključi zvuk“, onemogućit će ovu funkciju isključivanja zvuka. U tom slučaju prenesena infracrvena poruka će se također dekodirati paralelno s prijenosom, a nakon potpunog prijema šalje se kao primljena infracrvena poruka na računar. Ako se primi valjana NEC infracrvena poruka, zasvijetlit će crvena LED dioda ‘IR OK’.

Da biste upravljali ovim uređajem, na računaru morate imati program Terminal Emulator. U tu sam svrhu upotrijebio ‘Termite’. Kada je uređaj povezan s računalom, Windows 10 će ga automatski prepoznati kao dodatni COM port jer izgleda da postoji upravljački program za mikročip za ovaj uređaj u Windows 10 unaprijed instaliran. Postavka za ovaj COM port bi trebala 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

Kada primite infracrvenu poruku, u programu Terminal Emulator bit će prikazano 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 biti u rasponu od 0x00 (0) do 0xFF (255).
  • ‘Ponovi’ u slučaju ponavljanja poruke.

Slanje infracrvenih poruka

Za to sam morao definirati protokol koji govori uređaju šta da radi. 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 poruka koje se ponavljaju i 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 sve poruke - uključujući sva ponavljanja - prenose 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 računaru bio nedozvoljen znak.
  • 'B' znači da je infracrveni prijenos bio još zauzet kada je data naredba.
  • ? 'Znači da je uređaj očekivao'! ', Ali je primio nešto drugo.

Korak 4:

Napravio sam kratak video uređaj u akciji. Za ovaj video upotrijebio sam komercijalnu LED lampu sa daljinskim upravljačem kako bih provjerio funkcioniraju li i prijenos i prijem. Video prikazuje sljedeće:

  • Konfiguriranje USB uređaja iz programa Terminal Emulation. Kada je uređaj konfiguriran, on odgovara porukom ‘USB NEC infracrveni odašiljač i prijemnik’. Na uređaju se uključuje zelena LED lampica koja pokazuje da je uređaj konfiguriran od strane računara.
  • Lampa se uključuje pomoću daljinskog upravljača. Za to daljinski upravljač koristi adresu 0x00 i naredbu 0x07 koje uređaj dekodira i prikazuje na računaru.
  • Lampa 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čunaru.
  • Lampica se uključuje upisivanjem iste naredbe za daljinski upravljač na računaru s vrijednošću ponavljanja 0 (bez ponavljanja) pa upisivanjem '! 000700#'. Lampa se pali.
  • Promena boje lampe u plavu pomoću adrese 0x00 i komande 0x0A i korišćenjem ponavljanja 0x30. Žuta lampica, koja je spojena paralelno sa infracrvenim LED diodama, treperi i prikazuje prenos ponovljene poruke putem infracrvene boje. Otkucana 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 lampica svijetli sve dok se važeće - 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 glasati za ovaj projekat na takmičenju Remote Control 2017 ako vam se sviđa. Hvala još jednom.

Preporučuje se: