Univerzální dálkové ovládání, verze 2 (2014)

RemoteController

Jelikož mi předchozí verze dálkového ovládání přestávala vyhovovat a měl jsem vyhlídnuté nějaké součástky, rozhodl jsem se postavit dálkové ovládání nové, samozřejmě lepší. Oproti předchozí verzi jsem chtěl rozhodně více ovládacích prvků a LCD display.

Během rutinního procházení technických katalogů jsem narazil na malý joystick, který mi vlastně celou tu myšlenku nového dálkového ovládání spustil. Jedná se o prvek běžný z herních konzolí – sestává ze dvou trimrů a tlačítka.

Následoval výběr LCD display. Jelikož jsem chtěl mít ovládání co nejméně žravé, rozhodl jsem se pro verzi bez podsvícení. Navíc jsem chtěl mít LCD display vypínatelný úplně. Zvolil jsem nakonec rozměr 16x2 znaků. Nad tento display se mi pohodlně vešlo 6 spínačů a pod něj 4 potenciometry. Zbývající prostor pod joysticky jsem využil k umístění vždy čtveřice tlačítek na každou stranu.

Jelikož jsem si koupil další XBee modul, říkal jsem si, že je škoda jej nevyužít. Vznikla tedy myšlenka ovládání více XBee zařízení zároveň. Nakonec jsem se z praktických i prostorových důvodů rozhodl, že budu podporovat až 4 různá koncová zařízení. Pro výběr zařízení jsem tedy vždy přidal další tlačítko a led diodu signalizující stav koncového zařízení.

Nyní však nastal problém, jak toto vše narvat do rozumného prostoru. Už samotný procesor, kryt na baterie a jednotlivé komponenty (spínače, display, …) zaberou spoustu místa. Navíc jsem si navolil větší počet ovládacích prvků, než je počet použitelných pinů na procesoru STM32F100, který jsem si pro ovládání zvolil. Spínače a tlačítka jsem tedy musel multiplexovat do matice.

Po prvním návrhu hlavního modulu, kam jsou přivedeny veškeré periferie, jsem si uvědomil, že takto velikou destičku jen tak nikam neumístím. Sebral jsem tedy všechnu svoji odvahu a navrhl jsem svůj vůbec první oboustrannou desku plošných spojů, u které se mi povedlo zredukovat rozměry téměř na polovinu. Nutno říci, že výroba takovéto desky v domácích poměrech bez žádného složitého vybavení byla docela fuška, ale povedlo se.

Po prvním sestavení do ručně vyřezaných polotovarů krabiček jsem zjistil, že ovládání nezavřu kvůli spletitému bludišti všemožných vodičů. Musel jsem tedy přepracovat umístění jednotlivých komponent. Rozhodl jsem se umístit hlavní modul přímo nad display – k tomu mi posloužila obyčejná gumička. Veškeré vodiče od periferií do tohoto modulu tak zůstaly v horním díle a šly proplést mezi jednotlivými prvky. Nyní, již šlo ovládání rozumně uzavřít.

Další překážkou v zprovoznění bylo naprogramování komunikace mezi více XBee moduly zároveň. Snažil jsem se najít knihovny, leč nic rozumného jsem nakonec nesehnal. Nezbylo mi nic jiného, než si nastudovat komunikační možnosti XBee. Vybral jsem si přenos v API režimu pomocí paketů. Nastudoval jsem si tedy všechny běžně používané pakety a naprogramoval knihovnu, která obhospodařuje veškerou komunikaci mezi jednotlivými XBee moduly. Toto bylo, musím říct velmi pracné, poněvadž již samotné nastavení modulů dalo zabrat, nemluvě pak o programování kompletní komunikace.

Nicméně, vše se povedlo dotáhnout do úspěšného konce. Ovládání má tedy dohromady 24 kanálů:

Kliknutím na název zobrazíte zdrojový kód
RemoteController.c: main file
Download
RemoteController.h: header file
Download
RemoteController.pdf: documentation
Download

Joystick s tlačítkem
Joystick s tlačítkem
Pocínovaná spodní deska spojů hlavního modulu
Pocínovaná spodní deska spojů hlavního modulu
Osazený hlavní modul
Osazený hlavní modul
Pilotní verze ovládání v kartonu
Pilotní verze ovládání v kartonu
Odvrtávání děr v krytu
Odvrtávání děr v krytu
Ručně vyřezané kryty pro ovládání
Ručně vyřezané kryty pro ovládání
Osazení joystick a držáku na baterie
Osazení joystick a držáku na baterie
První verze s hlavím modulem a procesorem vedle sebe
První verze s hlavím modulem a procesorem vedle sebe
Částečně připojené periferie
Částečně připojené periferie
Vodiče periferií horního dílu
Vodiče periferií horního dílu
Osazený horní díl ovládání
Osazený horní díl ovládání
Nové umístění hlavního modulu
Nové umístění hlavního modulu
Nové umístění mikroprocesoru, rozvod napětí
Nové umístění mikroprocesoru, rozvod napětí
Finální propojení periferií, hlavního modulu a mikroprocesoru
Finální propojení periferií, hlavního modulu a mikroprocesoru
Výsledná realizace dálkového ovládání
Výsledná realizace dálkového ovládání
Šablona pro montáž komponent / Topologie
Šablona pro montáž komponent / Topologie
Deska plošných spojů - spodní vrstva
Deska plošných spojů - spodní vrstva
Deska plošných spojů - vrchní vrstva
Deska plošných spojů - vrchní vrstva

Go back to STM32