Mano Robotica Arduino sketch

Mano Robotica Arduino sketch

Mano Robotica Arduino sketch

Uno tra i progetti piu’ interessanti e d’effetto da intraprendere in campo robotica è certamente quello della mano robotica che si può realizzare utilizzando Arduino. In questo articolo pubblicherò lo sketch realizzato per dare un primo movimento ad una mano robotica al fine di capire il meccanismo di funzionamento e consentirvi quindi di estendere lo sketch con ulteriori personalizzazioni.

La mano robotica da me realizzata consiste in una struttura metallica dotata di dita snodabili qui movimento viene imposto da fascette da elettricista le quali dispongono di capacità di trazione ma soprattutto di ritorno in posizione di memori essendo in materiale plastico.

Ogni dito è legato da una fascetta ad un servo motore che rappresenta ovviamente la forza propulsiva di movimento.

Senza perderci troppo in lungaggini, vediamo lo sketch della mano robotica  Arduino commentando successivamente il codice. Premetto che il codice scritto non è sintatticamente dei migliori ma aiuterà i meno esperti a capire di piu’.

#include <Servo.h>

Servo myservo;

int pos = 0;
int ciclo = 0;

void setup()
{
myservo.attach(9);
}

void loop()
{
for (ciclo = 0; ciclo < 3; ciclo+=1){
for (pos = 0; pos < 45; pos += 1)
{
myservo.write(pos);
delay(15);
}
for (pos = 45; pos >= 1; pos -= 1)
{
myservo.write(pos);
delay(15);
}
}

myservo.attach(10);
for (ciclo = 0; ciclo < 3; ciclo+=1){
for (pos = 0; pos < 45; pos += 1)
{
myservo.write(pos);
delay(15);
}
for (pos = 45; pos >= 1; pos -= 1)
{
myservo.write(pos);
delay(15);
}
}

myservo.attach(11);
for (ciclo = 0; ciclo < 3; ciclo+=1){
for (pos = 0; pos < 45; pos += 1)
{
myservo.write(pos);
delay(15);
}
for (pos = 45; pos >= 1; pos -= 1)
{
myservo.write(pos);
delay(15);
}
}

myservo.attach(12);
for (ciclo = 0; ciclo < 3; ciclo+=1){
for (pos = 0; pos < 45; pos += 1)
{
myservo.write(pos);
delay(15);
}
for (pos = 45; pos >= 1; pos -= 1)
{
myservo.write(pos);
delay(15);
}
}

myservo.attach(13);
for (ciclo = 0; ciclo < 3; ciclo+=1){
for (pos = 0; pos < 45; pos += 1)
{
myservo.write(pos);
delay(15);
}
for (pos = 45; pos >= 1; pos -= 1)
{
myservo.write(pos);
delay(15);
}
}

}

Il codice comincia con l’inclusione della libreria utile per gestire i Servo Motori che è la Servo.h . Questa ci consente di impartire la rotazione di ogni singolo motore in gradi di rotazione.

Ci creiamo quindi un oggetto di tipo servo motore che inizializzeremo nel setup con il numero di porta su cui è agganciato il motore. Nel mio caso ho iniziato dalla porta 9 che corrisponde al mignolo della mano robotica.

Nel loop del programma ho avviato due cicli di for per ciascun dito con una variabile incrementale da 0 a 45 che corrisponderanno a 45 gradi di rotazione dei motori. Il primo ciclo di for sarà incrementale mentre il secondo in decremento e consentirà al dito di ritornare nella sua posizione iniziale.

Terminati i cicli di for per ciascun dito si setta l’oggetto servo sulla porta successiva per cambiare movimento di dito.

Video Mano Robotica Arduino Sketch

Leave a Reply