Obiettivo: Come controllare due servomotori utilizzando un Joystick per Arduino.
Pre-requisiti
Il Servomotore
Componenti elettronici:
- Arduino UNO
- Breadboard
- 2 Servomotori
- 1 Joystick KY-023K
Teoria: Il Joystick è una dispositivo elettronico che trasforma i movimenti di una leva manovrata dall’utente in una serie di segnali elettrici, questi segnali possono essere in seguito utilizzati per controllare un software (e.g., videogame), un’apparecchiatura o un attuatore meccanico. Possono esistere due differenti tipologie di Joystick:
- Joystick Digitale: Rileva solamente la direzione dell’inclinazione della leva.
- Joystick Analogico: Rileva anche l’ampiezza dell’inclinazione.
Nello specifico in questo articolo viene illustrato il funzionamento di uno dei controller più tipicamente utilizzati e presenti nei vari kit Arduino: il “Dual Axis Joystick Module KY-023“, Questo dispositivo, basato sul controller della PlayStation2, utilizza due potenziometri bi-assiali per controllare l’asse X e l’asse Y. Inoltre è possibile premere il controller per attivare uno switch. Nello specifico, la tensione di funzionamento del dispositivo è compresa nel range 3.3 – 5 V. Mentre le dimensioni sono pari a 2.6 x 3.4 cm.
Nella tabella a seguire è riportata la piedinatura utile per collegare in modo corretto il Joystick KY-023.
KY-023 PIN | Descrizione |
GND | Ground |
+5V | Alimentazione Vcc |
VRx | Uscita Analogica (Asse X) |
VRy | Uscita Analogica (Asse Y) |
SW | Switch |
In questo articolo il Joystick viene utilizzato per comandare due differenti servomotori. Un servo è associato all’asse X ed un altro è invece associato all’asse Y. La posizione di riposo dei due servomotori è per entrambi 90 gradi. Spostando il Joystick lungo l’asse X si può modificare la posizione del servo associato all’asse X di un angolo variabile da 0 a 180 gradi. Lo stesso accade modificando la posizione del joystick lungo l’asse y.
Collegamento Circuitale:
Codice:
Ma c’è un modo per far rimanere il servo in posizione quando si rilascia il joystick. Non ho ancora visto un progetto con questo sistema
salve Peppe,
dovresti provare a memorizzare la posizione “max” e “min” del joystic, fino a quando non cambia.
Per esempio, con il joystic raggiungi un valore massimo (ad esempio 100) e fino a quando arrivi al valore, posizioni il servo. Rilasciando il joystick avrai valori più bassi, e non li fai agire sul servo, che invece si riattiva nel momento in cui sposti il joystick in un’altra direzione, facendo lo stesso ragionamento.
Non so se ci siamo spiegati. Se così non fosse, faccelo sapere!
grazie
ciao
Il Team di ArduinoFacile.it