Kdo by neznal joystick? Joystick je vstupní zařízení, které je jedním z hlavních druhů herních ovladačů. Pracuje na principu páčky, která se naklápí na své základně a tím udává úhel a směr. Kromě analogového signálu určeného náklonem páčky jsou na joysticku často i tlačítka, která svým digitálním signálem doplňují řídicí informace. Joysticky jsou často používány nejen pro ovládání videoher, ale i pro ovládání robotů a jiných manipulátorů. V naší lekci použijeme jednoduchý PS2 joystick.
Námi použitý modul joysticku je vytvořen dvojicí potenciometrů, které budou generovat dva analogové výstupy (odpovídající náklonu v osách X a Y). Digitální výstup je zastoupen jediným tlačítkem, které stiskneme zatlačením ovládací páčky ve směru osy Z. Náklon páčky budeme načítat jako dva nezávislé analogové signály, naopak stisknutí páčky budeme načítat některým z digitálních vstupů modulu Arduino. Získané údaje budeme vypisovat na sériový port a načítat sériovým monitorem spuštěným na připojeném počítači.
Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu. Jednotlivé vodiče propojení modulu Arduino a modulu joysticku zachycuje tabulka.
Blokové schéma
Elektronické schéma
Joystick PS2 | modul Arduino |
---|---|
VRX | A0 |
VRY | A1 |
SW | 8 |
VCC | 5V |
GND | GND |
Krok 2: V prostředí mBlock vytvoříme následující program.
Program lze stáhnout z:
http://
Princip programu je asi již jasný při prvním pohledu na kód – to je skutečná výhoda blokového programování. V hlavní nekonečné smyčce „opakuj stále“ se neustále načítají stavy analogových pinů A0
a A1
a načtená hodnota je rovnou odesílána na výstup sériového portu. Stejně tak je tomu i v případě načítání digitálního pinu 8
, který je však nastaven do režimu INPUT_PULLUP (vstup je „držen“ interním pull-up rezistorem na hodnotě 5 V odpovídající logické úrovni HIGH). Stisknutím tlačítka vstup přizemníme na hodnotu LOW. Před odesláním údajů o směrech náklonu jsou k nim připojeny popisky, aby po vytištění v okně sériového monitoru dávaly smysl.
Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem .
Krok 4: Nyní modul Arduino odpojíme od prostředí mBlock pomocí tlačítkem . USB kabel modulu Arduino ale od počítače neodpojujeme!
Krok 5: Spustíme na počítači aplikaci Serial Monitor. V Serial Monitoru vybereme port, na které je náš modul Arduino (např. COM5) připojen a nastavíme komunikační rychlost na hodnotu 115200 baudů. Na závěr se tlačítkem Connect připojíme k modulu Arduino. Objeví se následující okno sériového monitoru.
Krok 6: Nyní budeme hýbat joystickem a v okně sériového monitoru můžeme sledovat, jak se vypisují postupně se měnící údaje o náklonu ve směru os X a Y. Když joystick stiskneme, uvidíme, že se zobrazí v okně sériového monitoru souřadnice Z: 0.