Lekce 16
Joystick PS2

Serial Monitor - ikona

Úvod

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.

joystick PS2

Použité komponenty

  • modul Arduino
  • USB kabel
  • joystick PS2
  • vodiče typu „samec-samice“

Princip

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.


Postup experimentu

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

Blokove schema

Elektronické schéma

Elektronicke schema
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.


ikona vysvetleni Vysvětlení kódu

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 tlacitko nahrat.

Krok 4: Nyní modul Arduino odpojíme od prostředí mBlock pomocí tlačítkem tlacitko odpojit. 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.

seriovy monitor

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.

Pohled na experiment