PROGETTI ARDUINO

  • HOME
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI
  • HOME
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI

55. Arduino mano robotica

Arduino Mano robotica (robotic hand)
Foto
Foto
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
Foto
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 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.
Foto
​Compra qui la tua mano robotica
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.
Foto
Sketch_lettura_sensori_di_flessione.ino
File Size: 0 kb
File Type: ino
Scarica file



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.
​
Foto
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:
Foto
Foto
Qui sotto troverete lo Sketch da immettere nel programma. 

Buon divertimento!
sketch_arduino_mano_robotica.ino
File Size: 2 kb
File Type: ino
Scarica file

Condividete nei commenti le foto dei vostri progetti.

© ProgettiArduino.com 2019 - Fancello Salvatore
​ Layout, immagini e testi sono di esclusiva proprietà di www.progettiarduino.com 
Privacy Policy