Obsah:

Infračervený vysielač a prijímač USB NEC: 4 kroky (s obrázkami)
Infračervený vysielač a prijímač USB NEC: 4 kroky (s obrázkami)

Video: Infračervený vysielač a prijímač USB NEC: 4 kroky (s obrázkami)

Video: Infračervený vysielač a prijímač USB NEC: 4 kroky (s obrázkami)
Video: CS50 Live, Episode 009 2024, Jún
Anonim
Infračervený vysielač a prijímač USB NEC
Infračervený vysielač a prijímač USB NEC

Tento projekt je spin-off iného projektu, na ktorom pracujem, a keďže prebieha súťaž Remote Control 2017 o Instructables, myslel som si, že tento projekt zverejním. Ak sa vám teda tento projekt páči, hlasujte zaň. Vďaka.

Ako možno viete, som veľkým fanúšikom 8-bitových radičov PIC Microchip, pozri:

Používam programovací jazyk JAL, pretože vyzerá ako Pascal (ktorý sa mi tiež páči). Kompilátor JAL a knižnice je možné stiahnuť z: https://www.justanotherlanguage.org/downloads (poslednú vydanú verziu posuňte nadol).

Normálne píšem všetok kód sám, aby som úplne porozumel tomu, čo robím, ale pre tento projekt som potreboval pripojiť PIC k portu USB počítača, a preto som potreboval sériový ovládač JAL USB pre tento ovládač PIC. Použil som sériový ovládač USB v balíku na stiahnutie JAL, ktorý vyzerá, že funguje dobre. Pretože tento sériový ovládač USB bol napísaný pre jeden konkrétny PIC, použil som ten PIC, ktorý je PIC18F14K50. Tento ovládač má oveľa viac funkcií, ako pre tento projekt potrebujem, takže v súčasnosti pracujem na tom, aby tento ovládač USB pracoval na jednoduchšej verzii PIC, PIC16F1455, ktorá je tiež lacnejšia.

O čom teda tento projekt je? So zariadením uvedeným v tomto návode na obsluhu môžete odosielať a prijímať príkazy diaľkového ovládača Infra Red z a do počítača prostredníctvom portu USB pomocou obľúbeného protokolu NEC Infra-Red. Týmto spôsobom môžete monitorovať príkazy Infra-Red a môžete ovládať akékoľvek zariadenie, ktoré používa protokol NEC Infra-Red Remote Control. Projekt dekóduje a prekladá správy Infra-Red do adresného bajtu a príkazového bajtu alebo do opakovanej správy. Adresa sa - samozrejme - používa na adresovanie určitého zariadenia, ako je televízor alebo rádio, kde príkazový bajt označuje funkciu, ktorú je potrebné vykonať, napríklad zvýšenie hlasitosti, zníženie hlasitosti. Okrem dekódovania týchto správ je možné ich prostredníctvom tohto zariadenia prenášať aj prostredníctvom infračerveného prenosu.

Krok 1: Niekoľko informácií o infračervenom protokole NEC

Niekoľko informácií o infračervenom protokole NEC
Niekoľko informácií o infračervenom protokole NEC

Krátky úvod do tohto protokolu. Protokol NEC Infra Red Remote Control sa používa v mnohých zariadeniach a diaľkových ovládačoch, ktoré si môžete kúpiť. Moduluje infračervený signál na nosiči 38 kHz a na kódovanie logického „1“a logického „0“používa kódovanie impulznej vzdialenosti. Protokol používa jednoduchú kontrolu, aby zistil, či je správa v poriadku, odoslaním adresy aj príkazového bajtu a obrátenej verzie oboch v jednej a tej istej správe a po prijatí skontroluje, či sú rovnaké. Po stlačení tlačidla na diaľkovom ovládači odošle raz úplnú infračervenú správu s adresou a príkazom. Ak podržíte tlačidlo stlačené, odošle sa kratšia opakovaná správa bez adresy a príkazových informácií. Doba opakovania prenášaných správ pri podržanom tlačidle je pevná.

Viac informácií o protokole NEC Infra Red nájdete napríklad na:

Krok 2: Požadované komponenty

Požadované komponenty
Požadované komponenty
Požadované komponenty
Požadované komponenty

Pre tento projekt potrebujete nasledujúce komponenty:

  • Mikrokontrolér PIC PIC18F14K50, pozri:
  • Kryštál 12 MHz
  • Keramický kondenzátor: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolytický kondenzátor 47 uF/16V
  • Infračervený prijímač TSOP4838, pozri:
  • Rezistory: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LED diódy: 2 * infračervená, 1 oranžová, 1 zelená, 1 červená
  • Tranzistor BC640, pozri:
  • Prepojka (voliteľné)
  • USB konektor

Pozrite si schematický diagram pripojenia komponentov. Na tento projekt som použil prkénko, ako môžete vidieť na obrázku a na videu. Obvod sa napája z portu USB počítača.

Krok 3: Softvér a prevádzka zariadenia

Ako už bolo uvedené, softvér je napísaný pre PIC18F14K50. Bolo to napísané v JAL. Priložený je súbor Intel Hex na programovanie vášho PIC. Softvér vykonáva nasledujúce funkcie:

  • Dekódujte správy NEC Infra-Red a odošlite ich do počítača cez USB. Správa je dekódovaná z bitového toku, ktorý je generovaný infračerveným prijímačom a preložený do správy adresa + príkaz alebo opakovaná správa.
  • Odosielanie správ NEC Infra Red prijatých z počítača cez USB. Všimnite si toho, že softvér tiež vytvára nosnú frekvenciu 38 kHz, ktorá priamo poháňa infračervené diódy LED. Paralelne s infračervenou diódou LED je pripojená jantárová dióda LED, aby bol prenos správy viditeľný.

Tento obvod predvolene stlmí infračervený prijímač počas prenosu infračervenej správy. Ak je prepojka umiestnená v polohe „Zrušiť stlmenie“, deaktivuje túto funkciu stlmenia. V takom prípade bude prenášaná infračervená správa tiež dekódovaná paralelne s prenosom a po úplnom prijatí je odoslaná ako prijatá infračervená správa do počítača. Ak prijmete platnú infračervenú správu NEC, rozsvieti sa červená LED „IR OK“.

Aby ste mohli ovládať toto zariadenie, musíte mať na svojom počítači program Terminal Emulator. Na tento účel som použil 'Termite'. Keď je zariadenie pripojené k počítaču, systém Windows 10 ho automaticky rozpozná ako ďalší port COM, pretože v systéme Windows 10 je zrejme predinštalovaný ovládač Microchip pre toto zariadenie. Nastavenie pre tento port COM by malo byť: 19200 baudov 8 bitov, 1 stop-bit, žiadna parita a používanie riadenia toku RTS/CTS. Prenosovú rýchlosť je možné v prípade potreby nastaviť na akúkoľvek inú hodnotu, takže bude fungovať aj prenosová rýchlosť 115 200. Akonáhle je zariadenie nakonfigurované prostredníctvom portu USB pripojením k nemu prostredníctvom programu Terminal Emulator, rozsvieti sa zelená kontrolka „Konfigurované“.

Prijímanie infračervených správ

Po prijatí infračervenej správy sa v programe Emulátor terminálu zobrazí nasledovné:

  • „A: xx C: xx“v prípade úplnej správy, kde xx je hexadecimálne číslo adresy (A) a príkazu (C). Hodnoty pre obe sa môžu pohybovať od 0x00 (0) do 0xFF (255).
  • „Opakovať“v prípade opakovanej správy.

Odosielanie infračervených správ

Na to som potreboval definovať protokol, ktorý hovorí zariadeniu, čo má robiť. Pretože používame emulátor terminálu, na definovanie správy som použil znaky ASCII. Protokol na odoslanie príkazu do zariadenia používa nasledujúci formát: „! AACCRR#“, kde (všetky znaky nerozlišujú veľké a malé písmena):

  • „!“Označuje začiatok správy.
  • „AA“je hodnota adresy v hexadecimálnom zápise, takže „0“až „9“a „A“až „F“,
  • „CC“je hodnota príkazu v hexadecimálnom formáte, takže „0“až „9“a „A“až „F“
  • „RR“je počet opakovaných správ, ktoré je potrebné odoslať v hexadecimálnom zápise, takže „0“až „9“a „A“až „F“. Hodnota „00“znamená, že sa neodošle žiadna opakovaná správa.

Príklad správy s adresou 0x07, príkazom 0x05 a 3 opakovaniami by ste potom mali do programu Terminal Emulator napísať takto:! 070503#

Po odoslaní príkazu z počítača má zariadenie rôzne reakcie:

  • „Y“znamená, že bola odoslaná správa. Uvedomte si, že táto odpoveď je odoslaná po odoslaní všetkých správ - vrátane všetkých opakovaní -, kým bude potrebné odoslať veľa opakovaných správ, môže chvíľu trvať, kým sa táto odpoveď zobrazí.
  • „N“znamená, že v správe odoslanej do počítača bol nezákonný znak.
  • „B“znamená, že infračervený prenos bol pri zadaní príkazu stále zaneprázdnený.
  • ? ‘Znamená, že zariadenie čakalo‘!’, Ale dostalo niečo iné.

Krok 4:

Zo zariadenia v prevádzke som urobil krátke video. Na toto video som použil komerčnú LED lampu s diaľkovým ovládaním, aby som zistil, že prenos aj príjem fungujú. Video ukazuje nasledovné:

  • Konfigurácia zariadenia USB z programu Terminal Emulation. Keď je zariadenie nakonfigurované, odpovie správou „Infračervený vysielač a prijímač USB NEC“. Na zariadení svieti zelená LED dióda, ktorá ukazuje, že zariadenie bolo nakonfigurované počítačom.
  • Lampa sa zapína pomocou diaľkového ovládača. Na to diaľkový ovládač používa adresu 0x00 a príkaz 0x07, ktoré zariadenie dekóduje a zobrazí na počítači.
  • Lampa je vypnutá pomocou diaľkového ovládača. Na to diaľkový ovládač používa adresu 0x00 a príkaz 0x06, ktoré zariadenie dekóduje a zobrazí na počítači.
  • Lampa sa zapne zadaním rovnakého príkazu diaľkového ovládača na počítači s hodnotou opakovania 0 (žiadne opakovanie), teda zadaním „! 000700#“. Lampa sa zapne.
  • Zmena farby žiarovky na modrú pomocou adresy 0x00 a príkazu 0x0A a opakovania 0x30. Žltá dióda LED, ktorá je zapojená paralelne s infračervenými diódami LED, bliká a ukazuje prenos opakovanej správy prostredníctvom infračervenej žiarovky. Napísaná správa je „! 000A30#“.

Všimnite si toho, že počas nahrávania tohto videa bolo aktívne prepojovacie prepojenie „Zrušiť stlmenie“, takže ste mohli vidieť aj odoslanú správu „! 000700#“, ktorá bola v programe Emulácia terminálu prijatá ako „A: 00 C: 07“. V ukážke modrej farby žiarovky môžete tiež vidieť, že červená LED dióda svieti, pokiaľ sú odosielané platné - opakujúce sa správy, pretože sú prijímané a dekódované súbežne s prenosom opakovaných správ.

Bavte sa pri budovaní vlastného projektu a tešte sa na vaše reakcie. Nezabudnite tento projekt hlasovať v súťaži Diaľkové ovládanie 2017, ak sa vám páči. Ešte raz ďakujem.

Odporúča: