Tartalomjegyzék:

USB NEC infravörös adó és vevő: 4 lépés (képekkel)
USB NEC infravörös adó és vevő: 4 lépés (képekkel)

Videó: USB NEC infravörös adó és vevő: 4 lépés (képekkel)

Videó: USB NEC infravörös adó és vevő: 4 lépés (képekkel)
Videó: University of Pittsburgh Patient & Family Program on POTS 2024, November
Anonim
USB NEC infravörös adó és vevő
USB NEC infravörös adó és vevő

Ez a projekt egy másik projekt folytatása, amelyen dolgozom, és mivel van egy Remote Control 2017 verseny az Instructables témában, gondoltam közzéteszem ezt a projektet. Tehát, ha tetszik ez a projekt, kérjük, szavazzon rá. Kösz.

Mint talán tudja, nagy rajongója vagyok a Microchip 8 bites PIC vezérlőinek, lásd:

A JAL programozási nyelvet használom, mivel úgy néz ki, mint a Pascal (ami szintén tetszik). A JAL -fordító és a könyvtárak letölthetők innen: https://www.justanotherlanguage.org/downloads (görgessen lefelé a legutóbbi verzióért).

Általában magam írom le az összes kódot, hogy teljesen megértsem, mit csinálok, de ehhez a projekthez csatlakoztatnom kellett a PIC -t a számítógép USB -portjához, ezért szükségem volt egy JAL USB soros illesztőprogramra ehhez a PIC vezérlőhöz. Az USB soros illesztőprogramot használtam a JAL letöltési csomagban, ami úgy tűnik, jól működik. Mivel ez az USB soros illesztőprogram egy adott PIC -hez készült, ezt a PIC -t használtam, amely a PIC18F14K50. Ez a vezérlő sokkal több funkcióval rendelkezik, mint amire szükségem van ehhez a projekthez, ezért jelenleg azon dolgozom, hogy ezt az USB -illesztőprogramot egy egyszerűbb PIC -verzión, a PIC16F1455 -en dolgozzam, ami szintén olcsóbb.

Tehát miről is szól ez a projekt? Az ebben az utasításban említett eszközzel infravörös távirányító parancsokat küldhet és fogadhat a számítógépről és a számítógépre az USB-porton keresztül a népszerű NEC infravörös protokoll használatával. Ily módon figyelemmel kísérheti az infravörös parancsokat, és vezérelhet minden olyan eszközt, amely a NEC infravörös távirányító protokollt használja. A projekt dekódolja és lefordítja az infravörös üzeneteket címbájtra és parancsbájtra, vagy ismétlődő üzenetté. A címet természetesen egy bizonyos eszköz, például TV vagy rádió címzésére használják, ahol a parancsbájt jelzi a végrehajtandó funkciót, például a Hangerő növelése, Hangerő csökkentése funkciót. Ezen üzenetek dekódolása mellett az eszköz segítségével infravörös kapcsolaton keresztül is továbbíthatók.

1. lépés: Néhány információ a NEC infravörös protokollról

Néhány információ a NEC infravörös protokollról
Néhány információ a NEC infravörös protokollról

Ennek a protokollnak a rövid bemutatása. A NEC infravörös távirányító protokollt számos megvásárolható eszközben és távirányítóban használják. Infravörös jelet modulál 38 kHz -es vivőn, és impulzus távolság kódolást használ a logikai „1” és a „0” logikai kódolásához. A protokoll egyszerű ellenőrzést végez annak ellenőrzésére, hogy az üzenet rendben van -e, elküldve mind a címet, mind a parancsbájtot, mind a fordított változatát egy és ugyanazon üzenetben, és ellenőrzi, hogy a fogadás után megegyeznek -e. Ha megnyom egy gombot a távirányítón, akkor egy teljes infravörös üzenetet küld a címmel és a paranccsal. Ha a gombot lenyomva tartja, rövidebb ismétlődő üzenetet küld a cím és a parancsadatok nélkül. Az átvitt üzenetek ismétlési ideje a gomb nyomva tartása mellett rögzített.

