Robot Antropomorfo V2.0

0

di  Giuseppe La Rosa

Questo articolo è la revisione 2.0 di uno dei miei progetti più seguiti: un robot antropomorfo. In questa nuova versione viene controllato da computer attraverso un’interfaccia USB. Il braccio è in grado di afferrare piccoli oggetti disposti entro un raggio di circa 20 cm, i movimenti sono attuati tramite servomotori per modellismo pilotati da una scheda con un ATMEGA328P, che colloquia con il programma di controllo installato nel PC.Il software può comandare il robot tramite tastiera, mouse o joystick.

Esistono molti dispositivi simili in commercio: perché proporne un altro ancora? Perché questo progetto si realizza con un metodo innovativo che riduce quasi a zero l’impegno necessario alla realizzazione della parte meccanica e permette a chiunque di costruirsi un piccolo robot antropomorfo, spendendo una cifra modesta. In questo articolo spiegheremo come realizzare semplicemente questo braccio meccanico (figura 1) pilotabile da PC, capace di sei diverse articolazioni. E’ composto da una parte elettromeccanica per eseguire i singoli movimenti, una scheda di interfacciamento al PC e di un
software di controllo. Nel corso dell’articolo descriveremo come realizzare le singole parti e come assemblarle nel modo
più semplice possibile.

Figura 1: Foto del robot completo

 

Il circuito elettrico

I sei servocomandi e il LED situato vicino la pinza vengono gestiti da Arduino UNO, un ATMEGA328P (IC2), ed il circuito che ne risulta è molto semplice, come visibile nello schema elettrico di figura 2. La scheda, deve essere alimentata con un
semplice alimentatore stabilizzato da 2000 mA in grado di erogare una tensione di 5 volt. Il connettore J9 serve per la programmazione In Circuit ed è utile per caricare il Bootloader di Arduino UNO. Poiché i servocomandi assorbono molta corrente durante lo spunto, potrebbe accadere di avere cali temporanei di tensione in grado di produrre errori di trasmissione. Per alimentare i servocomandi e ovviare ai cali di tensione improvvisi sono stati aggiunti condensatori
elettrolitici: C10, C11, C16 e C17. Il circuito è predisposto per il collegamento alla porta seriale del PC dalla quale riceve i comandi per lo spostamento dei servocomandi e l’accensione o spegnimento del LED collegato su connettore J7 l’ATMEGA328P che deve solo interpretare i comandi in standard RS232 e generare i segnali elettrici secondo il formato previsto per i servocontrolli (connessi ai connettori J1 a J6). Ai pin 11 (RX), 12(TX) e 15 (GND), originalmente destinati al
circuito integrato IC1 (non più utilizzato). Al suo posto è stato connesso un convertitore USB a seriale UART (livelli 0 e 5 volt). Sullo schema elettrico visibile in Figura 2 sono stati evidenziati (area grigia) tutti i componentiche non devono più essere installati sulla scheda.

Figura 2: Schema elettrico della scheda di controllo del Robot ARM.

La meccanica

Per realizzare la struttura meccanica abbiamo utilizzato quattro servocomandi qualsiasi, di tipo standard con ingranaggi in metallo. Per costruire la chiusura e apertura e la rotazione della pinza, abbiamo scelto due mini servocomandi standard. In questo modo si ottengono cinque gradi di libertà, più un sesto movimento dedicato alla presa degli oggetti. La struttura meccanica è stata pensata per poter essere facilmente realizzata da chiunque, anche se è comunque necessario possedere un minimo di manualità nonché disporre degli strumenti adeguati. I materiali usati sono profilati
da alluminio a profilo L e a profilo piatto, entrambi dello spessore di 3 mm. Facilmente reperibile nei negozi di fai da te,
la base di appoggio è in multistrato con uno spessore di 15 mm, la scatola in cui è ancorato il braccio robotico e in cui è alloggiata la scheda di controllo è una scatola a pareti lisce 100×100 mm per derivazioni elettriche.

 

 

Figura 3: piano di montaggio della scheda del Cubo a LED

In figura 4 possiamo vedere la pinza usata, che potete trovare su internet, e le squadre usate che collegano i servocomandi ai supporti, dato che le squadre hanno delle forature diverse che cambiano da costruttore a costruttore, al momento della realizzazione dei supporti bisogna riportare le misure delle proprie squadre sui supporti per eseguire i fori.Per il taglio e la foratura dei vari elementi fare riferimento alla figura 3. Ovviamente, durante le fasi di montaggio, potrete eseguire tutte le modifiche che riterrete opportune al fine di migliorare il progetto proposto.

 

Figura 4: Pinza per servocomandi

Il firmware

Il firmware dell’ATMEGA328P è stato scritto in linguaggio C (Arduino UNO).Nel listato 1 è riportata una porzione di sorgente in cui sono riportate le variabili che possono essere cambiate, come la posizione minima, massima e i gradi di rotazione.

int minPulse1 = 20; // posizione minima 0°
int maxPulse1 = 160; // posizione massima 180°
int turnRate1 = 5; // ruota di 5° alla volta
int minPulse2 = 10; // posizione minima 0°
int maxPulse2 = 100; // posizione massima 180°
int turnRate2 = 5; // ruota di 5° alla volta
int minPulse3 = 60; // posizione minima 0°
int maxPulse3 = 180; // posizione massima 180°
int turnRate3 = 5; // ruota di 5° alla volta
int minPulse4 = 20; // posizione minima 0°
int maxPulse4 = 100; // posizione massima 180°
int turnRate4 = 5; // ruota di 5° alla volta
int minPulse5 = 20; // posizione minima 0°
int maxPulse5 = 120; // posizione massima 180°
int turnRate5 = 20; // ruota di 20° alla volta
int minPulse6 = 20; // posizione minima 0°
int maxPulse6 = 100; // posizione massima 180°
int turnRate6 = 20; // ruota di 20° alla volta

 

Comandi seriali
Incrementa Decrementa
Servo 1 Q A
Servo 2 W S
Servo 3 E D
Servo 4 R F
Servo 5 T G
Servo 6 Y H
LED U
Bps 57600 8-N-1

 

 

 

Le modifiche vanno apportate in base alle aperture, chiusure e la rotazione che si vuole ottenere. Il firmware riconosce la sequenza di caratteri riportata in tabella “Comandi seriali” come si può vedere nelle due colonne “Incrementa” e “Decrementa” per ogni servocomando ci sono due caratteri per fare ruotare il perno del servocomando in senso orario e antiorario. L’incremento o il decremento in gradi di rotazione dipende dalle variabili dichiarate nel sorgente come spiegato in precedenza. Per fare lampeggiare il LED è stato usato un solo carattere in quanto lampeggia solo per un breve periodo. La trasmissione seriale implementata del tipo 8-N-1 cioè dati a 8 bit, nessuna parità, 1 bit di stop con velocità 57600 Bps.

Realizzazione della scheda e collaudo

Passiamo adesso alla costruzione della scheda che si presenta abbastanza semplice, la basetta è del tipo mono faccia e si prepara a partire della traccia di figura 5.

 

Figura 5: Piano di montaggio e master dello stampato (lato saldature).

Ottenuto il circuito stampato montate (seguendo il piano di montaggio figura 5) i componenti richiesti dalla “Lista componenti”, partendo dalle resistenze e dal diodo D1 e lo zoccolo per l’integrato, quindi proseguendo con i condensatori prima i non polarizzati e poi gli elettrolitici, e in fine con il quarzo Y1, gli strip, il pulsante S1, i LED. Finito il montaggio della scheda potete fissare la scheda dentro il contenitore tramite distanziali, successivamente fissare il braccio alla scatola. Eseguite il collegamento dei servocomandi, del LED e del convertitore USB/UART tramite cavi Dupont come è rappresentato in figura 6. A questo punto potete collegare la scheda alla seriale del PC o tramite convertitore USB a seriale, avviate il software per impartire i primi comandi di movimento.

Figura 6: Schema di collegamento

Il software

Prima cosa dovete installare il software “Robot ARM V2.0” scaricabile gratuitamente dal nostro sito insieme a tutti gli altri file necessari per la realizzazione di questo progetto. Durante l’installazione verrà creata un’icona sul desktop per facilitare l’avvio del software la cui schermata iniziale si presenta come visibile in figura 7.

Figura 7: Schermata principale del Software di controllo

Effettuata l’installazione, per prima cosa è necessario impostare la porta di comunicazione utilizzata: per farlo dovrete cliccare sull’icona a forma di spina presente in alto a destra, si aprirà una finestra di nome “Hardware”, selezionate “Serial Interface”, cliccate su “Modify”. Si aprirà un’altra finestra in cui è possibile selezionare la vostra porta “Com”; a questo punto cliccate “OK”e cliccate “OK“ su “Hardware”: la porta seriale è configurata! In figura 7 possiamo vedere la schermata principale del programma, i comandi a disposizione prevedono lo spostamento di ogni singolo servocomando e il lampeggio del LED permettendo molteplici funzioni operative. Per inviare un comando di spostamento è sufficiente
cliccare su uno dei pulsanti a forma di freccia. Il LED viene accesso in modalità lampeggiante per un breve periodo di tempo, dal pulsante LED. Per pilotare il Robot è anche possibile usare la tastiera, come si può vedere i comandi sono indicati nella schermata del software, inoltre è possibile usare un joystick che facilita molto la movimentazione del braccio robotico come si può vedere dalla figura 7, anche per il joystick è indicato, in base al movimento, il servocomando che viene attivato. Il joystick va scelto con queste caratteristiche tre assi di movimento, almeno quattro pulsanti e collegamento USB, il modello usato in questo progetto è costruito dalla “THRUSTMASTER” modello “USB joystick” vedi figura 8, che potete trovare in qualsiasi negozio di informatica. Sono stati previsti anche dei LED che si accendono quando un servocomando viene attivato ed inoltre ha una funzione di test (pulsante TEST) che accende in sequenza i servocomandi e il LED posto sulla pinza.

Conclusione

Tutti i file per la realizzazione, come già è stato detto, sono disponibili per download sul nostro sito, cliccando sul pulsante in fondo a destra. Come avete letto in precedenza le applicazioni non si limitano solo a quelle descritte, ma sono molteplici. Il sorgente del firmware è scritto in linguaggio C per Arduino UNO ed è facilmente modificabile e adattabile alle proprie esigenze. Il software è stato sviluppato con “Profi-Lab-Expert 4.0” anche esso adeguabile alle proprie necessità.

Lista componenti
R1÷ R2 470 Ω 1/4 W
R3 10 KΩ  1/4 W
R4 470 Ω 1/4 W
R5 390 Ω 1/4 W
C1÷ C2 100 nF poliestere
C3 100 µF  35 V elettrolitico
C4 100 nF poliestere
C5 100 µF  35 V elettrolitico
C6 22 pF ceramico
C7 ÷C8 100 nF poliestere
C9 22 pF ceramico
C10 ÷C11 1000 µF  25 V elettrolitico
C12÷ C15 10 µF  100 V elettrolitico
C16 1000 µF  25 V elettrolitico
C17 220 µF  35 V elettrolitico
C18 100 nF poliestere
D1 BY255 diodo
N° 1 Convertitore USB-CE5
IC2 ATMEGA328P
J1÷ J7 Strip maschio 3 pin
J8 Presa DC 90° c.s. 5,5×2,1 mm
J9 Strip maschio 2×3 pin
LED1 Led 5 mm arancione
LED2 Led 5 mm verde
LED3 Led 5 mm giallo
S1 Pulsante c.s.
X1 Connettore 90° DB9 F.
Y1 Quarzo 16MHz
P1 Ponticello
P2 Ponticello
N.1 Led 5 mm blu

A questo link è possibile scarica il firmware e il software per il PC

Al seguente link è possibile vedere il braccio robotico in funzione

Total 0 Votes
0

Tell us how can we improve this post?

+ = Verify Human or Spambot ?

About The Author

Sono Giuseppe La Rosa. Appassionato di “elettricità”sin da giovane, ho terminato gli studi in Elettronica e Telecomunicazioni durante l'anno 2002 presso I.T.I.S. "G. Ferraris" di Acireale. In seguito ho cominciato lo studio per passione e da autodidatta di sistemi a Microcontrollori; in particolare i microcontrollori PIC prodotti da Microchip e poi la piattaforma Open Source Arduino UNO. Nel corso degli anni ho maturato varie esperienze che mi permettono di realizzare diversi prototipi, di cui molti progetti sono stati pubblicati in varie riviste del settore: tra cui: Fare Elettronica, CQ Elettronica e ultimamente nel blog di EMC Elettronica per cui ho collaborato per la realizzazione di vari progetti. Attualmente mi occupo di sistemi di sicurezza (videosorveglianza e anti intrusione) e software per la gestione dei punti vendita. Spero che i miei articoli possano essere di aiuto per le vostre realizzazioni personali.

Nessun commento on "Robot Antropomorfo V2.0"

Leave a Comment

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.