Moudře hlavou pokýval…

Navážu na minulý zápisek o Digisparku. Psal jsem, že ukážu, k čemu ho použít. Ale než se dostanu k tomu, co zamýšlím, tak dovolte jednu takovou hračku.

Před časem mě zaujal návod na Instructables, kde autor ukazoval, jak si postavit Head Mouse – zjednodušeně řečeno zařízení, kde nakláněním hlavy ovládáte kurzor myši. Ono to takhle zní jako děsně velká geekovina, ale udělaný je to jednoduše. Autor použil normální MPU-6050 a k tomu nějaké Arduino, které má procesor ATmega32u2. V tom „U2“ je celé kouzlo – tyhle procesory totiž mají řadič pro USB Device, a můžete je naprogramovat tak, že se chovají kupříkladu jako USB HID. HID, pro ty méně znalé, je Human Interface Device, tedy méně vznešeně: klávesnice, myš, joystick…

Střih. Digispark má USB připojený přímo k ATtiny. To znamená, že můžete využít třeba V-USB a podobné knihovny, které vytvoří jednoduché USB zařízení ryze softwarově. HID jsou poměrně jednoduchá, a tak se do osmi kil, co Digispark má, pohodlně vejdou. Můžete se podívat na demo: Digispark Keyboard, Digispark Mouse, DigisparkJoystick. Hned jsem s tím experimentoval, a ono to fungovalo! Takže jsem nejdřív dělal různé blbůstky, jako USB klávesnici, co píše vzkazy, nebo náhodný pohyb myší, a pak jsem zkusil, jestli by to nešlo dohromady s tím MPU-6050. A co byste řekli? Šlo to!

Musel jsem udělat drobnou úpravu – do souboru I2Cdev.h dopsat na začátek

a změnit Mouse na DigiMouse. Důležité bylo nahradit „delay“ za „DigiMouse.delay()“ – bez toho softwarová obsluha USB nepoběží.

Celé dohromady to fungovalo na první zapojení. Nejdřív jsem se lekl, kam mi ustřelil kurzor, a pak jsem ho mírným nakláněním desky s akcelerometrem šoupal po obrazovce… No nádhera. Ovládat bych tím nic nechtěl, ale jako hračka je to dostatečně krásné.

banner