- Szükséges alkatrészek
- Arduino Leonardo
- Dual Axis XY joystick modul
- Kördiagramm
- Kód és működési magyarázat
Korábban összekötöttük a Joystickot az Arduino UNO-val, hogy megértsük a működését, és négy LED-et vezéreltünk a bal, jobb, fel és le mozgásban. Ebben a projektben ugyanazt a joystickot fogjuk használni, mint a Gamepad vagy a játékvezérlőt bármilyen számítógépes játékhoz, amely bal, jobb, fel és le mozgást igényel. Több olyan vezérléshez szükséges játékok lejátszásához két vagy több joystick használható. Itt Arduino Leonardót fogjuk használni a Joystick interfészhez játékvezérlőként. Az Arduino Leonardo előnye az Uno-val szemben, hogy USB-illesztőprogramokat telepíthetünk rá, és a számítógép csatlakozáskor egérként, billentyűzetként vagy joystickként is felismerhető.
Szükséges alkatrészek
- Arduino Leonardo
- Dual Axis XY joystick modul
- Arduino IDE
- Csatlakozó vezetékek
Arduino Leonardo
Ehhez a projekthez az Arduino Leonardot használjuk, ez egy mikrokontroller kártya, amely az ATmega32u4-en alapul. 20 digitális bemeneti / kimeneti csatlakozóval rendelkezik (ebből 7 használható PWM kimenetként, 12 pedig analóg bemenetként), 16 MHz-es kristályoszcillátorral, mikro USB csatlakozóval, tápcsatlakozóval, ICSP fejléccel és egy reset gombbal. Mindent tartalmaz, ami a mikrovezérlő támogatásához szükséges; az induláshoz egyszerűen csatlakoztassa a számítógéphez USB-kábellel, vagy tápellátást használjon AC-DC adapterrel vagy akkumulátorral.
A Leonardo abban különbözik az összes előző táblától, hogy az ATmega32u4 beépített USB kommunikációval rendelkezik, így nincs szükség másodlagos processzorra. Ez lehetővé teszi, hogy a Leonardo egy virtuális (CDC) soros / COM port mellett egérként és billentyűzetként jelenjen meg a csatlakoztatott számítógépen.
Műszaki adatok
Mikrovezérlő | ATmega32u4 |
Üzemi feszültség | 5V |
Bemeneti feszültség (ajánlott) | 7-12V |
Bemeneti feszültség (határértékek) | 6-20V |
Digitális I / O csapok | 20 |
PWM csatornák | 7 |
Analóg bemeneti csatornák | 12. |
DC áram I / O csaponként | 40 mA |
DC áram 3,3 V-os tűhöz | 50 mA |
Flashmemória | 32 KB (ATmega32u4), amelyből 4 KB-ot a bootloader használ |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Óra sebessége | 16 MHz |
Hossz | 68,6 mm |
Szélesség | 53,3 mm |
Súly | 20 g |
PIN kimeneti referencia
Dual Axis XY joystick modul
A botkormányok különböző formákban és méretben kaphatók. Egy tipikus Joystick modult az alábbi ábra mutat be. Ez a joystick modul általában analóg kimeneteket biztosít, és a modul által biztosított kimeneti feszültségek folyamatosan változnak az irányunk szerint. És megkapjuk a mozgás irányát, ha ezeket a feszültségváltozásokat valamilyen mikrovezérlő segítségével értelmezzük. Korábban összekötöttük az öröm botot a különböző mikrovezérlőkkel:
- Összekötő joystick és Arduino
- Összekötő joystick és Raspberry Pi
- A joystick és a PIC mikrovezérlő összekapcsolása
- Joystick interfész az AVR mikrokontrollerrel
Ennek a joystick modulnak két tengelye van, amint láthatja. X tengely és Y tengely. A JOY STICK minden tengelye egy potenciométerhez vagy fazékhoz van rögzítve. Ezeknek az edényeknek a középső pontjait Rx és Ry néven hajtják ki. Tehát Rx és Ry ezeknek a fazekaknak a változó pontjai. Amikor a joystick készenléti állapotban van, az Rx és Ry feszültségosztóként működik.
Amikor a joystickot elmozdítják a vízszintes tengely mentén, az Rx tüskénél a feszültség megváltozik. Hasonlóképpen, amikor a függőleges tengely mentén mozog, a Ry csap feszültsége megváltozik. Tehát a botkormánynak négy iránya van két ADC kimeneten. A bot mozgatásakor az egyes csapok feszültsége az iránytól függően magas vagy alacsony.
Kördiagramm
Ez az Arduino Joystick játékvezérlő az alábbiak szerint igényel kapcsolatot az Arduino és a Joystick között:
Kód és működési magyarázat
A végén megadunk egy teljes kódot egy bemutató videóval; itt megmagyarázzuk néhány fontos részét.
Először is inicializálnunk kell a billentyűzet könyvtárat
#include
Ezután az alábbi kód alatt inicializáltuk a Joystick modul X és Y tengelyét az A0 és A1 analóg csapokhoz.
const int X_pin és const int Y_pin
A VRX tű analóg értékét beolvassák, és ha az érték 1023, akkor a „fel” parancsot adják meg, és ha az érték 0, akkor a „le” parancsot adják meg.
Hasonlóképpen, a VRY csap analóg értéke beolvasásra kerül, és ha az érték 1023, akkor a „jobb” parancsot adjuk meg, és ha az érték 0, akkor a „bal” parancsot adjuk meg.
A joysticknak van egy nyomógombja is a tetején, így ez a gomb (SW) is olvasható, és ha megnyomja a gombot, az értéke 0 lesz, ekkor megkapja az „enter” parancsot.
Végül égesse be a kódot az Arduino-ba, és csatlakoztassa az Arduino-t a számítógéphez.
Ezután ellenőrizze a " Eszközök és nyomtatók" elemet a kezelőpanelen, és az " Arduino Leonardo" alatt láthatja az eszközök részt az alábbi képen. Most már készen áll a joystick játékára.
Ezzel a joystickkal vezérelhetjük a játék bármely vezérlését. A botkormányban két potenciométer van, az egyik az X tengely, a másik az Y tengely mozgására szolgál. Minden potenciométer 5 V-ot kap az Arduinótól. Tehát a joystick mozgatásával a feszültség értéke megváltozik, és az A0 és A1 analóg csapok analóg értéke is megváltozik. Tehát a joystick játékvezérlőként fog működni.
Így egy normál joystick átalakítható játékvezérlővé az Arduino Leonardo segítségével, és olyan játékokra használható, amelyek minden vezérlőjével balra, jobbra, felfelé és lefelé mozoghatnak. Mint elmondta a earliar-nak, egynél több joystick is összekapcsolható, hogy ezen a négy alapvető funkción kívül több vezérlőt kapjon.