Fórum témák
» Több friss téma |
Cikkek » Távirányító jelének fogadása uC-vel Távirányító jelének fogadása uC-vel
Szerző: lazsi, idő: Ápr 12, 2010, Olvasva: 18737, Oldal olvasási idő: kb. 2 perc
Egy DVD-hez használatos távirányító jeleinek fogadása ATMEL ATTiny2313 mikrokontrollerrel. ASM programlista mellékelve. A programozásban kevésbé járatosak számára részletes magyarázattal.
A közelmúltban kezembe került egy távirányító. Eredetileg egy Orion 2602 típusú DVD-hez készült, de a lejátszó már rég nem működik. Az az ötletem támadt, hogy fel lehetne használni valamire... Első lépésként kerestem egy hozzá illő vevőt. Több, régi TV-ből és képmagnóból kiszerelt egységem is van, csak a megfelelőt kellett kiválasztani hozzá. Persze kiszerelhetném a rossz DVD-lejátszóból is... A megfelelő működéshez elengedhetetlen, hogy az adó és a vevő "egy nyelvet beszéljenek". Oszcilloszkópon néztem a vevő kimenetét, miközben a távirányítón különböző gombokat nyomogattam. Elvileg vannak szabványosított protokollok, mint például az RC5, de ez mást használ. Sajnos nem találtam leírást ehhez a típushoz, így kénytelen voltam visszafejteni. Az egyik bitet egy 1.5ms vagy 2ms hosszú impulzus adja, a másikat két impulzus, amik közül az egyik 0.6ms, a másik 1.1ms hosszú. Leírás hiányában felhatalmazva éreztem magamat, hogy szabadon döntsek melyik az "1" és melyik a "0" értelmű bit. Minden gombnyomásra pontosan 14 bitet küld el az adó. A 14 bit közül az utolsó 7 bit változik a gomboktól függően, az első 7 bit szigorúan csak két értéket vehet fel (124 vagy 76). Ha a gombot folyamatosan nyomva tartom, akkor ugyanazt ismétli. Ha felengedem és akár ugyanazt, akár másik gombot nyomok meg, akkor az első 7 bit átvált a másik értékre. Ennek azért van jelentősége, mert így a feldolgozó egység meg tudja különböztetni ezt a kétféle módot egymástól. A programom ezt nem használja ki, a teljes 14 bitet elküldi egy PC-nek két, 8 bites értékként, de ezt később részletezem. Alább látható két, tipikusnak mondható jelsorozat. Az első az "Open/Close", a második az "1" gomb. Elvileg bármilyen távirányító jele visszafejthető megfelelő vevő és egy oszcilloszkóp segítségével. Oszcilloszkóp hiányában a vevő kimenőjele (a megfelelő szintillesztés után) egy PC hangkártyájával is feldolgozható (bár ezt nem próbáltam). Miután tudjuk, hogy mi érkezhet, csupán fel kell ismerni az egyes biteket. Ez a mikrokontrollerünk dolga lesz. Miután azonosította a jelsorozat bitjeit, fel kell dolgoznia a kapott parancsot. Ez a része a dolognak már azon múlik, hogy ténylegesen mire is akarom használni. Amit itt bemutatok, az erre a részre már nem tér ki, egyszerűen átküldi egy PC-nek a vett kódot. Mindezt megteheti RS232-n, vagy USB-n keresztül. Én ez utóbbit választottam, mert a gépemen csupán egy soros port van, és azt a programozóm használja. A uC Rx, Tx kivezetéseire egy FT232 típusú USB illesztőt kötöttem, de a helyére kerülhetne akár egy RS232 illesztő is, az a programban nem okozna változtatást. A mellékelt rajzon mindkettő szerepel. Mikrokontrollernek az ATTiny2313 típust választottam, mert olcsó, ide tökéletesen elég és mert ATMEL-hívő vagyok. A programot más AVR-re könnyű áttenni, de a folyamatábra alapján akár más gyártmányú uC-re is alkalmazható (pl. PIC-re). A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |