Satura rādītājs:

USB NEC infrasarkanais raidītājs un uztvērējs: 4 soļi (ar attēliem)
USB NEC infrasarkanais raidītājs un uztvērējs: 4 soļi (ar attēliem)

Video: USB NEC infrasarkanais raidītājs un uztvērējs: 4 soļi (ar attēliem)

Video: USB NEC infrasarkanais raidītājs un uztvērējs: 4 soļi (ar attēliem)
Video: CS50 Live, серия 009 2024, Septembris
Anonim
USB NEC infrasarkanais raidītājs un uztvērējs
USB NEC infrasarkanais raidītājs un uztvērējs

Šis projekts ir papildinājums citam projektam, pie kura es strādāju, un, tā kā notiek Remote Control 2017 konkurss par Instructables, es domāju, ka publicēju šo projektu. Tātad, ja jums patīk šis projekts, lūdzu, balsojiet par to. Paldies.

Kā jūs zināt, es esmu liels Microchip 8 bitu PIC kontrolieru ventilators, skatiet:

Es izmantoju JAL programmēšanas valodu, jo tā izskatās kā Pascal (kas man arī patīk). JAL kompilatoru un bibliotēkas var lejupielādēt no: https://www.justanotherlanguage.org/downloads (ritiniet uz leju, lai atrastu jaunāko versiju).

Parasti es pats rakstu visu kodu, lai pilnībā saprastu, ko daru, bet šim projektam man bija nepieciešams savienot PIC ar datora USB portu, un tāpēc man bija nepieciešams JAL USB seriālais draiveris šim PIC kontrolierim. Es izmantoju USB sērijas draiveri JAL lejupielādes pakotnē, kas, šķiet, darbojas labi. Tā kā šis USB seriālais draiveris tika rakstīts vienam konkrētam PIC, es izmantoju šo PIC, kas ir PIC18F14K50. Šim kontrolierim ir daudz vairāk funkcionalitātes, nekā man ir nepieciešams šim projektam, tāpēc es pašlaik cenšos panākt, lai šis USB draiveris strādātu ar vienkāršāku PIC versiju - PIC16F1455, kas ir arī lētāka.

Tātad, par ko ir šis projekts? Izmantojot šajā instrukcijā minēto ierīci, varat nosūtīt un saņemt infrasarkanās tālvadības komandas no datora un uz to, izmantojot USB portu, izmantojot populāro NEC infrasarkano staru protokolu. Tādā veidā jūs varat pārraudzīt infrasarkano staru komandas un kontrolēt jebkuru ierīci, kas izmanto NEC infrasarkano staru tālvadības protokolu. Projekts atšifrē un pārvērš infrasarkanos ziņojumus adreses baitos un komandu baitos vai atkārtotā ziņojumā. Adrese, protams, tiek izmantota, lai adresētu noteiktu ierīci, piemēram, televizoru vai radio, kur komandu baits norāda funkciju, kas jāveic, piemēram, skaļuma palielināšana, skaļuma samazināšana. Papildus šo ziņojumu atšifrēšanai tos var arī pārraidīt, izmantojot infrasarkano staru, izmantojot šo ierīci.

1. darbība. Informācija par NEC infrasarkano staru protokolu

Informācija par NEC infrasarkano protokolu
Informācija par NEC infrasarkano protokolu

Īss ievads šajā protokolā. NEC infrasarkanās tālvadības pults protokols tiek izmantots daudzās ierīcēs un tālvadības pultīs, kuras varat iegādāties. Tas modulē infrasarkano signālu 38 kHz nesējā un izmanto impulsa attāluma kodējumu loģiskā “1” un loģiskā “0” kodēšanai. Protokolā tiek izmantota vienkārša pārbaude, lai noskaidrotu, vai ziņojums ir kārtībā, nosūtot gan adresi, gan komandu baitu, gan apgrieztu versiju vienā un tajā pašā ziņojumā un pārbaudot, vai tie pēc saņemšanas ir vienādi. Nospiežot pogu uz tālvadības pults, tā vienreiz nosūta pilnu infrasarkano ziņojumu ar adresi un komandu. Turot nospiestu pogu, tiks nosūtīts īsāks atkārtotais ziņojums bez adreses un komandas informācijas. Nosūtīto ziņojumu atkārtošanās laiks, turot nospiestu pogu, ir fiksēts.

Plašāku informāciju par NEC Infra Red protokolu var atrast, piemēram, vietnē:

2. darbība. Nepieciešamie komponenti

Nepieciešamās sastāvdaļas
Nepieciešamās sastāvdaļas
Nepieciešamās sastāvdaļas
Nepieciešamās sastāvdaļas

Šim projektam jums ir jābūt šādām sastāvdaļām:

  • PIC mikrokontrolleris PIC18F14K50, skatiet:
  • Kristāls 12 MHz
  • Keramikas kondensators: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolītiskais kondensators 47 uF/16V
  • Infrasarkanais uztvērējs TSOP4838, skatiet:
  • Rezistori: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 omi, 1 * 22 omi
  • Gaismas diodes: 2 * infrasarkanais, 1 dzintars, 1 zaļš, 1 sarkans
  • Tranzistors BC640, skatiet:
  • Džemperis (pēc izvēles)
  • USB savienotājs

Skatiet shematisko diagrammu, kā savienot komponentus. Šim projektam es izmantoju maizes dēli, kā redzams attēlā un video. Ķēde saņem enerģiju no datora USB porta.

3. darbība: programmatūra un ierīces darbība

Kā jau minēts, programmatūra ir rakstīta PIC18F14K50. Tas bija rakstīts JAL. Ir pievienots Intel Hex fails PIC programmēšanai. Programmatūra veic šādas funkcijas:

  • NEC infrasarkano ziņojumu dekodēšana un nosūtīšana uz datoru, izmantojot USB. Ziņojums tiek atšifrēts no bitu plūsmas, ko ģenerē infrasarkanais uztvērējs, un tiek pārvērsts par adresi + komandas ziņojumu vai atkārtotu ziņojumu.
  • No datora saņemto NEC infrasarkano staru ziņojumu sūtīšana, izmantojot USB. Ņemiet vērā, ka programmatūra rada arī 38 kHz nesējfrekvenci, kas tieši vada infrasarkanās gaismas diodes. Paralēli infrasarkanajai gaismas diodei ir pievienota dzintara gaismas diode, lai ziņojuma pārraide būtu redzama.

Pēc noklusējuma šī shēma izslēgs infrasarkano staru uztvērēju infrasarkanā ziņojuma pārraides laikā. Ja džemperis ir novietots pozīcijā “Ieslēgt skaņu”, tas izslēgs šo izslēgšanas funkciju. Tādā gadījumā pārraidītais infrasarkanais ziņojums tiks atšifrēts paralēli pārraidei un pēc pilnīgas uztveršanas tas tiks nosūtīts uz datoru kā saņemts infrasarkanais ziņojums. Ja tiek saņemts derīgs NEC infrasarkanais ziņojums, iedegas sarkanā “IR OK” gaismas diode.

Lai darbinātu šo ierīci, datorā jābūt termināļa emulatora programmai. Šim nolūkam es izmantoju termītu. Kad ierīce ir pievienota datoram, sistēma Windows 10 to automātiski atpazīs kā papildu COM portu, jo šķiet, ka šai ierīcei ir iepriekš instalēts mikroshēmas draiveris. Šim COM portam jābūt iestatītam: 19200 baudi 8 biti, 1 pieturas bits, bez paritātes un izmantojot RTS/CTS plūsmas vadību. Bodu pārraides ātrumu, ja nepieciešams, var iestatīt uz jebkuru citu vērtību, tāpēc darbosies arī 115200 bodu ātrums. Kad ierīce ir konfigurēta, izmantojot USB portu, izveidojot savienojumu ar to, izmantojot termināļa emulatora programmu, iedegsies zaļā “Konfigurētā” gaismas diode.

Infrasarkano staru ziņojumu saņemšana

Kad tiek saņemts infrasarkanais ziņojums, termināļa emulatora programmā tiks parādīts šāds:

  • “A: xx C: xx” pilnīga ziņojuma gadījumā, kur xx ir adreses (A) un komandas (C) heksadecimālais skaitlis. Abas vērtības var būt no 0x00 (0) līdz 0xFF (255).
  • “Atkārtot” atkārtota ziņojuma gadījumā.

Infrasarkano staru ziņojumu sūtīšana

Šim nolūkam man bija jānosaka protokols, kas ierīcei nosaka, kas jādara. Tā kā mēs izmantojam termināļa emulatoru, ziņojuma definēšanai izmantoju ASCII rakstzīmes. Protokolā komandas nosūtīšanai uz ierīci tiek izmantots šāds formāts: “! AACCRR#”, kur (visas rakstzīmes nav reģistrjutīgas):

  • “!” Norāda ziņas sākumu.
  • “AA” ir adreses vērtība heksadecimālā apzīmējumā, tātad no “0” līdz “9” un “A” līdz “F”,
  • “CC” ir komandas vērtība heksadecimālā apzīmējumā, tātad no “0” līdz “9” un “A” līdz “F”
  • “RR” ir atkārtotu ziņojumu skaits, kas jānosūta heksadecimālā apzīmējumā, tātad no “0” līdz “9” un “A” līdz “F”. Vērtība “00” nozīmē, ka netiek nosūtīts atkārtots ziņojums.

Ziņojuma piemērs ar adresi 0x07, komanda 0x05 un 3 atkārtojumi termināļa emulatora programmā jāievada šādi:! 070503#

Ierīcei ir dažādas atbildes pēc komandas nosūtīšanas no datora:

  • “Y” nozīmē, ka ziņa tika pārsūtīta. Ņemiet vērā, ka šī atbilde tiek sniegta pēc tam, kad ir nosūtīti visi ziņojumi, ieskaitot visus atkārtojumus, tāpēc var paiet zināms laiks, līdz šī atbilde tiek sniegta, ja ir jānosūta daudz atkārtotu ziņojumu.
  • “N” nozīmē, ka personālajam datoram nosūtītajā ziņojumā bija nelikumīgs raksturs.
  • “B” nozīmē, ka infrasarkano staru pārraide joprojām bija aizņemta, kad tika dota komanda.
  • ?”Nozīmē, ka ierīce gaidīja“!”, Bet tā saņēma kaut ko citu.

4. solis:

Es izveidoju īsu video par ierīci darbībā. Šim video es izmantoju komerciālu LED lampu ar tālvadības pulti, lai redzētu, ka darbojas gan pārraide, gan uztveršana. Video redzams sekojošais:

  • USB ierīces konfigurēšana no termināļa emulācijas programmas. Kad ierīce ir konfigurēta, tā atbild ar ziņojumu “USB NEC infrasarkanais raidītājs un uztvērējs”. Ierīcē iedegas zaļā gaismas diode, kas norāda, ka ierīci ir konfigurējis dators.
  • Lukturis tiek ieslēgts ar tālvadības pulti. Šim nolūkam tālvadības pults izmanto adresi 0x00 un komandu 0x07, ko ierīce atšifrē un parāda datorā.
  • Lukturis tiek izslēgts, izmantojot tālvadības pulti. Šim nolūkam tālvadības pults izmanto adresi 0x00 un komandu 0x06, ko ierīce atšifrē un parāda datorā.
  • Lampiņa tiek ieslēgta, datorā ierakstot to pašu tālvadības komandu ar atkārtojuma vērtību 0 (bez atkārtošanās), tātad ierakstot '! 000700#'. Lampiņa iedegas.
  • Lampas krāsas maiņa uz zilu, izmantojot adresi 0x00 un komandu 0x0A, un izmantojot 0x30 atkārtojumus. Dzintara gaismas diode, kas ir savienota paralēli infrasarkanajām gaismas diodēm, mirgo, parādot atkārtotā ziņojuma pārraidi, izmantojot infrasarkano staru. Ierakstītais ziņojums ir “! 000A30#”.

Ņemiet vērā, ka šī video ierakstīšanas laikā bija aktivizēts savienojuma savienojums “Atslēgt skaņu”, lai jūs varētu redzēt arī pārraidīto ziņojumu “! 000700#”, kas termināļa emulācijas programmā tiek saņemts kā “A: 00 C: 07”. Zilā krāsā izgaismotās lampas demonstrācijā var redzēt arī to, ka sarkanā gaismas diode deg tik ilgi, kamēr tiek pārraidīti derīgie - atkārtotie - ziņojumi, jo tie tiek saņemti un atšifrēti paralēli atkārtoto ziņojumu pārraidei.

Izklaidējieties, veidojot savu projektu un gaidot jūsu reakcijas. Neaizmirstiet nobalsot par šo projektu konkursā Remote Control 2017, ja jums tas patīk. Vēlreiz paldies.

Ieteicams: