Turinys:

USB NEC infraraudonųjų spindulių siųstuvas ir imtuvas: 4 žingsniai (su nuotraukomis)
USB NEC infraraudonųjų spindulių siųstuvas ir imtuvas: 4 žingsniai (su nuotraukomis)

Video: USB NEC infraraudonųjų spindulių siųstuvas ir imtuvas: 4 žingsniai (su nuotraukomis)

Video: USB NEC infraraudonųjų spindulių siųstuvas ir imtuvas: 4 žingsniai (su nuotraukomis)
Video: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, Lapkritis
Anonim
USB NEC infraraudonųjų spindulių siųstuvas ir imtuvas
USB NEC infraraudonųjų spindulių siųstuvas ir imtuvas

Šis projektas yra kito projekto, prie kurio dirbu, dalis ir kadangi yra „Remote Control 2017“konkursas „Instructables“, maniau, kad paskelbsiu šį projektą. Taigi, jei jums patinka šis projektas, balsuokite už jį. Dėkoju.

Kaip žinote, esu didelis „Microchip“8 bitų PIC valdiklių gerbėjas, žr.

Aš naudoju JAL programavimo kalbą, nes ji atrodo kaip Pascal (kuri man taip pat patinka). JAL kompiliatorių ir bibliotekas galima atsisiųsti iš: https://www.justanotherlanguage.org/downloads (slinkite žemyn, kad gautumėte naujausią išleistą versiją).

Paprastai aš pats rašau visą kodą, kad visiškai suprasčiau, ką darau, tačiau šiam projektui reikėjo prijungti PIC prie kompiuterio USB prievado, todėl man reikėjo šio PIC valdiklio JAL USB serijos tvarkyklės. Aš naudoju USB serijos tvarkyklę JAL atsisiuntimo pakete, kuris, atrodo, veikia gerai. Kadangi ši USB serijos tvarkyklė buvo parašyta vienam konkrečiam PIC, aš naudoju tą PIC, kuris yra PIC18F14K50. Šis valdiklis turi daug daugiau funkcijų, nei man reikia šiam projektui, todėl šiuo metu ruošiuosi, kad ši USB tvarkyklė dirbtų su paprastesne PIC versija - PIC16F1455, kuri taip pat yra pigesnė.

Taigi, kas yra šis projektas? Naudodami įrenginį, paminėtą šioje instrukcijoje, galite siųsti ir gauti infraraudonųjų spindulių nuotolinio valdymo komandas iš ir į kompiuterį per USB prievadą, naudodami populiarųjį NEC infraraudonųjų spindulių protokolą. Tokiu būdu galite stebėti infraraudonųjų spindulių komandas ir valdyti bet kurį įrenginį, kuriame naudojamas NEC infraraudonųjų spindulių nuotolinio valdymo protokolas. Projektas dekoduoja ir išverčia infraraudonųjų spindulių pranešimus į adreso baitą ir komandinį baitą arba į pakartotinį pranešimą. Adresas, žinoma, naudojamas tam tikram įrenginiui, pavyzdžiui, televizoriui ar radijui, kur komandos baitas nurodo funkciją, kurią reikia atlikti, pvz., Garsumo didinimas, garsumo mažinimas. Be šių pranešimų dekodavimo, jie taip pat gali būti perduodami infraraudonųjų spindulių ryšiu naudojant šį įrenginį.

1 žingsnis: šiek tiek informacijos apie NEC infraraudonųjų spindulių protokolą

Šiek tiek informacijos apie NEC infraraudonųjų spindulių protokolą
Šiek tiek informacijos apie NEC infraraudonųjų spindulių protokolą

Trumpas šio protokolo įvadas. NEC infraraudonųjų spindulių nuotolinio valdymo protokolas naudojamas daugelyje įrenginių ir nuotolinio valdymo pultų, kuriuos galite nusipirkti. Jis moduliuoja infraraudonųjų spindulių signalą 38 kHz nešiklyje ir naudoja impulsinio atstumo kodavimą, koduojant loginį „1“ir loginį „0“. Protokolas naudoja paprastą patikrinimą, ar pranešimas yra tinkamas, siunčiant ir adresą, ir komandinį baitą, ir apverstą abiejų to paties pranešimo versiją ir tikrinant, ar jie yra vienodi po priėmimo. Paspaudus nuotolinio valdymo pulto mygtuką, jis vieną kartą siunčia visą infraraudonųjų spindulių pranešimą su adresu ir komanda. Laikant nuspaustą mygtuką, bus išsiųstas trumpesnis kartojimo pranešimas be adreso ir komandos informacijos. Perduotų pranešimų pasikartojimo laikas, laikant nuspaustą mygtuką, yra fiksuotas.

