- Požadované komponenty
- Arduino Leonardo
- Dual Axis XY Joystick Module
- Kruhový diagram
- Kód a pracovní vysvětlení
Předtím jsme propojili Joystick s Arduino UNO, abychom pochopili, jak to funguje, a ovládali jsme čtyři LED diody při pohybu vlevo, vpravo, nahoru a dolů. V tomto projektu budeme používat stejný joystick jako Gamepad nebo herní ovladač pro hraní počítačových her, které vyžadují pohyby doleva, doprava, nahoru a dolů. K hraní her, které vyžadují více možností ovládání, lze použít dva nebo více joysticků. Zde použijeme Arduino Leonardo k propojení Joysticku jako herního ovladače. Arduino Leonardo má oproti Uno tu výhodu, že na něj můžeme instalovat ovladače USB a při připojení jej může počítač detekovat jako myš, klávesnici nebo joystick.
Požadované komponenty
- Arduino Leonardo
- Dual Axis XY Joystick Module
- Arduino IDE
- Připojovací vodiče
Arduino Leonardo
Pro tento projekt používáme Arduino Leonardo, jedná se o desku mikrokontroléru založenou na ATmega32u4. Má 20 digitálních vstupních / výstupních pinů (z toho 7 lze použít jako PWM výstupy a 12 jako analogové vstupy), 16 MHz krystalový oscilátor, připojení micro USB, napájecí konektor, záhlaví ICSP a resetovací tlačítko. Obsahuje vše potřebné pro podporu mikrokontroléru; Jednoduše jej připojte k počítači pomocí kabelu USB nebo jej začněte napájet adaptérem AC-DC nebo baterií.
Leonardo se liší od všech předchozích desek tím, že ATmega32u4 má vestavěnou komunikaci USB, což eliminuje potřebu sekundárního procesoru. To umožňuje, aby se Leonardo zobrazoval připojenému počítači jako myš a klávesnice, kromě virtuálního (CDC) sériového / COM portu.
Technické specifikace
Mikrokontrolér | ATmega32u4 |
Provozní napětí | 5V |
Vstupní napětí (doporučeno) | 7-12V |
Vstupní napětí (limity) | 6-20V |
Digitální I / O piny | 20 |
Kanály PWM | 7 |
Analogové vstupní kanály | 12 |
DC proud na I / O Pin | 40 mA |
Stejnosměrný proud pro kolík 3,3 V. | 50 mA |
Flash paměť | 32 kB (ATmega32u4), z toho 4 kB použité bootloaderem |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 kB (ATmega32u4) |
Rychlost hodin | 16 MHz |
Délka | 68,6 mm |
Šířka | 53,3 mm |
Hmotnost | 20 g |
Odkaz na PIN
Dual Axis XY Joystick Module
Joysticky jsou k dispozici v různých tvarech a velikostech. Typický modul Joystick je zobrazen na obrázku níže. Tento modul joysticku obvykle poskytuje analogové výstupy a výstupní napětí poskytovaná tímto modulem se neustále mění podle směru, kterým jej pohybujeme. A můžeme získat směr pohybu interpretací těchto změn napětí pomocí nějakého mikrokontroléru. Dříve jsme propojili joystick s různými mikrokontroléry:
- Propojovací joystick s Arduino
- Propojovací joystick s Raspberry Pi
- Propojovací joystick s mikrokontrolérem PIC
- Joystickové rozhraní s mikrokontrolérem AVR
Tento modul joysticku má dvě osy, jak vidíte. Jsou to osa X a osa Y. Každá osa JOY STICK je namontována na potenciometr nebo hrnec. Střední body těchto baněk jsou vyhnány jako Rx a Ry. Rx a Ry jsou tedy variabilní body k těmto bankům. Když je joystick v pohotovostním režimu, fungují Rx a Ry jako dělič napětí.
Když se joystick pohybuje podél vodorovné osy, napětí na kolíku Rx se mění. Podobně, když se pohybuje podél svislé osy, mění se napětí na Ry pin. Takže máme čtyři směry Joysticku na dvou výstupech ADC. Když se hůl pohybuje, napětí na každém čepu klesá nebo klesá v závislosti na směru.
Kruhový diagram
Tento herní ovladač Joystick Arduino vyžaduje připojení mezi Arduino a Joystickem následujícím způsobem:
Kód a pracovní vysvětlení
Na konci je uveden kompletní kód s ukázkovým videem; zde vysvětlujeme několik důležitých částí.
Nejprve musíme inicializovat knihovnu klávesnic
#zahrnout
Dále v níže uvedeném kódu jsme inicializovali osu X a Y modulu Joystick pro analogový pin A0 a A1.
const int X_pin a const int Y_pin
Načte se analogová hodnota kolíku VRX a pokud je hodnota 1023, je vydán příkaz pro „nahoru“ a pokud je hodnota 0, je zadán příkaz pro „dolů“.
Podobně se načte analogová hodnota kolíku VRY a pokud je hodnota 1023, je zadán příkaz pro „pravý“ a je-li hodnota 0, je zadán příkaz pro „levý“.
Joystick má také tlačítko nahoře, takže toto tlačítko (SW) se také čte a pokud je tlačítko stisknuto, hodnota bude 0, pak bude vydán příkaz pro „Enter“.
Nakonec vypálte kód do Arduina a propojte Arduino s počítačem.
Dále zkontrolujte „ Zařízení a tiskárny“ na ovládacím panelu, v části zařízení uvidíte „ Arduino Leonardo“, jak je znázorněno na následujícím obrázku. Nyní jste připraveni hrát s joystickem.
Pomocí tohoto joysticku můžeme ovládat jakékoli ovládací prvky hry. Joystick má uvnitř dva potenciometry, jeden je pro pohyb v ose X a druhý pro pohyb v ose Y. Každý potenciometr získá 5V od Arduina. Pohybem joysticku se tedy změní hodnota napětí a změní se také analogová hodnota na analogových pinech A0 a A1. Joystick bude fungovat jako gamepad.
Takto lze normální joystick převést na herní ovladač pomocí Arduino Leonardo a lze jej použít k hraní her se všemi ovládacími prvky pro pohyb doleva, doprava, nahoru a dolů. Jak již bylo řečeno, lze propojit více než jeden joystick, aby bylo možné získat více ovládacích prvků než tyto základní čtyři funkce.