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