Daugiau informacijos apie NEC infraraudonųjų spindulių protokolą, pavyzdžiui, rasite:

2 žingsnis: reikalingi komponentai

Būtini komponentai
Būtini komponentai
Būtini komponentai
Būtini komponentai

Šiam projektui reikia turėti šiuos komponentus:

  • PIC mikrovaldiklis PIC18F14K50, žiūrėkite:
  • Kristalas 12 MHz
  • Keraminis kondensatorius: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolitinis kondensatorius 47 uF/16V
  • Infraraudonųjų spindulių imtuvas TSOP4838, žiūrėkite:
  • Rezistoriai: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 omų, 1 * 22 omai
  • Šviesos diodai: 2 * infraraudonųjų spindulių, 1 gintaro, 1 žalia, 1 raudona
  • Tranzistorius BC640, žiūrėkite:
  • Džemperis (neprivaloma)
  • USB jungtis

Žiūrėkite schemą, kaip prijungti komponentus. Šiam projektui naudojau duonos lentą, kaip matote paveikslėlyje ir vaizdo įraše. Grandinė gauna energiją iš kompiuterio USB prievado.

3 žingsnis: programinė įranga ir įrenginio veikimas

Kaip jau minėta, programinė įranga parašyta PIC18F14K50. Tai buvo parašyta JAL. Pridedamas „Intel Hex“failas PIC programavimui. Programinė įranga atlieka šias funkcijas:

  • Iššifruokite NEC infraraudonųjų spindulių pranešimus ir nusiųskite juos į kompiuterį per USB. Pranešimas iššifruojamas iš bitų srauto, kurį sukuria infraraudonųjų spindulių imtuvas, ir išverstas į adreso + komandos pranešimą arba pakartotinį pranešimą.
  • Siunčiami NEC infraraudonųjų spindulių pranešimai, gauti iš kompiuterio per USB. Atkreipkite dėmesį, kad programinė įranga taip pat sukuria 38 kHz nešiklio dažnį, kuris tiesiogiai valdo infraraudonųjų spindulių šviesos diodus. Lygiagrečiai su infraraudonųjų spindulių šviesos diodu prijungtas gintaro spalvos šviesos diodas, kad pranešimas būtų matomas.

Pagal numatytuosius nustatymus ši grandinė nutildys infraraudonųjų spindulių imtuvą perduodant infraraudonųjų spindulių pranešimą. Jei trumpiklis yra padėtyje „Įjungti garsą“, jis išjungs šią nutildymo funkciją. Tokiu atveju perduotas infraraudonųjų spindulių pranešimas taip pat bus dekoduojamas lygiagrečiai su perdavimu, o po visiško priėmimo jis siunčiamas kaip gautas infraraudonųjų spindulių pranešimas į kompiuterį. Jei gaunamas galiojantis NEC infraraudonųjų spindulių pranešimas, užsidegs raudonas „IR OK“šviesos diodas.

Norėdami valdyti šį įrenginį, kompiuteryje turite turėti terminalo emuliatoriaus programą. Šiam tikslui naudojau termitą. Kai įrenginys prijungtas prie kompiuterio, „Windows 10“jį automatiškai atpažins kaip papildomą COM prievadą, nes atrodo, kad „Windows 10“iš anksto įdiegta šio įrenginio „Microchip“tvarkyklė. Šio COM prievado nustatymas turėtų būti: 19200 baudų 8 bitai, 1 stop-bit, be pariteto ir naudojant RTS/CTS srauto valdymą. Jei reikia, duomenų perdavimo spartą galima nustatyti į bet kurią kitą vertę, todėl 115200 duomenų perdavimo sparta taip pat veiks. Kai įrenginys bus sukonfigūruotas per USB prievadą, prijungus jį prie terminalo emuliatoriaus programos, užsidegs žalias „Konfigūruotas“šviesos diodas.

Infraraudonųjų spindulių pranešimų priėmimas

Gavus infraraudonųjų spindulių pranešimą, terminalo emuliatoriaus programoje bus rodoma:

  • „A: xx C: xx“viso pranešimo atveju, kur xx yra šešioliktainis adreso (A) ir komandos (C) skaičius. Abiejų reikšmės gali būti nuo 0x00 (0) iki 0xFF (255).
  • „Kartoti“, jei pranešimas kartojasi.

Infraraudonųjų spindulių pranešimų siuntimas

Tam turėjau apibrėžti protokolą, nurodantį įrenginiui, ką daryti. Kadangi mes naudojame terminalo emuliatorių, pranešimui apibrėžti naudojau ASCII simbolius. Komandos siuntimo į įrenginį protokolas naudoja tokį formatą: '! AACCRR#', kur (visi simboliai neskiriami)

  • „!“Reiškia pranešimo pradžią.
  • „AA“yra adreso reikšmė šešioliktainėse žymose, taigi nuo 0 iki „9“ir nuo „A“iki „F“,
  • „CC“yra komandos reikšmė šešioliktainiu žymėjimu, taigi nuo 0 iki „9“ir nuo „A“iki „F“
  • „RR“yra pakartotinių pranešimų, kuriuos reikia perduoti šešioliktainiais skaičiais, skaičius nuo 0 iki 9 ir nuo A iki F. „00“reikšmė reiškia, kad pakartotinis pranešimas nėra siunčiamas.

Pranešimo, kurio adresas yra 0x07, komanda 0x05 ir 3 pakartojimai, pavyzdys terminalo emuliatoriaus programoje turėtų būti įvestas taip:! 070503#

Įrenginys turi skirtingus atsakymus po to, kai komanda siunčiama iš kompiuterio:

  • „Y“reiškia, kad pranešimas buvo perduotas. Atminkite, kad šis atsakymas pateikiamas po to, kai visi pranešimai, įskaitant visus pakartojimus, yra persiųsti, todėl gali prireikti šiek tiek laiko, kol šis atsakymas bus pateiktas, kai reikia perduoti daug pakartotinių pranešimų.
  • „N“reiškia, kad į kompiuterį išsiųstame pranešime buvo neteisėtas simbolis.
  • „B“reiškia, kad infraraudonųjų spindulių perdavimas vis dar buvo užimtas, kai buvo duota komanda.
  • ? “Reiškia, kad prietaisas tikėjosi„! “, Bet gavo ką nors kita.

4 žingsnis:

Aš padariau trumpą vaizdo įrašą apie veikiantį įrenginį. Šiame vaizdo įraše aš naudoju komercinę LED lempą su nuotolinio valdymo pultu, kad pamatyčiau, ar tiek perdavimas, tiek priėmimas veikia. Vaizdo įraše parodyta:

  • USB įrenginio konfigūravimas naudojant terminalo emuliacijos programą. Kai įrenginys sukonfigūruotas, jis reaguoja pranešimu „USB NEC infraraudonųjų spindulių siųstuvas ir imtuvas“. Įrenginyje dega žalias šviesos diodas, rodantis, kad įrenginį sukonfigūravo kompiuteris.
  • Lempa įjungiama naudojant nuotolinio valdymo pultą. Tam nuotolinio valdymo pultas naudoja adresą 0x00 ir komandą 0x07, kurią įrenginys iššifruoja ir parodo kompiuteryje.
  • Lempa išjungiama naudojant nuotolinio valdymo pultą. Tam nuotolinio valdymo pultas naudoja adresą 0x00 ir komandą 0x06, kurią įrenginys iššifruoja ir parodo kompiuteryje.
  • Lempa įjungiama kompiuteryje įvedus tą pačią nuotolinio valdymo pulto komandą, kurios pakartojimo vertė yra 0 (be pakartojimo), taigi įvesdami „! 000700#“. Lempa įsijungia.
  • Lempos spalvos keitimas į mėlyną naudojant adresą 0x00 ir komandą 0x0A bei naudojant 0x30 pakartojimus. Gintarinė lemputė, prijungta lygiagrečiai su infraraudonųjų spindulių šviesos diodais, mirksi, rodydama pakartotinio pranešimo perdavimą per infraraudonųjų spindulių ryšį. Įvestas pranešimas yra „! 000A30#“.

Atkreipkite dėmesį, kad įrašant šį vaizdo įrašą, buvo aktyvus trumpiklio ryšys „Įjungti garsą“, kad galėtumėt matyti ir persiųstą pranešimą „! 000700#“, gautą kaip „A: 00 C: 07“terminalo emuliacijos programoje. Mėlynos spalvos lempos demonstracijoje taip pat galite pamatyti, kad raudonas šviesos diodas šviečia tol, kol perduodami galiojantys pakartojimo pranešimai, nes jie gaunami ir dekoduojami lygiagrečiai su pakartotinių pranešimų perdavimu.

Smagiai kurkite savo projektą ir laukite jūsų reakcijos. Nepamirškite balsuoti už šį projektą „Remote Control 2017“konkurse, jei jums tai patinka. Ačiū dar kartą.

Rekomenduojamas: