- Componenti richiesti
- Arduino Leonardo
- Modulo joystick XY a doppio asse
- Schema elettrico
- Codice e spiegazione di lavoro
In precedenza abbiamo interfacciato il Joystick con Arduino UNO per capire come funziona e abbiamo controllato quattro LED sui suoi movimenti di sinistra, destra, su e giù. In questo progetto useremo lo stesso Joystick del Gamepad o del controller di gioco per giocare a qualsiasi gioco per computer che richieda movimenti a sinistra, destra, su e giù. Per giocare a giochi che richiedono più opzioni di controllo, è possibile utilizzare due o più joystick. Qui useremo Arduino Leonardo per interfacciare il Joystick come controller di gioco. Arduino Leonardo ha il vantaggio su Uno che possiamo installare driver USB su di esso e può essere rilevato come mouse, tastiera o joystick dal computer quando è collegato.
Componenti richiesti
- Arduino Leonardo
- Modulo joystick XY a doppio asse
- IDE Arduino
- Cavi di collegamento
Arduino Leonardo
Per questo progetto stiamo usando l'Arduino Leonardo, si tratta di una scheda microcontrollore basata sull'ATmega32u4. Dispone di 20 pin di ingresso / uscita digitali (di cui 7 possono essere utilizzati come uscite PWM e 12 come ingressi analogici), un oscillatore a cristallo da 16 MHz, una connessione micro USB, un jack di alimentazione, un'intestazione ICSP e un pulsante di reset. Contiene tutto il necessario per supportare il microcontrollore; è sufficiente collegarlo a un computer con un cavo USB o alimentarlo con un adattatore CA / CC o una batteria per iniziare.
Il Leonardo è diverso da tutte le schede precedenti in quanto l'ATmega32u4 ha la comunicazione USB incorporata, eliminando la necessità di un processore secondario. Ciò consente al Leonardo di apparire a un computer collegato come un mouse e una tastiera, oltre a una porta seriale / COM virtuale (CDC).
Specifiche tecniche
Microcontrollore | ATmega32u4 |
Tensione di esercizio | 5V |
Tensione di ingresso (consigliata) | 7-12V |
Tensione di ingresso (limiti) | 6-20V |
Pin I / O digitali | 20 |
Canali PWM | 7 |
Canali di ingresso analogico | 12 |
Corrente CC per pin I / O | 40 mA |
Corrente CC per pin da 3,3 V. | 50 mA |
Memoria flash | 32 KB (ATmega32u4) di cui 4 KB utilizzati dal bootloader |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Velocità di clock | 16 MHz |
Lunghezza | 68,6 mm |
Larghezza | 53,3 mm |
Peso | 20 g |
Riferimento uscita PIN
Modulo joystick XY a doppio asse
I joystick sono disponibili in diverse forme e dimensioni. Un tipico modulo Joystick è mostrato nella figura seguente. Questo modulo Joystick fornisce tipicamente uscite analogiche e le tensioni di uscita fornite da questo modulo continuano a cambiare in base alla direzione in cui lo spostiamo. E possiamo ottenere la direzione del movimento interpretando questi cambiamenti di tensione usando un microcontrollore. In precedenza abbiamo interfacciato il joy stick con diversi microcontrollori:
- Interfacciamento del joystick con Arduino
- Joystick di interfacciamento con Raspberry Pi
- Joystick di interfacciamento con microcontrollore PIC
- Interfaccia del joystick con il microcontrollore AVR
Questo modulo joystick ha due assi come puoi vedere. Sono asse X e asse Y. Ogni asse di JOY STICK è montato su un potenziometro o pentola. I punti medi di questi piatti vengono eliminati come Rx e Ry. Quindi Rx e Ry sono punti variabili per questi piatti. Quando il Joystick è in standby, Rx e Ry agiscono come divisori di tensione.
Quando il joystick viene spostato lungo l'asse orizzontale, la tensione sul pin Rx cambia. Allo stesso modo, quando viene spostato lungo l'asse verticale, la tensione sul pin Ry cambia. Quindi abbiamo quattro direzioni del Joystick su due uscite ADC. Quando lo stick viene spostato, la tensione su ciascun pin aumenta o diminuisce a seconda della direzione.
Schema elettrico
Questo controller di gioco con joystick Arduino richiede connessioni tra Arduino e joystick come segue:
Codice e spiegazione di lavoro
Alla fine viene fornito il codice completo con un video dimostrativo; qui ne stiamo spiegando alcune parti importanti.
Innanzitutto, dobbiamo inizializzare la libreria della tastiera
#includere
Successivamente, nel codice sottostante, abbiamo inizializzato gli assi X e Y del modulo Joystick rispettivamente per i pin analogici A0 e A1.
const int X_pin e const int Y_pin rispettivamente
Viene letto il valore analogico del pin VRX e se il valore è 1023 viene dato il comando per "su" e se il valore è 0, viene dato il comando per "giù".
Allo stesso modo, viene letto il valore analogico del pin VRY e se il valore è 1023 viene dato il comando per "destra" e se il valore è 0, viene dato il comando per "sinistra".
Il joystick ha anche un pulsante in alto, quindi anche questo pulsante (SW) viene letto e se il pulsante viene premuto il valore sarà 0 quindi viene dato il comando per "invio".
Infine masterizza il codice in Arduino e collega Arduino al computer.
Quindi controlla ' Dispositivi e stampanti' nel tuo pannello di controllo, sarai in grado di vedere " Arduino Leonardo" nella sezione dispositivi come mostrato nell'immagine sottostante. Ora sei pronto per giocare con il joystick.
Possiamo controllare tutti i controlli di gioco usando questo joystick. Il Joystick ha due potenziometri al suo interno, uno è per il movimento dell'asse X e un altro è per il movimento dell'asse Y. Ogni potenziometro riceve 5v da Arduino. Quindi, muovendo il joystick, il valore della tensione cambierà e cambierà anche il valore analogico sui pin analogici A0 e A1. Quindi il joystick fungerà da gamepad.
Quindi è così che un normale Joystick può essere convertito in un controller di gioco utilizzando Arduino Leonardo e può essere utilizzato per giocare con tutti i controlli per spostarsi a sinistra, a destra, su e giù. Come detto in precedenza, è possibile interfacciare più di un Joystick per ottenere più controlli oltre a queste quattro funzioni di base.