Pagina 1 di 1

Calibrazione joystick analogico

MessaggioInviato: 23 apr 2020, 0:52
da Stemby
Buongiorno,
sto giochicchiando con un joystick analogico a due assi (più pulsante integrato che non uso) montato su breakout board (5 pin: +5V, GND, X, Y, pulsante) e Arduino.

Il joystick sembra funzionare bene, tranne per un dettaglio: nella posizione di riposo vengono rivelati dei valori abbastanza sballati (mentre agli estremi è perfetto).

Nello specifico, X 490; Y 521. Il valore corretto dovrebbe essere per entrambi gli assi circa 512 (mentre gli estremi, come già detto, sono esattamente 0 e 1023 per entrambi gli assi).

Ipotizzo che i 2 potenziometri non siano perfettamente lineari, oppure che la meccanica non metta i potenziometri esattamente nella posizione intermedia.

Come potrei fare per calibrare lo strumento?

Grazie!

Re: Calibrazione joystick analogico

MessaggioInviato: 23 apr 2020, 1:08
da fairyvilje
La soluzione più semplice è fare una calibrazione lato software. Significa che imponi lo zero a quelle coordinate ed interpoli tutti gli altri valori riportandoli nel range [0,1023]. Ovviamente perdi un po' di risoluzione in giro ma penso che sia largamente accettabile per il tuo tipo di applicazione.
L'alternativa è calibrare lo strumento meccanicamente, ma questo potrebbe richiedere di smontarlo anche in modo distruttivo o di modificare delle parti per sistemare alcune tolleranze. In buona sostanza considero la prima opzione di molto preferibile.

Re: Calibrazione joystick analogico

MessaggioInviato: 23 apr 2020, 7:50
da Stemby
Perfetto, grazie, era quello che pensavo anch'io. Proverò a inventarmi qualcosa.

Eventualmente siete a conoscenza di qualche algoritmo di calibrazione già pronto? (Andrebbe benissimo qualcosa che vada a rendere lineari le letture di un sensore non lineare)

Re: Calibrazione joystick analogico

MessaggioInviato: 28 apr 2020, 13:36
da Stemby
Risolto abbastanza facilmente con questa libreria:

https://github.com/RobTillaart/MultiMap
https://playground.arduino.cc/Main/MultiMap/

La documentazione non è il massimo, ma per i miei scopi funziona.

Ciao!