- Súčasti sú povinné
- Arduino Leonardo
- Modul joysticku s dvojitou osou XY
- Schéma zapojenia
- Kód a pracovné vysvetlenie
Predtým sme prepojili Joystick s Arduino UNO, aby sme pochopili jeho fungovanie, a ovládali sme štyri LED diódy pri ľavom, pravom, hornom a dolnom pohybe. V tomto projekte použijeme rovnaký joystick ako Gamepad alebo herný ovládač na hranie akýchkoľvek počítačových hier, ktoré si vyžadujú pohyby doľava, doprava, hore a dole. Na hranie hier vyžadujúcich viac možností ovládania je možné použiť dva alebo viac joystickov. Tu použijeme Arduino Leonardo na prepojenie Joysticku ako herného ovládača. Arduino Leonardo má oproti Uno výhodu v tom, že doň môžeme nainštalovať ovládače USB a počítač ho po pripojení dokáže rozpoznať ako myš, klávesnicu alebo joystick.
Súčasti sú povinné
- Arduino Leonardo
- Modul joysticku s dvojitou osou XY
- Arduino IDE
- Pripojovacie vodiče
Arduino Leonardo
Pre tento projekt používame Arduino Leonardo, je to doska mikrokontroléra založená na ATmega32u4. Má 20 digitálnych vstupných / výstupných pinov (z toho 7 je možné použiť ako PWM výstupov a 12 ako analógových vstupov), 16 MHz kryštálový oscilátor, pripojenie micro USB, napájací konektor, hlavičku ICSP a resetovacie tlačidlo. Obsahuje všetko potrebné na podporu mikrokontroléra; na začiatok ho jednoducho pripojte k počítaču pomocou kábla USB alebo ho napájajte pomocou adaptéra AC-to-DC alebo batérie.
Leonardo sa líši od všetkých predchádzajúcich dosiek tým, že ATmega32u4 má zabudovanú komunikáciu USB, čo eliminuje potrebu sekundárneho procesora. To umožňuje, aby sa Leonardo javil pripojenému počítaču ako myš a klávesnica, navyše k virtuálnemu (CDC) sériovému / COM portu.
Technické špecifikácie
Mikrokontrolér | ATmega32u4 |
Prevádzkové napätie | 5V |
Vstupné napätie (odporúčané) | 7-12V |
Vstupné napätie (limity) | 6-20V |
Digitálne I / O piny | 20 |
Kanály PWM | 7 |
Analógové vstupné kanály | 12 |
DC prúd na I / O Pin | 40 mA |
Jednosmerný prúd pre kolík 3,3 V | 50 mA |
Flash pamäť | 32 KB (ATmega32u4) z toho 4 KB použité bootloaderom |
SRAM | 2,5 kB (ATmega32u4) |
EEPROM | 1 kB (ATmega32u4) |
Rýchlosť hodín | 16 MHz |
Dĺžka | 68,6 mm |
Šírka | 53,3 mm |
Váha | 20 g |
Odkaz na výstup PIN
Modul joysticku s dvojitou osou XY
Joysticky sú k dispozícii v rôznych tvaroch a veľkostiach. Typický modul Joystick je zobrazený na obrázku nižšie. Tento modul joysticku zvyčajne poskytuje analógové výstupy a výstupné napätia poskytované týmto modulom sa neustále menia podľa smeru, ktorým ho pohybujeme. A smer pohybu môžeme získať interpretáciou týchto zmien napätia pomocou nejakého mikrokontroléra. Predtým sme prepojili joystick s rôznymi mikrokontrolérmi:
- Prepojovací joystick s Arduino
- Prepojovací joystick s Raspberry Pi
- Prepojovací joystick s mikrokontrolérom PIC
- Joystickové rozhranie s mikrokontrolérom AVR
Tento modul joysticku má dve osi, ako vidíte. Sú to os X a Y. Každá os JOY STICK je pripevnená k potenciometru alebo banke. Stredové body týchto hrncov sú vytlačené ako Rx a Ry. Rx a Ry sú teda variabilné body k týmto bankom. Keď je joystick v pohotovostnom režime, Rx a Ry pôsobia ako rozdeľovač napätia.
Keď sa joystick pohybuje pozdĺž vodorovnej osi, mení sa napätie na kolíku Rx. Podobne, keď sa pohybuje pozdĺž vertikálnej osi, mení sa napätie na kolíku Ry. Takže máme štyri smery navigačného tlačidla na dvoch ADC výstupy. Keď sa páčkou pohnete, napätie na každom kolíku sa zvýši alebo zníži v závislosti od smeru.
Schéma zapojenia
Tento herný ovládač Arduino Joystick vyžaduje nasledujúce prepojenia medzi Arduino a Joystickom:
Kód a pracovné vysvetlenie
Na konci je uvedený kompletný kód s ukážkovým videom; tu vysvetľujeme niekoľko dôležitých častí.
Najskôr musíme inicializovať knižnicu klávesníc
#include
Ďalej v nižšie uvedenom kóde sme inicializovali os X a Y modulu joysticku pre analógový pin A0, respektíve A1.
const int X_pin a const int Y_pin
Načíta sa analógová hodnota kolíka VRX a ak je hodnota 1023, potom sa vydá príkaz pre „nahor“ a ak je hodnota 0, potom sa zadá príkaz pre „nadol“.
Podobne sa načíta analógová hodnota kolíka VRY a ak je hodnota 1023, potom sa zadá príkaz pre „pravú“ a ak je hodnota 0, potom sa zadá príkaz pre „ľavú“.
Joystick má tiež tlačidlo v hornej časti, takže sa číta aj toto tlačidlo (SW). Ak je tlačidlo stlačené, bude mať hodnotu 0 a potom bude vydaný príkaz na zadanie.
Nakoniec vypálte kód na Arduino a pripojte Arduino k počítaču.
Ďalej skontrolujte „ Zariadenia a tlačiarne“ na ovládacom paneli. Uvidíte „ Arduino Leonardo“ v sekcii zariadenia, ako je to znázornené na obrázku nižšie. Teraz ste pripravení hrať sa s joystickom.
Pomocou tohto joysticku môžeme ovládať akékoľvek ovládacie prvky hry. Joystick má v sebe dva potenciometre, jeden je na pohyb v osi X a druhý na pohyb v osi Y. Každý potenciometer získa 5V od Arduina. Takže keď pohybujeme joystickom, zmení sa hodnota napätia a zmení sa aj analógová hodnota na analógových pinoch A0 a A1. Joystick teda bude fungovať ako gamepad.
Takto je možné pomocou Joysticku Arduino Leonardo bežný joystick previesť na herný ovládač a použiť ho na hranie hier so všetkými ovládacími prvkami na pohyb doľava, doprava, hore a dole. Ako už bolo povedané, najskôr možno prepojiť viac ako jeden joystick, aby ste získali viac ovládacích prvkov ako tieto základné štyri funkcie.