Josef Kufner

Autíčko

Ovládací program

Tento program vznikl za účelem ovládání modelu autíčka na dálkové ovládání. Použitý model autíčka je velmi jednoduchý, umí jezdit pouze dopředu nebo dozadu, přičemž dozadu zatáčí. Program je ale uzpůsoben k ovládání i složitějších modelů a připraven na připojení autíčka, které by umělo zatáčet na obě strany a další vymoženosti. Úpravu pro jiné modely lze provédst v souboru "auticko.c" a v souborech "ui*.c" a "ui*.h" jsou funkce pro reakce na stisky kláves nebo pohyb veselé páčky (joysticku) - joystick je obsluhován skrze drivery v jádře, takže je jedno co je to za joystick, hlavně musí bít načteny potřebné moduly (tj. pokud "cat /dev/js0" vypisuje hromadu bordelu při pohybu pákou joysticku, tak funguje).


[screenshot]

Program je celkově navržen tak, aby sloužil jako uživatelské rozhraní pro ovládání nejrůznějších modelů a aby úpravy programu byly co nejmenší. V podstatě je třeba upravit jedno pole, kde je definováno co se má provédst při stisku jaké klávesy a jeden soubor, kde je kód obsluhující jednotlivé funkce.

Připojení ovladače autíčka

Použil jsem asi to nejjednodušší zapojení, které jsem mohl. Toto zapojení je vhodné pokud je vysílač navržen tak, aby jeho činnost byla ovládána pouze připojením napájení (to je případ i mého jednoduchého modelu).


[Schéma zapojení]

Vysílačku přippojíme na svorky A a B tak, aby byl přemostěn spínač v ovladači a také si dejte pozor na správnou polaritu napájení (plus je na A). Výstup z počítače je připojen na vstup In. Jako výstup z počítače lze použít sériový port -- linky DTR (pin 4 na Cannon9), případně RTS (pin 7 na Cannon9), GND je pin 5 na Cannon9. Ale pokud použijete linku RTS budete muset upravit soubor auticko.c (řádek 60) na outb((arg != 0) << 1, ba + 4);

K ovladači je třeba připojit zdroj, pokud se nechcete moc pohybovat přijde vhod adaptér. Napětí zdroje by mělo být asi o 1V vyšší než z baterie, kterou byl ovladač původně napájen (ten volt kvůli tranzistoru -- nikdy nesepne úplně dokonale). V přípaďe, že máte po ruce zdroj vyššího napětí než jaké bylo původní, postačí připojit k vysílačce předřadný odpor. Také není příliš dobré svorky A a B zkratovat -- když jse mi to jednou omylem povedlo, tak jsem ten tranzistor už nenašel. Maximální proud, který zde použitý tranzistor vydrží, je 100mA, maximální napětí je 45V a cena je přibližně 1,50Kč.

Tento způsob ovládání nevyžaduje žádné úparvy v autíčku. Pokud byste chtěli ovládat složitější modely, tak stojí za úvahu, zda nepřidat do autíčka některý z mikrořadičů a pak připojit vysílačku na linku TxD, čímž by vznikla bezdrátová prodlužovačka sériového portu a program na straně vysílače by byl o něco jednoduší.

Varianta pro složitější ovladače

Pokud máme autíčko, které umí jezdit všemi směry (tj. vlevo, vpravo, dopředu, dozadu a nikam), je situace trochu složitější. Spínače páček nebývají tak lehce nahraditelné tranzistorem a povětšinou to nefunguje úplně dokonale (pokud vůbec).

Řešení jsou dvě. Buď můžeme vykoumat jak jsou spínače pod páčkama zapojeny a podle toho tam nacpat součástky, nebo nic zkoumat nebudeme a mezi vysílač a předchozí zapojení dáme ještě staré dobré relátko (stačí s jedním spínacím nebo rozpínacím kontaktem). Cívku relé připojíme na svorky A a B (viz předchozí zapojení) a antiparalelně (tj. v závěrném směru) k němu ochranou diodu, aby likvidovala indukované špičky napětí při vypnutí relátek. Pak kontakt pod páčkou nahradíme kontaktem relé.

Toto řešení však vyžaduje 4 výstupní linky na portu a ty sériový port nemá. Takže musíme použít port paralelní a upravit ovládací program (konkrétně soubor auticko.c funkce Auticko_Send_Command).

Download