Sisukord:

USB NEC infrapuna saatja ja vastuvõtja: 4 sammu (piltidega)
USB NEC infrapuna saatja ja vastuvõtja: 4 sammu (piltidega)

Video: USB NEC infrapuna saatja ja vastuvõtja: 4 sammu (piltidega)

Video: USB NEC infrapuna saatja ja vastuvõtja: 4 sammu (piltidega)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
USB NEC infrapuna saatja ja vastuvõtja
USB NEC infrapuna saatja ja vastuvõtja

See projekt on spin-off veel ühest projektist, mille kallal ma töötan, ja kuna seal on kaugjuhtimispult 2017 konkurss Instructables, arvasin, et postitan selle projekti. Nii et kui teile see projekt meeldib, palun hääletage selle poolt. Tänan.

Nagu teate, olen Microchipi 8-bitiste PIC-kontrollerite suur fänn, vt:

Ma kasutan JAL programmeerimiskeelt, kuna see näeb välja nagu Pascal (mis mulle ka meeldib). JAL -i kompilaatori ja teegid saab alla laadida aadressilt https://www.justanotherlanguage.org/downloads (uusima versiooni leidmiseks kerige alla).

Tavaliselt kirjutan kogu koodi ise, et täielikult aru saada, mida ma teen, kuid selle projekti jaoks oli mul vaja ühendada PIC arvuti USB -pordiga ja seega vajasin selle PIC -kontrolleri jaoks JAL -i USB -jadadraiverit. Kasutasin JAL -i allalaadimispaketi USB -jadadraiverit, mis näib töötavat hästi. Kuna see USB -jadadraiver oli kirjutatud ühele konkreetsele PIC -ile, kasutasin seda PIC18F14K50. Sellel kontrolleril on palju rohkem funktsioone, kui mul selle projekti jaoks vaja on, nii et praegu on mul käsil selle USB -draiveri töötamine lihtsama PIC -versiooni PIC16F1455 kallal, mis on ka odavam.

Milles see projekt siis seisneb? Selles juhendis mainitud seadmega saate saata ja vastu võtta infrapunase kaugjuhtimispuldi käske arvutist USB-pordi kaudu ja vastu võtta, kasutades populaarset NEC infrapunaprotokolli. Sel moel saate jälgida infrapunakäsklusi ja juhtida kõiki seadmeid, mis kasutavad NEC infrapunase kaugjuhtimispuldi protokolli. Projekt dekodeerib ja teisendab infrapuna-sõnumid aadressibaitideks ja käsubaitideks või kordussõnumiteks. Aadressi kasutatakse loomulikult teatud seadme, näiteks teleri või raadio aadressimiseks, kus käsubait näitab funktsiooni, mida tuleb täita, näiteks helitugevuse suurendamine, helitugevuse vähendamine. Nende sõnumite dekodeerimise kõrval saab neid selle seadme abil edastada ka infrapunaühenduse kaudu.

Samm: teave NEC infrapunaprotokolli kohta

Teave NEC infrapunaprotokolli kohta
Teave NEC infrapunaprotokolli kohta

Selle protokolli lühitutvustus. NEC infrapunase kaugjuhtimispuldi protokolli kasutatakse paljudes seadmetes ja kaugjuhtimispultides, mida saate osta. See moduleerib infrapunase signaali kandjal 38 kHz ja kasutab impulsskauguse kodeeringut loogilise '1' ja loogilise '0' kodeerimiseks. Protokoll kasutab lihtsat kontrolli, et näha, kas sõnum on korras, saates nii aadressi kui ka käsubaidi ja ümberpööratud versiooni ühes ja samas sõnumis ning kontrollides, kas need on pärast vastuvõtmist samad. Kui kaugjuhtimispuldil nuppu vajutatakse, saadab see ühe korra täieliku infrapunasõnumi koos aadressi ja käsuga. Kui hoiate nuppu all, saadetakse lühem kordussõnum ilma aadressi- ja käsuteabeta. Edastatud sõnumite kordusaeg, hoides nuppu all, on fikseeritud.

Lisateavet NEC infrapunaprotokolli kohta leiate näiteks aadressilt:

2. samm: nõutavad komponendid

Nõutavad komponendid
Nõutavad komponendid
Nõutavad komponendid
Nõutavad komponendid

Selle projekti jaoks peavad teil olema järgmised komponendid:

  • PIC mikrokontroller PIC18F14K50, vaata:
  • Kristall 12 MHz
  • Keraamiline kondensaator: 2 * 100 nF, 1 * 220 nF, 2 * 18 pF
  • Elektrolüütkondensaator 47 uF/16V
  • Infrapuna vastuvõtja TSOP4838, vt:
  • Takistid: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 oomi, 1 * 22 oomi
  • LEDid: 2 * infrapuna, 1 merevaigukollane, 1 roheline, 1 punane
  • Transistor BC640, vt:
  • Jumper (valikuline)
  • USB -pistik

Vaadake komponentide ühendamise skemaatilist diagrammi. Ma kasutasin selle projekti jaoks leivaplaati, nagu näete pildil ja videos. Ahel saab toite arvuti USB -pordist.

3. samm: tarkvara ja seadme töö

Nagu juba mainitud, on tarkvara kirjutatud PIC18F14K50 jaoks. See oli kirjutatud JAL -is. PIC -i programmeerimiseks mõeldud Intel Hex -fail on lisatud. Tarkvara täidab järgmisi funktsioone:

  • NEC infrapunasõnumite dekodeerimine ja USB-ühenduse kaudu arvutisse saatmine. Sõnum dekodeeritakse infrapuna vastuvõtja loodud bitivoost ja tõlgitakse aadressiks + käsusõnumiks või kordussõnumiks.
  • Arvutist saadud NEC infrapunasõnumite saatmine USB kaudu. Pange tähele, et tarkvara loob ka 38 kHz kandesageduse, mis juhib otse infrapuna-LED-e. Paralleelselt infrapuna-LED-iga on ühendatud kollane LED, et muuta sõnumi edastamine nähtavaks.

Vaikimisi vaigistab see vooluring infrapunase vastuvõtja infrapunateate edastamise ajal. Kui hüppaja asetatakse asendisse „Unmute”, lülitab see selle vaigistusfunktsiooni välja. Sel juhul dekodeeritakse edastatud infrapunasõnum paralleelselt edastusega ja pärast täielikku vastuvõtmist saadetakse see vastuvõetud infrapunasõnumina arvutisse. Kui saabub kehtiv NEC infrapuna-teade, süttib punane „IR OK” LED.

Selle seadme kasutamiseks peab teie arvutis olema terminaliemulaatori programm. Ma kasutasin selleks "Termite". Kui seade on arvutiga ühendatud, tuvastab Windows 10 selle automaatselt täiendavaks COM-pordiks, kuna tundub, et selle seadme jaoks on Windows 10 eelinstallitud mikrokiibidraiver. Selle COM-pordi seadistus peaks olema: 19200 baud 8 bitti, 1 stop-bit, pariteet puudub ja kasutades RTS/CTS voo juhtimist. Boodikiirust saab vajadusel seada mis tahes muule väärtusele, seega töötab ka 115200. Kui seade on konfigureeritud USB -pordi kaudu, ühendades selle terminali emulaatori programmi kaudu, süttib roheline märgutuli „Seadistatud”.

Infrapunasõnumite vastuvõtmine

Infrapunase teate saamisel kuvatakse terminaliemulaatori programmis järgmist:

  • „A: xx C: xx” täieliku sõnumi korral, kus xx on aadressi (A) ja käsu (C) kuueteistkümnendarv. Mõlema väärtused võivad olla vahemikus 0x00 (0) kuni 0xFF (255).
  • „Korda” korduva sõnumi korral.

Infrapunasõnumite saatmine

