Univerzální dálkové ovládání (2012)

Remote

Pro novější projekty jsem potřeboval i rozumnější možnost ovládání než pomocí IR vysílače k televizi, s tím by se člověk umačkal. Navíc neumí spojité hodnoty. Proto jsem se rozhodl postavit si vlastní dálkové ovládání. Nejprve jsem si koupil moduly pro pásmo 867MHz, avšak s těma se mi nedařilo fungovat dle mých představ. Nakonec jsem se rozhoupal a koupil si dva dražší Xbee moduly a shield pro arduino (modul je na 3.3V a má malou rozteč pinů). Potřeboval jsem i druhý mikroprocesor. Rozhodl jsem si koupit starší model od arduina - Duemilanove, které svou výbavou akorát vycházelo mým potřebám.

Pokud vás zajímá programování Xbee modulů, určitě se mi ozvěte, a já o tom sepíšu článek.

Jako kostru jsem použil darované nefunkční ovládání od Vaška Fiedlera, které se mi válelo ve skříni již řadu let. Jelikož jsem však nedokázal vše ,,nacpat" do vymezeného prostoru, vyložil jsem mezi horní a dolní díl hliníkový pruh. Ten jsem sestavil z dílů vyřezaných z hliníkové lopaty zakoupené v zemědělských potřebách. Ovládání tak nabylo na tloušťce, avšak stále se vejde v pohodě do ruky. Po natření na černo ovládání z dálky ani nevypadá tak špatně...

Do horního dílu jsem umístil 6 spínačů, 4 tlačítka a 4 potenciometry. Další dva potenciometry (na řízení) pak do tohoto dílu projdou při složení ovládání. Přidal jsem i dvě signalizační diody. Červená indikuje, že ovládání není připojeno k žádnému protikusu, zelená značí úspěšné připojení. Posuvné spínače jsem do krytů přichytil nejdříve slabým vázacím drátkem. Poté jsem vše, co šlo, zalil poctivou vrstvou silikonu pomocí tavící pistole. Jistota je jistota. V horním krytu se nachází ze přední strany spínač ovládání (přívod napájení). Ve spodním krytu je pak přepínač, který připojuje modul Xbee na piny USART procesoru. Ty je potřeba spínačem odpojit, když se přeprogramovává procesor.

Komunikace mezi procesory probíhá pomocí svou Xbee modulů pracujících na frekvenci 2.4GHz. Prvním a nejsložitějším krokem je tyto dva moduly správně spárovat. Modul v ovládání pracuje v režimu master, modul v koncovém zařízení pak v režimu slave. Tyto moduly automaticky zajišťují ověřovaný přenos dat, konektivitu, autorizaci a zabezpečení.

Dalším úkolem bylo vymyslet a následně naimplementovat přenosový protokol mezi dvojicí modulů. Mnou navržený protokol vysílá pakety ověřující konektivitu, pakety s daty a pakety potvrzující přijetí dat. Tímto mechanismem je hlídáno, že obě koncová zařízení o sobě ví, a že jsou spárovaná. Každý paket se skládá ze tří bajtů. První obsahuje typ paketu (2b) a číslo paketu (6b). Další dva bajty odpovídají příkazu (6b) a hodnoty (10b). Tímto rozpoložením lze tedy vysílat celkem 2^6 = 64 různých příkazů. Nic však nebrání upravit konstantu v knihovně a posílat příkazů víc. 10bitová hodnota určuje číslo v rozsahu 0 až 1023, což je právě rozlišení ADC převodníku procesoru a představuje dostatečnou množinou hodnot.

Na začátku probíhá zasílání paketů ověřujících spojení. Po přijetí dané odpovědi jsou zařízení mezi sebou propojena. Následuje periodické vyčítání vstupů a porovnávání s poslední poslanou hodnotou. Pokud se nějaký vstup procesoru liší, je vygenerován paket odpovídající danému příkazu a nové hodnotě. Ten je zaslán do protějšího zařízení a je očekáváno potvrzení přijetí. Současně probíhá ještě periodické zasílání paktu testujícího konektivitu (pro případy, kdy se žádné vstupy nemění). Pokud ovládání nedostane v daném čase patřičnou odpověď, přejde opět do stavu sestavování připojení (signalizováno červenou diodou).

Níže překládám schéma zapojení, informace o zapojení a zdrojové kódy pro testovací aplikaci vstupů (bez zapojení modulu Xbee) s výstupem do konzole. Dále přikládám soubor použitý v ovládání využívající knihovny RemoteTX a Xbee, jejichž kód naleznete v sekci SW - knihovny. První knihovna se stará o čtení vstupů a ukládání hodnot do mezipaměti, druhá pak o komunikaci s druhým modulem.

Kliknutím na název zobrazíte zdrojový kód
Remote-test.pde: test arduino project
Download
Remote.pde: arduino project
Download
Remote.pdf: informace o zapojení
Download
Remote.brd: eagle board
Download

Vrchní kryt ovládání
Vrchní kryt ovládání
Příchytky na elektorniku v horním díle
Příchytky na elektorniku v horním díle
Spodní díl ovládání
Spodní díl ovládání
Držák na baterie ve spodním díle
Držák na baterie ve spodním díle
Uchycení procesoru
Uchycení procesoru
Potenciometry pro řízení
Potenciometry pro řízení
Uchycení potenciometrů pro řízení
Uchycení potenciometrů pro řízení
Xbee modul
Xbee modul
Finální zapojení elektoniky
Finální zapojení elektoniky
Hotové ovládání
Hotové ovládání
Schéma desky s elektronikou
Schéma desky s elektronikou

Go back to Arduino