Arduino Mano robotica (robotic hand)
Salve ragazzi, Oggi realizzeremo un progetto per creare una mano robotica con 5 sensori di flessione e 5 servo che comandano la mano stessa.
Questo progetto è molto innovativo, ci permette di muovere una mano robotica grazie all`uso di 5 servo motori comandati da 5 sensori di flessione posti sulle dita di un guanto.
Arduino leggerà i valori dati dai sensori di flessione e ci consentirà di muovere i servo di 180°, quest`ultimi tireranno un filo collegato su ciascun dito della mano robotica.
Per imparare ad utilizzare i servomotori vi rimando alla sezione tutorial
Questo progetto è molto innovativo, ci permette di muovere una mano robotica grazie all`uso di 5 servo motori comandati da 5 sensori di flessione posti sulle dita di un guanto.
Arduino leggerà i valori dati dai sensori di flessione e ci consentirà di muovere i servo di 180°, quest`ultimi tireranno un filo collegato su ciascun dito della mano robotica.
Per imparare ad utilizzare i servomotori vi rimando alla sezione tutorial
I sensori flessione sono delle barrette regolatrici di resistenza flessibili (vedi immagine sopra), collegandole sulle dita di un guanto invieremo un segnale analogico ad Arduino e faremo muovere ciascun dito.
Per acquistare i componenti su e eBay cliccare questo link
Per acquistare i tuoi componenti su Amazon clicca su questo link
Per acquistare i componenti su e eBay cliccare questo link
Per acquistare i tuoi componenti su Amazon clicca su questo link
Per costruire la mano robotica esistono vari metodi, il primo è tramite la stampa 3D, troverete online vari programmi per la stampa, la seconda più semplice è comprare un kit già pronto come quello nell`immagine sottostante che per noi è l`ideale.
Per prima cosa dobbiamo leggere i valori dei sensori di flessione, e ho creato un semplice programma che ci permette di leggere sul serial monitor un valore in bit della tensione in ingresso compreso tra 1 e 1023.
Nel nostro caso quando i sensori sono piegati (pugno chiuso) il valore è di circa 400-450, quando sono lineari (mano aperta) il valore è compreso tra 650-700.
Qui sotto vi lascio il file dello sketch per leggere i sensori di flessione.
Nel nostro caso quando i sensori sono piegati (pugno chiuso) il valore è di circa 400-450, quando sono lineari (mano aperta) il valore è compreso tra 650-700.
Qui sotto vi lascio il file dello sketch per leggere i sensori di flessione.
Sketch_lettura_sensori_di_flessione.ino | |
File Size: | 0 kb |
File Type: | ino |
Ora procediamo con il collegamento seguendo lo schema sottostante.
Ricordo che fra il sensore e Arduino va inserita una resistenza da 22Kohm e i servomotori vanno collegati alle porte pwm.
Simulazione:
Link simulazione: https://www.tinkercad.com/things/4Zk09eOezJR
Arduino calcola il valore di ogni flessione del sensore e visualizza un numero all'incirca tra 400-700 per indicare la flessione.
Ora dobbiamo convertire il valore che sta tra 400 e 700 ai valori proporzionali di angolo di un servo motore che sta tra 0 e 180, in modo che il servo ruota in corrispondenza della curvatura dei sensori di flessione.
In seguito ho nominato la posizione di una variabile P , e calcolato che:
Gamma di possibili flexValues = 700-400 = 300
currentFlexVal / 300 (flexValues gamma 0f) = P / 180 (posizione del servo)
300 * P = 180 * currentFlexVal
P = 0.6 * currentFlexVal
Sapendo che la nuova posizione è = 0.6 * currentFlexVal, ho creato la mia funzione di mappatura chiamata findPosition che prende il valore flex corrente e restituisce una posizione proporzionale tra 0-180 da inviare al servo.
Ed infine ecco lo sketch:
Qui sotto troverete lo Sketch da immettere nel programma.
Buon divertimento!
Buon divertimento!
sketch_arduino_mano_robotica.ino | |
File Size: | 2 kb |
File Type: | ino |
Condividete nei commenti le foto dei vostri progetti.