További információ a NEC Infra Red protokollról például a következő címen található:

2. lépés: Szükséges összetevők

Szükséges összetevők
Szükséges összetevők
Szükséges összetevők
Szükséges összetevők

Ehhez a projekthez a következő összetevőkkel kell rendelkeznie:

  • PIC mikrokontroller PIC18F14K50, lásd:
  • Kristály 12 MHz
  • Kerámia kondenzátor: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolit kondenzátor 47 uF/16V
  • Infravörös vevő TSOP4838, lásd:
  • Ellenállások: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LED -ek: 2 * infravörös, 1 borostyánsárga, 1 zöld, 1 piros
  • A BC640 tranzisztor, lásd:
  • Jumper (opcionális)
  • USB csatlakozó

Tekintse meg az alkatrészek csatlakoztatásának vázlatos diagramját. Kenyérsütőt használtam ehhez a projekthez, amint az a képen és a videóban is látható. Az áramkör a PC USB -portjáról kap energiát.

3. lépés: A szoftver és az eszköz működése

Amint már említettük, a szoftver PIC18F14K50 -hez készült. JAL -ban írták. A PIC programozására szolgáló Intel Hex fájl csatolva van. A szoftver a következő funkciókat látja el:

  • A NEC infravörös üzenetek dekódolása és elküldése a számítógépre USB-n keresztül. Az üzenet dekódolása az infravörös vevő által generált bitfolyamból történik, és cím + parancsüzenet vagy ismétlődő üzenet lesz.
  • A számítógépről kapott NEC infravörös üzenetek küldése USB -n keresztül. Vegye figyelembe, hogy a szoftver létrehozza a 38 kHz-es vivőfrekvenciát is, amely közvetlenül hajtja az infravörös LED-eket. Az infravörös LED-del párhuzamosan sárga színű LED van csatlakoztatva, hogy láthatóvá tegye az üzenetet.

Alapértelmezés szerint ez az áramkör elnémítja az infravörös vevőt az infravörös üzenet küldése közben. Ha egy jumpert az „Némítás feloldása” pozícióba helyez, az letiltja ezt a némítási funkciót. Ebben az esetben az átvitt infravörös üzenet dekódolásra kerül az adással párhuzamosan, és a teljes vétel után fogadott infravörös üzenetként kerül elküldésre a számítógépre. Ha érvényes NEC infravörös üzenet érkezik, a piros „IR OK” LED kigyullad.

Az eszköz működéséhez Terminal Emulator programmal kell rendelkeznie a számítógépen. Erre a célra a "Termite" -t használtam. Amikor az eszközt a számítógéphez csatlakoztatja, a Windows 10 automatikusan felismeri azt egy kiegészítő COM-portként, mivel úgy tűnik, hogy ehhez az eszközhöz Microchip-illesztőprogram van előre telepítve. Ennek a COM-portnak a beállítása: 19200 baud 8 bit, 1 stop-bit, nincs paritás és RTS/CTS flow control. Szükség esetén az átviteli sebesség bármilyen más értékre is beállítható, így a 115200 -as átviteli sebesség is működik. Ha az eszköz konfigurálása az USB -porton keresztül történik, és a terminál -emulátor programon keresztül csatlakozik hozzá, a zöld „Konfigurált” LED kigyullad.

Infravörös üzenetek fogadása

Amikor infravörös üzenet érkezik, a következő jelenik meg a Terminal Emulator programban:

  • „A: xx C: xx” teljes üzenet esetén, ahol xx a cím (A) és parancs (C) hexadecimális száma. Mindkettő értéke 0x00 (0) és 0xFF (255) között lehet.
  • „Ismétlés” ismétlődő üzenet esetén.

Infravörös üzenetek küldése

Ehhez meg kellett határoznom egy protokollt, amely megmondja a készüléknek, hogy mit kell tennie. Mivel terminál emulátort használunk, ASCII karaktereket használtam az üzenet meghatározásához. A parancsnak az eszközre küldésére szolgáló protokoll a következő formátumot használja: '! AACCRR#', ahol (minden karakter megkülönbözteti a kis- és nagybetűket):

  • A "!" Jelzi az üzenet kezdetét.
  • Az „AA” a cím értéke hexadecimális jelölésben, így „0” –9 és „A” –F,
  • A „CC” a parancs értéke hexadecimális jelölésekben, így „0” - „9” és „A” - „F”
  • Az „RR” az ismétlődő üzenetek száma, amelyet hexadecimális jelöléssel kell továbbítani, tehát „0” - „9” és „A” - „F”. A „00” érték azt jelenti, hogy nincs ismétlődő üzenet.

Egy példát a 0x07 című üzenetre, a 0x05 parancsra és a 3 ismétlésre a következőképpen kell beírni a Terminal Emulator programban:! 070503#

Az eszköz különböző válaszokat ad a parancs elküldése után a számítógépről:

  • Az „Y” azt jelenti, hogy üzenetet továbbítottak. Ne feledje, hogy ezt a választ az összes üzenet - beleértve az ismétlést is - elküldése után adják meg, így eltarthat egy ideig, mire ez a válasz megtörténik, ha sok ismétlődő üzenetet kell továbbítani.
  • Az „N” azt jelenti, hogy illegális karakter volt a PC -hez küldött üzenetben.
  • A „B” azt jelenti, hogy az infravörös adás még foglalt volt a parancs kiadásakor.
  • ?”Azt jelenti, hogy a készülék„!”-T várt, de mást kapott.

4. lépés:

Készítettem egy rövid videót a készülék működéséről. Ehhez a videóhoz egy kereskedelmi LED -es lámpát használtam a távirányítójával, hogy lássam, hogy mind az átvitel, mind a vétel működik. A videó a következőket mutatja be:

  • Az USB -eszköz konfigurálása a terminálemulációs programból. Amikor az eszköz konfigurálva van, az „USB NEC infravörös adó és vevő” üzenettel válaszol. A készüléken a zöld LED világít, jelezve, hogy az eszközt a számítógép konfigurálta.
  • A lámpát a távirányítóval kapcsolják be. Ehhez a távirányító a 0x00 címet és a 0x07 parancsot használja, amelyet az eszköz dekódol és megjelenít a számítógépen.
  • A lámpa a távirányítóval kikapcsol. Ehhez a távirányító a 0x00 címet és a 0x06 parancsot használja, amelyet az eszköz dekódol és megjelenít a számítógépen.
  • A lámpa akkor kapcsol be, ha ugyanazt a távirányító parancsot írja be a számítógépen 0 ismétlési értékkel (nincs ismétlés), tehát írja be a „! 000700#” értéket. A lámpa felkapcsol.
  • A lámpa színének megváltoztatása kékre a 0x00 cím és a 0x0A parancs használatával, valamint a 0x30 ismétlés használatával. Az Infravörös LED -ekkel párhuzamosan csatlakoztatott sárga LED villog, jelezve az ismétlődő üzenet infravörös kapcsolaton keresztüli továbbítását. A gépelt üzenet '! 000A30#'.

Vegye figyelembe, hogy ennek a videónak a rögzítésekor az „Unmute” jumper kapcsolat aktív volt, így az „! 000700#” üzenetet is láthatta, amely „A: 00 C: 07” néven érkezett a terminálemulációs programban. A kék színű lámpa bemutatójában azt is láthatja, hogy a piros LED mindaddig világít, amíg az érvényes - ismétlődő - üzenetek továbbításra kerülnek, mivel azokat az ismétlődő üzenetek átvitelével párhuzamosan fogadják és dekódolják.

Jó szórakozást a saját projekt felépítéséhez, és várom a reakcióit. Ne felejtse el szavazni erre a projektre a Remote Control 2017 versenyen, ha tetszik. Köszönöm mégegyszer.

Ajánlott: