Corso di laurea in Informatica
Taratura dei sensori Haptic Paddle
Marta Capiluppi
[email protected]
Dipartimento di Informatica
Università di Verona
Haptic Paddles
While some design details change from paddle to paddle, all Haptic Paddles
share an important set of features:
• One degree of freedom (DOF): This keeps the cost down compared to
commercial 3-DOF devices.
• Impedance-type force feedback: Users input motion and feel output force.
Thus, the device is programmed to display an impedance, that is, a motion-toforce causality.
• Electromagnetic actuator: Most haptic paddles are driven by DC motors to
generate torque.
• The user typically interacts with the device through a joystick-like handle.
• Generally these devices are interfaced with an amplifier and a computer
running associated control software. Earlier Haptic Paddles interfaced with a
computer through a data acquisition card or the parallel port, but many Haptic
Paddles now use the Arduino. Most paddles use custom control software.
2
Our Haptic Paddle
Position Sensor
Force Sensor
Arduino
6.5° ruler
DC torque motor
Linear current amplifier
3
Taratura dei sensori - Materiale
Alimentatore 24 V DC
Voltmetro (Multimetro)
Dinamometro
Haptic Paddle
Cavi con morsetti
Modello Simulink per la comunicazione con l’HP
Cavo USB
4
Taratura dei sensori - Preparazione
Porre l’Alimentatore a 24V (IMPORTANTE!)
Alimentare le scheda di amplificazione
Collegare l’Arduino al PC tramite cavo USB
Collegare i terminali dei puntali del voltmetro:
Cavo nero -> Ingresso COM
Cavo rosso -> Ingresso V/Ω
Collegare tramite i cavi i puntali alla basetta secondo le necessità di misura
NB: prima di ogni punto di misura è collegata in serie una resistenza da 570Ω
per evitare cortocircuiti
I punti di misura sono:
M -> Uscita motore
P2 -> Sensore di posizione (arduino)
F2 -> Sensore di forza (arduino)
G -> Massa
P1 -> Sensore di posizione
F1 -> Sensore di forza
5
Taratura dei sensori - Comunicazione
Per instaurare la comunicazione con l’HP è necessario l’ausilio del modello
Simulink. Download del software qui
https://bitbucket.org/altairlab/hapticpaddle
Da Matlab, recarsi nella cartella contenete il modello e lanciare lo script “setup”.
Lo script (setup.m) contiene diverse variabili globali, tra le quali SAMPLE
definisce il periodo di campionamento del modello stesso.
NB: non scollegare il cavo usb dal pc durante la sessione di lavoro, pena la
necessità di riavviare l’applicativo Matlab per riabilitare la comunicazione
seriale.
Per chiudere temporaneamente la comunicazione seriale con arduino eseguire
lo script ”stop”, per riabilitarla “start”.
Il modello si compone di un modulo con un ingresso e tre uscite.
motor -> comando motore (uint16)
position -> sensore di posizione (uint16)
force -> sensore di forza (uint16)
3 -> errore (uint8. se = 0 dati reali, se = 1 errore interno, riproposti gli ultimi dati
validi)
6
Taratura del sensore di posizione I
La posizione relativa è determinata mediante un sensore ad effetto Hall.
In questo tipo di sensori si applica un campo magnetico ad un conduttore
attraversato dalla corrente; ciò genera una caduta di tensione nel conduttore.
Il sensore non risponde con valori di tensione rappresentanti la posizione
assoluta della manopola bensì rispetto al magnete montato sull’asse
dell’impugnatura.
La prima operazione da compiere è quindi regolare questo componente.
1. Collegare il puntale nero al contatto di massa della basetta millefori, il rosso
al punto di controllo della posizione P1.
2. Regolare il voltmetro in posizione DCV max 20V
3. Allineare il joystick con il pignone del motore
4. Ruotare il magnete finché la tensione in uscita dal sensore non vale 0V
La posizione di equilibrio della manopola è ora associata ad una tensione di 0V
in uscita dall’amplificatore, di 2,50V sul convertitore A/D dell’Arduino per effetto
di un circuito di condizionamento posto all’uscita dell’amplificatore il cui scopo è
condizionare i valori di tensione nel range di lavoro dell’arduino [0-5V].
7
Taratura del sensore di posizione II
Il secondo passo da compiere è identificare la risposta del sensore.
Non disponendo della risposta, per ogni tacca del joystick (6,5°) si rileva la
tensione, e la si annota in una tabella.
Inserendo i valori della tabella in Matlab, tramite la funzione polyfit troviamo i
coefficienti del polinomio interpolante. La correttezza dell’approssimazione è
legata al numero di punti considerati, alla precisione delle misure, e al criterio di
scelta dei punti su cui calcolare l’interpolazione.
Per ottenere un modello del sensore utilizzabile in ambiente Simulink è
necessario ripetere la procedura di calibrazione tramite il modello Simulink per
la comunicazione con l’Haptic Paddle, collegando uno scope all’uscita
“position”.
8
Taratura del sensore di forza I
La forza applicata al braccio della manopola è misurata da due estensimetri.
Quando una forza è applicata al braccio della manopola, determina una
deformazione del materiale e di conseguenza sui sensori applicati che
reagiscono variando la propria resistenza.
Per ottenere maggiore accuratezza delle misure effettuate, l’Haptic Paddle
monta due estensimetri collegati a formare un Ponte di Wheatstone.
9
Taratura del sensore di forza II
Date le seguenti specifiche:
R1,R2 e i valori nominali di RG+ RG- =120Ω
R2 è regolabile per calibrazione
RG+ e RG- sono sempre uguali ma di segno opposto (misurano
rispettivamente l’allungamento e la compressione dello stesso oggetto).
G = 2 (dal datasheet)
k = 6.60 10-5 [(mm/mm)(N)] per il PMMA
e sapendo che la tensione in uscita viene amplificata tramite un amplificatore
(schema in figura) con un guadagno di fattore 991, possiamo calcolare il
coefficiente della funzione lineare che lega la forza applicata alla tensione
misurata in uscita dall’amplificatore.
10
Taratura del sensore di forza III
All’atto pratico, in seguito alle seguenti misurazioni effettuate con una forza
agente perpendicolarmente alla manopola e misurata con l’ausilio di un
dinamometro, si ottiene un valore del fattore α sperimentale. Si costruisce una
tabella.
L’arduino non “vede” i valori di tensione della tabella precedente per la presenza
anche in questo caso di un circuito atto a “condizionare” i valori in uscita
dall’amplificatore sul range di input specifico dell’arduino (0-5V).
Il circuito a lato è l’implementazione per l’HP
che realizza il condizionamento: somma un
offset di 2,5V al segnale in ingresso “FORCE IN”
ed opera una divisione per 2.
Ripetendo le misure sul punto di rilevamento F2 si otterranno
quindi valori diversi per V e ΔV e cambierà anche il fattore α.
Come nel caso precedente l’interesse è trovare una funzione che descriva il
comportamento in ambiente Matlab. Anche in questo caso basterà leggere i
valori acquisiti tramite uno scope collegato all’uscita force.
Interpolando i valori ΔDec ottenuti mediante la funzione polyfit di matlab si
otterranno i coefficienti del polinomio interpolante (di fatto il fattore α).
11