Na tento projekt byl použit X/Y (dvouosý) akcelerometr z rodiny MEMS od společnosti Freescale (o těchto akcelerometrech toho již na našem serveru bylo psáno hodně, proto doporučuji se podívat na některé starší články věnované této tématice, např. sem nebo sem ). Jako výpočetní jádro byl zvolen mikrokontrolér PIC (Microchip). Jediné, co je tak dále potřeba mimo těchto dvou komponent, je počítačová myš (klidně nefunkční) a minimum ostatních součástek (převodník úrovní aj.). Je zde také šikovně vyřešeno napájení použitím nevyužitých linek rozhraní RS-232.
Úvod:
Jak jsme si již pověděli, tento článek má za úkol ukázat praktickou aplikaci akcelerometru, a to v něčem tak obyčejném jako je počítačová myš. Ale nejprve co je to akcelerometr? Je to zařízení, které měří zrychlení nebo tah (gravitace) v určitých osách. Je hned několik způsobů, na kterých akcelerometry pracují. Byl zvolen akcelerometr MMA6270, který je založen na kapacitním způsobu snímání.
Uvnitř čipu je tříelektrodový kondenzátor, který má prostřední elektrodu volnou a její pohyb je závislý na momentu zrychlení. Tímto způsobem získáme kondenzátor, jehož kapacita je závislá na vzdálenosti prostřední elektrody od jeho krajních. Vnitřní elektronika pak převede kapacitu kondenzátoru na analogový signál 0 V – 3,3 V. Díky technologii výroby MEMS se toto vše vejde na křemíkový čip a ten do pouzdra SMD.
Jaký akcelerometr?
Výše zmiňovaný akcelerometr MMA6270 od společnosti Freescale, který je použitý v této konstrukci, obsahuje dva takovéto kondenzátory navzájem posunuté o 90°, toto nám umožňuje měřit zrychlení v osách X a Y. Je perfektní právě pro snímání pohybu myši. V tomto případě to používáme k detekci úhlu náklonu myši. Abychom toto mohli využít k pohybu kurzoru po obrazovce, musíme připojit analogový výstup z akcelerometru k AD převodníku mikrokontroléru PIC. Program, který je nahrán v tomto MCU, pak data zprávně interpretuje a pošle počítači. Obslužný program pro MCU PIC byl psán v C kompileru MicroBasicu.
Testování začalo na nepájivém poli a jak se ukázalo, zařízení pracovalo celkem spolehlivě. Později se zkusil prototyp v bezdrátové verzi, ale použité 433MHz moduly nebyly dostatečně rychlé ani spolehlivé.
Místo ovladače myši byl napsán jednoduchý program ve Visual Basicu, a to z toho důvodu, že napsat program do MCU, který by byl kompatibilní se standardem sériové myši, by bylo poněkud složitější.
Dalším problémem bylo napájení. Jak napájet celé zařízení, když sériový port neposkytuje linku se stabilizovaným napětím (třeba jako USB)? Řešení je využití kontrolních linek sériového portu, které je používaly jako Handshaking u starších zařízení (myši, klávesnice aj.). Windows při zavádění systémy tyto linky automaticky nastaví na log. „1“, pokud připojené zařízení do několika vteřin správně neodpoví, spadne úroveň na log. „0“. Každá taková linka je schopna dodat proud cca 10 mA. Problém je spíše ve velikosti dostupného napětí, které se pohybuje v rozmezí 8 V až 13 V.
Řešením bylo spojit několik těchto linek (RTS a DTR, jak je vidět na předešlém schématu) a připojit je přímo k modré diodě, která zde nahrazovala napěťový stabilizátor a upravila napětí na cca 3,4 V. To je skoro přesně, co potřebujeme k napájení samotného akcelerometru a i mikrokontrolér PIC nemá sebemenší problém se spolehlivou funkcí s tímto napájecím napětím. Jediné, čeho jsem se obával, byla správná funkce napěťového měniče MAX232, ale nakonec se ukázalo, že funguje také naprosto spolehlivě.
S MCU PIC a malým programem můžeme snímat úhel naklonění myši vůči gravitačnímu poli země. Na konstrukci jsem použil starou kuličkovou myš, za které lze rovněž použít i tlačítka, pouze je zapotřebí u jejich vývodu proškrábnout cestu na desce plošných spojů.
Závěr:
Tento mininávod měl spíše ukázat nové možnosti, jak v amatérském prostředí vyzkoušet moderní součástky a jejich použití v řetězci člověk-počítač. Jak se ukázalo, zařízení se chovalo podle očekávání, a to i velmi spolehlivě. Zatím moc výrobců, kteří by používali integrovaná čidla zrychlení (akcelerometry) k ovládání zařízení, není (Nintendo Wii a některé ovladače k PS3). Proto doufám, že schopní konstruktéři se chopí tohoto nápadu a vymyslí nějaké praktické a cenově výhodné zařízení, které by nám mohlo ulehčit ovládání počítače nebo i jiného elektronického zařízení.
Odkazy & Download:
- Domovská stránka výrobce akcelerometrů - http://www.freescale.com
- Datasheet akcelerometru MMA6270 (*.pdf, 137kB)
- Zdrojový kód pro MCU PIC (*.txt, 570B)
- Zdrojové kódy pro Visual Basic (*.zip, 3kB)
Komentáře
kiks
No, cetl jsem clanek tam i zpet, ale tohle: "A jaké jsou výhody a nevýhody takto „vytuněné“ myši." jsem se teda opravdu nedozvedel.
Třeba, že to bude fungovat
Třeba, že to bude fungovat na jakémkoli povrchu (třeba i ve vzduchu), ale spíš je to inspirace...