Braccio Robotico con Arduino – Seconda Parte
...continua dalla prima parte...
- PASSO 2:
Dopo avere seguito il “passo 1”, si presume che siate arrivati a seguire il “passo 2” già con la struttura fisica del robot quasi completa.
A questo punto occorre fare dei test, prima di passare ad un’eventuale realizzazione del PCB definitivo. Con l’utilizzo di una breadboard, portate l’alimentazione con il vostro alimentatore stabilizzato o con i diversi alimentatori e ci collegate i diversi servomotori.
Schema collegamento servo(seguite lo schema per il collegamento di tutti i servomotori):
Nella foto sopra riportata con le batterie viene indicata l’alimentazione, che nel nostro caso sarà sostituita da alimentatori fissi.
Dopo aver collegato tutti i servomotori(scegliete i pin digitale liberamente) testiamone il giusto funzionamento facendo eseguire dei semplici movimenti attraverso un semplice sketch:
#include <Servo.h> // include la Libreria Servo.h Servo myservo; // crea l’oggetto di tipo Servo, myservo sarà l’oggetto su cui opererai int pos = 0; // inizializza una variabile di tipo intero pos il cui valore sarà la posizione da impartire al servo void setup() { myservo.attach(9); // lega l’oggetto myservo al pin a cui abbiamo collegato il nostro servo, in questo caso il pin 8 } void loop() { for(pos = 0; pos < 180; pos += 1) // imposta un ciclo con valori che vanno da 0 a 180, sarano i gradi di spostamento del nostro servo { myservo.write(pos); // con il metodo write() passi all’oggetto myservo la posizione che deve raggiungere, // il servo si sposterà gradualmente dalla sua posizione 0° alla posizione 180° delay(15); // imposta un ritardo di 15 millesimi di secondo per ogni ciclo del for. // Più sarà alto il ritardo più il servo sarà lento. } for(pos = 180; pos>=1; pos-=1) // In questo caso imposta un ciclo con valori che vanno da 180 a 0 { myservo.write(pos); delay(15); } }
Si consiglia di testa il corretto funzionamento di tutti i servomotori inserendo più movimenti dei diversi motori, separati da un intervallo di tempo con l’impiego della funzione delay() o la funzione millis().
-PASSO 3:
Giunti a tal punto, il robot dovrebbe essere già funzionante a livello prototipale e richiede il PCB definitivo, per poi potervi sbizzarrire nella scelta dei diversi metodi di controllo che pian piano muovendovi nel mondo dei Maker riuscirete a conoscere.
Quindi ora, acquisito lo schema circuitale per il funzionamento corretto del braccio robotico e possibile ridisegnare il tutto con l’utilizzo del software “Eagle”; è vivamente consigliato di inserire un deviatore quadripolare o bipolare(a seconda del tipo di alimentazione che avete adoperato) per poter interrompere in qualsiasi momento l’alimentazione ai servomotori ed interrompere quindi i movimenti del robot.
Il PCB può essere realizzato nello più svariato dei modi, usate la vostra immaginazione; l’importante è che il PCB disponga di pin header male per poter inserire i sette servomotori e poi di pin header female per poter mandare tramite dei jumpers i segnali di input dalla board arduino ai servomotori.
- FASE DEFINITIVA (METODI DI CONTROLLO):
Finalmente il nostro robot funziona ed esegue i suoi movimenti base.
Ora viene il bello, ora dovete tirar fuori il vostro lato Maker, dovete pensare e divertirvi nei modi più svariati a modificare ed ampliare il vostro braccio robotico.
Come è possibile visionare nel video il braccio robotico recensito è basato su interessanti metodi di controllo e ne elenchiamo di seguito i concetti base del loro funzionamento:
- Potenziometri: per questo tipo di controllo del robot necessitate di 6 potenziometri da 10K da collegare ad ogni servo secondo lo schema che segue(non è riportata l’alimentazione esterna nello schema, ma ricordate che voi dovete mantenerla comunque seguendo lo schema precedente) :
Sketch da utilizzare per il controllo dei servomotori con potenziometri(riferito ad un solo servo):
#include <Servo.h> Servo myservo; int potpin = 0; int val; void setup() { myservo.attach(9); } void loop() { val = analogRead(potpin); val = map(val, 0, 1023, 0, 179); myservo.write(val); delay(15); }
- Infrarossi: per il controllo infrarossi, come già detto precedentemente, necessitate di un trasmettitore e ricevitore infrarossi, ed è molto semplice utilizzarlo in quanto è disponibile nel web lo sketch di esempio con la correlata libreria da importare <IRremote.h>;
- Controllo vocale:
per il controllo vocale è stato utilizzato un software gratuito, “MyRobotLab”, scaricabile dal sito www.myrobotlab.org nella sezione “download”. Dopo aver scaricato il software, troverete nel file .zip anche lo sketch “MRL.ino” da caricare sulla board Arduino, per interfacciare la board stessa con il software. Qui potete scegliere tra l’utilizzo dei diversi servizi per la gestione del robot o di altri dispositivi. Per il controllo vocale vengono utilizzati i servizi “Sphinx” e “Ear”, che vengono richiamati tramite un semplice Script scritto in Python, attraverso il quale vengono, in questo caso, assegnate delle precise frasi a determinate azioni che il robot deve compiere. La cosa veramente comoda è che sul sito di MyRobotLab è presente una chat alla quale tutti possono accedere ed è possibile ricevere aiuto su qualsiasi cosa direttamente dallo sviluppatore e dal team.
- Automazione:
Infine, per quanto riguarda il processo di automazione, riprende il concetto utilizzato per dei semplici test iniziali, cioè vengono date ai servomotori delle precise sequenze di movimenti e determinate posizioni da seguire.
Sketch di esempio:
#include <Servo.h> #include <IRremote.h> Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; Servo myservo7; void setup() { myservo1.attach(10); myservo2.attach(8); myservo3.attach(3); myservo4.attach(11); myservo5.attach(5); myservo6.attach(6); myservo7.attach(9); } void loop(){ myservo6.write(90); myservo5.write(45); delay(1000); myservo7.write(45); myservo3.write(90); delay(1000); myservo4.write(147); delay(1000); }
Grazie a tutti e buon divertimento con il vostro braccio robotico!
Ringraziamenti delle Redazione:
La redazione si congratula con Andrea la bellissima realizzazione e facciamo i migliori auguri per un futuro da professionista del nostro settore, le premesse sono buone.
Autore: Andrea Trufini
Biografia autore: Sono sempre stato un appassionato di elettronica, robotica e informatica e, infatti, fin da piccolo cercavo di cimentarmi nell'ambiente. Ho 19 anni e ho appena dato l'esame di maturità ottenendo una votazione di 100/100esimi, forse anche grazie alla presentazione di un robot da me costruito. Sono ora diventato studente del Politecnico di Torino, nella facoltà di Ingegneria Elettronica.
Continuo con la speranza di diventare, un giorno, un ricercatore nella materia.