Avrai immaginato di realizzare un guanto con sensore di flessione leggendo l’articolo di lunedì ed effettivamente il sensore di flessione è particolarmente indicato per questa applicazione.
Il guanto con sensore di flessione è un progetto che mi ha sempre affascinato, fin dai tempi in cui questo tipo di sensori avevano un costo proibitivo per le mie finanze.
Oggi i sensori hanno un prezzo inferiore alla decina di euro consentendoti, con una spesa contenuta, di realizzare un progetto di guanto con sensore di flessione.
Arduino come si collega al guanto con sensore di flessione ?
Il sensore che vedi in foto è una resistenza variabile che opportunamente collegata ad una resistenza di pull-down puoi collegarla ad un qualsiasi pin analogico arduino leggendo i valori con il comando analogRead().
Arduino è dotato di 6 input analogici per cui potresti controllare 5 sensori di flessione connessi alle 5 dita della mano ed un ulteriore sensore ( accellerometro o altro ) per rilevare uno dei movimenti del polso.
Fissa il sensore di flessione al guanto
Nella foto vedi chiaramente che il sensore di flessione è semplicemente cucito sul dito indice del guanto.
La scelta del cotone e del lavoro di sartoria garantisce diversi vantaggi:
- se sbagli il fissaggio puoi scucire e ricucire il sensore;
- il sensore è libero di scorrere sotto il filo di cotone durante la piega delle dita;
- puoi sostituire facilmente il sensore se si dovesse danneggiare;
Lo sketch di test del guanto con sensore di flessione
I valori di flessione riportati dal sensore possono variare in base alla posizione del sensore sul dito che determina la curva assunta dal sensore di flessione durante la piega del dito.
Per non rischiare di scrivere tutto il codice del tuo guanto con sensore di flessione scoprendo in seguito che i valori letti non sono sufficenti è bene usare un semplice sketch per leggere il sensore di flessione:
/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain. */ // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A5); // print out the value you read: Serial.println(sensorValue); delay(200); // delay in between reads for stability }
è lo stesso sketch usato nel precedente articolo ma in questo esempio la differenza dei valori non è determinata dallo sketch ma dal sensore che da libero nell’aria è cucito al guanto.
Quando avrai cucito tutti e 5 i sensori al guanto potrai usare questo sketch per raccogliere tutti i valori letti da ciascuno dei cinque sensori:
#define sensPollice A5 #define sensIndice A4 #define sensMedio A3 #define sensAnulare A1 #define sensMignolo A2 int valuePollice = 0; int valueIndice = 0; int valueMedio = 0; int valueAnulare = 0; int valueMignolo = 0; void setup() { Serial.begin(9600); pinMode( sensPollice,INPUT ); pinMode( sensIndice,INPUT ); pinMode( sensMedio,INPUT ); pinMode( sensAnulare,INPUT ); pinMode( sensMignolo,INPUT ); } void loop() { valuePollice = analogRead( sensPollice ); valueIndice = analogRead( sensIndice ); valueMedio = analogRead( sensMedio ); valueAnulare = analogRead( sensAnulare ); valueMignolo = analogRead( sensMignolo ); Serial.print( valuePollice ); Serial.print( " - " ); Serial.print( valueIndice ); Serial.print( " - " ); Serial.print( valueMedio ); Serial.print( " - " ); Serial.print( valueAnulare ); Serial.print( " - " ); Serial.print( valueMignolo ); Serial.print( "\n" ); delay( 200 ); }
la differenza principale tra i due sketch è rappresentata dalla raccolta dei dati per i cinque sensori fatta dall’ultimo sketch rispetto al primo.
Il viedo del guanto con sensore di flessione
Il video l’ho realizzato solo con un sensore applicato all’indice del guanto e quindi della mano ed il primo sketch:
i valori rilevati variano da 270 a 130 circa e questi valori ci serviranno per determinare l’ampiezza della rotazione del servo del prossimo articolo … ops .. ti ho già svelato l’argomento del prossimo articolo.
Buon Test del guanto con sensore di flessione !!!
12 commenti
Vai al modulo dei commenti
Complimenti, mi piace
Autore
Grazie Ennio 🙂
Salve vorrei sapere dove si può acquistare il sensore di flessione.
Grazie in anticipo.
Autore
Ciao Davide,
io ho acquistato il sensore di flessione da robot-domestici.it
Mauro
Ciao con un singolo sensore di flessione lo sketch da utilizzare e mettere su arduino qual è?
Autore
Ciao Francesco,
puoi ricavartelo da quello più complesso a 5 sensori, la descrizione serve proprio a farti capire a cosa servono i comandi e quale logica ho applicato.
Perché non usare il guanto per scrivere sul computer con il linguaggio dei muti?!
Autore
Ciao Franco,
bellissimo suggerimento. Purtroppo non sono un conoscitore di gel tipo di gesture ma sarebbe interessante come progetto, se ti va di svilupparlo posso pubblicarlo quando lo avrai realizzato.
ciao Mario sono Giuseppe è sono un sopravvissuto a ictus mi ritrovo senza l uso della mano sn mi potresti aiutare con il guanto robotico grazie aiiendo contatto
Autore
Ciao Giuseppe,
grazie per il tuo commento. Il guanto è ancora i fase di sviluppo in questo momento.
Appena sarà pronto, anche in versione test o sperimentale ti contatterò per coinvolgerti, con il tuo fisioterapista, nella fase di test clinico se siete daccordo.
mi potresti far avere il guanto con sensori mano sn per provarlo se dovesse essere utile al mio fabbisogno mi fai il prezzo a me lo compro
Autore
Ciao Giuseppe,
sono a lavoro da un anno su un progetto open-source rehub.pro che ha delle caratteristiche molto interessanti, ti invito a visitare il sito.
Non siamo ancora pronti per la commercializzazione ti aggiornerò quando saranno pronti i kit che potrai acquistare on-line.