Selleks pidin määratlema protokolli, mis ütleb seadmele, mida teha. Kuna kasutame terminaliemulaatorit, kasutasin sõnumi määratlemiseks ASCII märke. Käskluse seadmesse saatmise protokoll kasutab järgmist vormingut: '! AACCRR#', kus (kõik märgid ei ole tõstutundlikud):

  • "!" Tähistab sõnumi algust.
  • „AA” on aadressi väärtus kuueteistkümnendsüsteemis, seega „0” kuni „9” ja „A” kuni „F”,
  • „CC” on käsu väärtus kuueteistkümnendsüsteemis, seega „0” kuni „9” ja „A” kuni „F”
  • „RR” on korduvate sõnumite arv, mis tuleb edastada kuueteistkümnendsüsteemis, seega „0” kuni „9” ja „A” kuni „F”. Väärtus „00” tähendab, et kordussõnumeid ei saadeta.

Näide sõnumist aadressiga 0x07, käsk 0x05 ja 3 kordust tuleks seejärel terminaliemulaatori programmis tippida järgmiselt:! 070503#

Pärast käsu saatmist arvutist on seadmel erinevad vastused:

  • "Y" tähendab, et sõnum edastati. Pange tähele, et see vastus antakse pärast kõigi sõnumite, sealhulgas kõikide korduste, edastamist, nii et vastuse saamine võib võtta aega, kui on vaja edastada palju kordussõnumeid.
  • "N" tähendab, et arvutisse saadetud sõnumis oli ebaseaduslik märk.
  • "B" tähendab, et infrapunaülekanne oli käsu andmisel endiselt hõivatud.
  • ? "Tähendab, et seade ootas"! ", Kuid sai midagi muud.

4. samm:

Tegin seadme toimimisest lühikese video. Selle video jaoks kasutasin kaubanduslikku LED -lampi koos selle kaugjuhtimispuldiga, et näha, kas edastus ja vastuvõtt töötavad. Video näitab järgmist:

  • USB -seadme konfigureerimine programmi Terminal Emulation kaudu. Kui seade on konfigureeritud, vastab see teatega „USB NEC infrapuna saatja ja vastuvõtja”. Seadmel süttib roheline LED, mis näitab, et arvuti on seadme konfigureerinud.
  • Lamp lülitatakse sisse kaugjuhtimispuldiga. Selleks kasutab kaugjuhtimispult aadressi 0x00 ja käsku 0x07, mille seade dekodeerib ja kuvab arvutis.
  • Lamp lülitatakse kaugjuhtimispuldiga välja. Selleks kasutab kaugjuhtimispult aadressi 0x00 ja käsku 0x06, mille seade dekodeerib ja kuvab arvutis.
  • Lamp lülitatakse sisse, kui sisestate arvutisse sama kaugjuhtimispuldi käsu, mille kordusväärtus on 0 (kordust pole), nii et tippige '! 000700#'. Lamp süttib.
  • Lambi värvi muutmine siniseks, kasutades aadressi 0x00 ja käsku 0x0A ning kasutades kordusi 0x30. Merevaigukollane LED, mis on ühendatud paralleelselt infrapuna -LED -idega, vilgub, näidates kordussõnumi edastamist infrapuna kaudu. Sisestatud sõnum on '! 000A30#'.

Pange tähele, et selle video salvestamise ajal oli hüppajaühendus „Unmute” aktiivne, nii et näete ka edastatud sõnumit „! 000700#”, mis on terminali emuleerimisprogrammis vastu võetud kui „A: 00 C: 07”. Sinise värviga lambi demos näete ka, et punane LED süttib seni, kuni edastatakse kehtivaid korduvaid teateid, kuna need on vastu võetud ja dekodeeritud paralleelselt kordusteadete edastamisega.

Nautige oma projekti ehitamist ja oodake oma reaktsioone. Ärge unustage selle projekti poolt hääletada konkursil Kaugjuhtimispult 2017, kui see teile meeldib. Aitäh veel kord.

Soovitan: