- Komponente potrebne
- Arduino Leonardo
- Dvoosni XY modul džojstika
- Kružni dijagram
- Šifra i radno objašnjenje
Prethodno smo povezali Joystick s Arduino UNO-om kako bismo razumjeli kako to radi i kontrolirali smo četiri LED-a lijevo, desno, gore-dolje. U ovom projektu koristit ćemo isti džojstik kao Gamepad ili kontroler igre za igranje bilo kakvih računalnih igara koje zahtijevaju pokrete lijevo, desno, gore i dolje. Za igranje igara koje zahtijevaju više mogućnosti upravljanja, mogu se koristiti dva ili više džojstika. Ovdje ćemo koristiti Arduino Leonardo za sučelje Joystika kao kontrolera igre. Arduino Leonardo ima prednost u odnosu na Uno što na njega možemo instalirati USB upravljačke programe i računalo ga može prepoznati kao miša, tipkovnicu ili džojstik kada je povezan.
Komponente potrebne
- Arduino Leonardo
- Dvoosni XY modul džojstika
- Arduino IDE
- Spajanje žica
Arduino Leonardo
Za ovaj projekt koristimo Arduino Leonardo, to je ploča mikrokontrolera zasnovana na ATmega32u4. Ima 20 digitalnih ulazno / izlaznih pinova (od kojih se 7 može koristiti kao PWM izlazi, a 12 kao analogni ulazi), kristalni oscilator od 16 MHz, mikro USB vezu, utičnicu za napajanje, ICSP zaglavlje i gumb za resetiranje. Sadrži sve potrebno za podršku mikrokontrolera; jednostavno ga spojite na računalo USB kabelom ili ga napajajte AC-to-DC adapterom ili baterijom da biste započeli.

Leonardo se razlikuje od svih prethodnih ploča po tome što ATmega32u4 ima ugrađenu USB komunikaciju, uklanjajući potrebu za sekundarnim procesorom. To omogućuje da se Leonardo na povezanom računalu prikaže kao miš i tipkovnica, uz virtualni (CDC) serijski / COM priključak.
Tehničke specifikacije
| Mikrokontroler | ATmega32u4 |
| Radni napon | 5V |
| Ulazni napon (preporučeno) | 7-12V |
| Ulazni napon (ograničenja) | 6-20V |
| Digitalni I / O pinovi | 20 |
| PWM kanali | 7 |
| Kanali analognog ulaza | 12 |
| Istosmjerna struja po I / O pinu | 40 mA |
| Istosmjerna struja za 3.3V pin | 50 mA |
| Brza memorija | 32 KB (ATmega32u4) od čega 4 KB koristi bootloader |
| SRAM | 2,5 KB (ATmega32u4) |
| EEPROM | 1 KB (ATmega32u4) |
| Brzina sata | 16 MHz |
| Duljina | 68,6 mm |
| Širina | 53,3 mm |
| Težina | 20 g |
Referenca za PIN izlaz

Dvoosni XY modul džojstika
Joystickovi su dostupni u različitim oblicima i veličinama. Tipični modul džojstika prikazan je na donjoj slici. Ovaj modul džojstika obično daje analogne izlaze, a izlazni naponi koje pruža ovaj modul neprestano se mijenjaju u skladu sa smjerom u kojem ga pomičemo. A smjer kretanja možemo dobiti tumačenjem tih promjena napona pomoću nekog mikrokontrolera. Prije smo povezivali joy stick s različitim mikrokontrolerima:
- Povezivanje joysticka s Arduinom
- Povezivanje joysticka s Raspberry Pi
- Povezivanje joysticka s PIC mikrokontrolerom
- Upravljanje džojstikom s AVR mikrokontrolerom

Ovaj modul joysticka ima dvije osi kao što vidite. To su osi X i Y osi. Svaka os JOY STICK-a pričvršćena je na potenciometar ili lonac. Srednje točke ovih lonaca istjeruju se kao Rx i Ry. Dakle, Rx i Ry su varijabilne točke prema ovim loncima. Kad je joystick u stanju pripravnosti, Rx i Ry djeluju kao djelitelj napona.
Kad se džojstik pomiče po vodoravnoj osi, napon na Rx pinu mijenja se. Slično tome, kada se pomiče duž okomite osi, mijenja se napon na Ry pinu. Tako imamo četiri smjera džojstika na dva ADC izlaza. Kad se palica pomakne, napon na svakom zatiču postaje visok ili nizak, ovisno o smjeru.
Kružni dijagram
Ovaj kontroler igre Arduino Joystick zahtijeva veze između Arduina i Joysticka kako slijedi:



Šifra i radno objašnjenje
Kompletni kod s demo videom dat je na kraju; ovdje objašnjavamo nekoliko njegovih važnih dijelova.
Prvo, moramo inicijalizirati knjižnicu tipkovnice
#include
Dalje u donjem kodu inicijalizirali smo X i Y os modula Joystick za analogni pin A0 i A1.
const int X_pin i const int Y_pin
Očitava se analogna vrijednost VRX pina, a ako je vrijednost 1023, daje se naredba za "gore", a ako je vrijednost 0, daje se naredba za "dolje".
Slično tome, čita se analogna vrijednost VRY pina i ako je vrijednost 1023, daje se naredba za "desno", a ako je vrijednost 0, daje se naredba za "lijevo".
Joystick također ima gumb na vrhu, tako da se i ovaj gumb (SW) čita, a ako se pritisne gumb, vrijednost će biti 0, tada se daje naredba za "enter".
Konačno narežite kod u Arduino i spojite ga s računalom.
Sljedeće provjerite " Uređaji i pisači" na upravljačkoj ploči, moći ćete vidjeti " Arduino Leonardo" u odjeljku uređaja, kao što je prikazano na donjoj slici. Sada ste spremni igrati se s joystickom.

Pomoću ovog džojstika možemo kontrolirati bilo koju kontrolu igre. Joystick unutar sebe ima dva potenciometra, jedan je za pomicanje osi X, a drugi za pomicanje osi Y. Svaki potenciometar dobiva 5v od Arduina. Kako pomičemo džojstik, vrijednost napona će se mijenjati, a analogna vrijednost na analognim pinovima A0 i A1 također će se mijenjati. Tako će džojstik djelovati kao gamepad.

Dakle, ovo je način kako se normalni džojstik može pretvoriti u kontroler igara pomoću Arduina Leonarda i može se koristiti za igranje igara sa svim kontrolama za kretanje lijevo, desno, gore i dolje. Kao što je rečeno Earliar-u, može se povezati više džojstika kako bi se dobilo više kontrola osim ovih četiri osnovne funkcije.
