Obsah:

Infračervený vysílač a přijímač USB NEC: 4 kroky (s obrázky)
Infračervený vysílač a přijímač USB NEC: 4 kroky (s obrázky)

Video: Infračervený vysílač a přijímač USB NEC: 4 kroky (s obrázky)

Video: Infračervený vysílač a přijímač USB NEC: 4 kroky (s obrázky)
Video: CS50 Live, Episode 009 2024, Listopad
Anonim
Infračervený vysílač a přijímač USB NEC
Infračervený vysílač a přijímač USB NEC

Tento projekt je spin-off jiného projektu, na kterém pracuji, a protože existuje soutěž Remote Control 2017 na Instructables, myslel jsem, že tento projekt zveřejním. Pokud se vám tedy tento projekt líbí, hlasujte pro něj. Dík.

Jak možná víte, jsem velkým fanouškem 8bitových řadičů PIC Microchip, viz:

Používám programovací jazyk JAL, protože vypadá jako Pascal (což se mi také líbí). Kompilátor JAL a knihovny lze stáhnout z: https://www.justanotherlanguage.org/downloads (nejnovější vydanou verzi přejděte dolů).

Normálně píšu veškerý kód sám, abych úplně porozuměl tomu, co dělám, ale pro tento projekt jsem potřeboval připojit PIC k USB portu počítače a tak jsem potřeboval sériový ovladač JAL USB pro tento PIC řadič. Použil jsem sériový ovladač USB v balíčku ke stažení JAL, který vypadá, že funguje dobře. Protože tento USB sériový ovladač byl napsán pro jeden konkrétní PIC, použil jsem ten PIC, což je PIC18F14K50. Tento řadič má mnohem více funkcí, než pro tento projekt potřebuji, takže v současné době pracuji na tom, aby tento ovladač USB pracoval na jednodušší verzi PIC, PIC16F1455, která je také levnější.

O čem tedy tento projekt je? Se zařízením zmíněným v tomto Instructables můžete odesílat a přijímat příkazy dálkového ovládání Infra Red z a do vašeho PC přes USB port pomocí populárního protokolu NEC Infra-Red. Tímto způsobem můžete sledovat příkazy Infra-Red a můžete ovládat jakékoli zařízení, které používá protokol NEC Infra-Red Remote Control. Projekt dekóduje a překládá zprávy Infra-Red do adresního bajtu a příkazového bajtu nebo do opakované zprávy. Adresa se - samozřejmě - používá k adresování určitého zařízení, jako je televize nebo rádio, kde příkazový bajt označuje funkci, kterou je třeba provést, jako je zvýšení hlasitosti, snížení hlasitosti. Kromě dekódování těchto zpráv je lze také pomocí tohoto zařízení přenášet přes Infra-Red.

Krok 1: Několik informací o infračerveném protokolu NEC

Několik informací o infračerveném protokolu NEC
Několik informací o infračerveném protokolu NEC

Krátký úvod do tohoto protokolu. Protokol NEC Infra Red Remote Control se používá v mnoha zařízeních a dálkových ovladačích, které si můžete koupit. Moduluje infračervený signál na nosiči 38 kHz a používá kódování pulzní vzdálenosti pro kódování logického „1“a logického „0“. Protokol používá jednoduchou kontrolu, aby zjistil, zda je zpráva v pořádku, odesláním adresy i příkazového bajtu a převrácené verze obou v jedné a téže zprávě a kontrolou, zda jsou po přijetí stejné. Po stisknutí tlačítka na dálkovém ovladači odešle jednou kompletní infračervenou zprávu s adresou a příkazem. Pokud podržíte tlačítko stisknuté, odešle se kratší opakovaná zpráva bez adresy a informací o příkazu. Doba opakování přenášených zpráv při podržení tlačítka je pevná.

Více informací o protokolu NEC Infra Red najdete například na:

Krok 2: Požadované součásti

Požadované součásti
Požadované součásti
Požadované součásti
Požadované součásti

Pro tento projekt musíte mít následující komponenty:

  • Mikrokontrolér PIC PIC18F14K50, viz:
  • Krystal 12 MHz
  • Keramický kondenzátor: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolytický kondenzátor 47 uF/16V
  • Infračervený přijímač TSOP4838, viz:
  • Rezistory: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LED diody: 2 * infračervená, 1 žlutá, 1 zelená, 1 červená
  • Tranzistor BC640, viz:
  • Propojka (volitelně)
  • USB konektor

Podívejte se na schematický diagram připojení komponent. Pro tento projekt jsem použil prkénko, jak můžete vidět na obrázku a na videu. Obvod získává energii z USB portu počítače.

Krok 3: Software a provoz zařízení

Jak již bylo zmíněno, software je napsán pro PIC18F14K50. Bylo to napsáno v JAL. V příloze je soubor Intel Hex pro programování vašeho PIC. Software provádí následující funkce:

  • Dekódování zpráv NEC Infra-Red a odeslání do počítače přes USB. Zpráva je dekódována z bitového proudu, který je generován přijímačem Infra-Red a přeložen do zprávy + příkaz nebo zpráva opakování.
  • Odesílání zpráv NEC Infra Red přijatých z počítače přes USB. Všimněte si toho, že software také vytváří nosnou frekvenci 38 kHz, která přímo pohání infračervené LED diody. Paralelně s infračervenou LED je připojena žlutá LED, aby byl přenos zprávy viditelný.

Ve výchozím nastavení tento obvod ztlumí infračervený přijímač během přenosu infračervené zprávy. Pokud je propojka umístěna v poloze „Unmute“, deaktivuje tuto funkci ztlumení. V takovém případě bude přenášená infračervená zpráva také dekódována paralelně s přenosem a po úplném příjmu je odeslána jako přijatá infračervená zpráva do PC. Pokud je přijata platná infračervená zpráva NEC, rozsvítí se červená LED „IR OK“.

Abyste mohli toto zařízení provozovat, musíte mít na počítači program Terminal Emulator. K tomuto účelu jsem použil ‘Termite’. Když je zařízení připojeno k počítači, bude Windows 10 automaticky rozpoznáno jako další port COM, protože se zdá, že v tomto systému Windows 10 je předinstalován ovladač Microchip. Nastavení pro tento port COM by mělo být: 19200 baudů 8 bitů, 1 stop-bit, žádná parita a použití řízení toku RTS/CTS. Přenosovou rychlost lze v případě potřeby nastavit na jakoukoli jinou hodnotu, takže bude fungovat také přenosová rychlost 115200. Jakmile je zařízení nakonfigurováno prostřednictvím portu USB připojením k němu prostřednictvím programu Terminal Emulator, rozsvítí se zelená kontrolka „Configured“.

Příjem infračervených zpráv

Když je přijata infračervená zpráva, v programu Terminal Emulator se zobrazí následující:

  • „A: xx C: xx“v případě úplné zprávy, kde xx je hexadecimální číslo adresy (A) a příkazu (C). Hodnoty pro oba se mohou pohybovat od 0x00 (0) do 0xFF (255).
  • „Opakovat“v případě opakované zprávy.

Odesílání infračervených zpráv

K tomu jsem potřeboval definovat protokol, který říká zařízení, co má dělat. Protože používáme emulátor terminálu, použil jsem k definování zprávy znaky ASCII. Protokol k odeslání příkazu do zařízení používá následující formát: „! AACCRR#“, kde (všechny znaky nerozlišují velká a malá písmena):

  • „!“Označuje začátek zprávy.
  • „AA“je hodnota adresy v hexadecimálním zápisu, takže „0“až „9“a „A“až „F“,
  • „CC“je hodnota příkazu v hexadecimálním zápisu, takže „0“až „9“a „A“až „F“
  • „RR“je počet opakovaných zpráv, které je třeba přenášet v hexadecimálním zápisu, takže „0“až „9“a „A“až „F“. Hodnota „00“znamená, že se neposílá žádná opakovaná zpráva.

Příklad zprávy s adresou 0x07, příkazem 0x05 a 3 opakováními byste pak měli v programu Terminal Emulator zadat následujícím způsobem:! 070503#

Po odeslání příkazu z počítače má zařízení různé reakce:

  • „Y“znamená, že byla odeslána zpráva. Všimněte si, že tato odpověď je dána po přenosu všech zpráv - včetně všech opakování -, takže může trvat nějakou dobu, než bude tato odpověď vyslána, když je třeba odeslat mnoho opakovaných zpráv.
  • „N“znamená, že ve zprávě odeslané do počítače byl nezákonný znak.
  • „B“znamená, že infračervený přenos byl při povelu stále zaneprázdněn.
  • ? ‘Znamená, že zařízení očekávalo‘!’, Ale dostalo něco jiného.

Krok 4:

Natočil jsem krátké video ze zařízení v akci. Pro toto video jsem použil komerční LED lampu s dálkovým ovládáním, abych viděl, že vysílání i příjem fungují. Video ukazuje následující:

  • Konfigurace zařízení USB z programu Terminal Emulation. Když je zařízení nakonfigurováno, odpoví zprávou „Infračervený vysílač a přijímač USB NEC“. Na zařízení svítí zelená LED dioda, která ukazuje, že zařízení bylo konfigurováno počítačem.
  • Lampa se zapíná pomocí dálkového ovladače. K tomu dálkové ovládání používá adresu 0x00 a příkaz 0x07, které jsou dekódovány zařízením a zobrazeny na PC.
  • Lampa je vypnutá pomocí dálkového ovladače. K tomu dálkové ovládání používá adresu 0x00 a příkaz 0x06, které jsou dekódovány zařízením a zobrazeny na PC.
  • Lampa se zapne zadáním stejného příkazu dálkového ovládání na PC s hodnotou opakování 0 (žádné opakování), tedy zadáním „! 000700#“. Lampa se rozsvítí.
  • Změna barvy lampy na modrou pomocí adresy 0x00 a příkazu 0x0A a pomocí opakování 0x30. Žlutá LED dioda, která je zapojena paralelně s infračervenými LED diodami, bliká a ukazuje přenos opakované zprávy prostřednictvím infračervené. Napsaná zpráva je „! 000A30#“.

Všimněte si toho, že během nahrávání tohoto videa bylo aktivní propojovací připojení „Unmute“, takže jste mohli vidět také přenášenou zprávu „! 000700#“, přijímanou jako „A: 00 C: 07“v programu Emulace terminálu. V demo modře zbarvené lampě můžete také vidět, že červená LED dioda svítí, pokud jsou vysílány platné - opakující se zprávy, protože jsou přijímány a dekódovány souběžně s přenosem opakovaných zpráv.

Bavte se budováním vlastního projektu a těšte se na vaše reakce. Pokud se vám líbí, nezapomeňte pro tento projekt hlasovat v soutěži Dálkové ovládání 2017. Ještě jednou děkuji.

Doporučuje: