Robot Arm di Nicholas Maiocchi è il progetto d’esame realizzato con Arduino ed un braccio servocontrollato.
Probabilmente il cognome Maiocchi ti sembrerà di averlo già sentito o letto; ricordi forse Stefano che qualche anno fa ha realizzato e voluto condividere dei progetti su questo blog.
Qualche settimana fa Stefano mi ha scritto chiedendomi se potessi essere interessato al Robot Arm di Nicholas, suo figlio, preparato e presentato all’esame svoltosi qualche giorno prima.
La prima sensazione è stata di grande felicità nel leggere l’email di Stefano, stimato maker, e man mano che leggevo l’email saliva in me un senso di gioia che ho subito voluto condividere con Stefano rispondendogli.
L’idea che un figlio segua, persegua e faccia evolvere la passione per la robotica seguendo le orme del padre penso sia fonte di infinito orgoglio per Stefano, già solo per questo ho accettato l’idea di pubblicare il progetto.
Quando alcuni giorni dopo sono riuscito a leggere il progetto, guardare le slide e vedere il video ho capito che la mela non cade molto lontano dall’albero.
Lascio da subito a Nicholas la possibilità di presentarsi e presentarti il progetto.
Chi è Nicholas Maiocchi
Sono uno studente di 19 anni, appena diplomato in Elettronica presso l’istituto tecnico G.Caramuel di Vigevano (PV).
Ho deciso di portare questo progetto poichè mi interessava l’argomento robotica e in particolare i bracci manipolatori.
La particolarità di questo progetto è il costo di realizzazione estremamente basso e l’applicazione di una eccellenza italiana come Arduino.
Il progetto robot arm di Nicholas è, in piena ottica open-source, condiviso sul gitHub di “famiglia”:
https://github.com/Maiocchi-Stefano/Robot_Arm
Da cui puoi consultarlo e scaricare tutte le infomazioni di cui potresti aver bisogno per realizzarlo.
Robot Arm di Nicholas Maiocchi
il robot arm di Nicholas Maiocchi è stato oggetto della mia tesina per l’esame di stato (ex esame di maturità).
E’ braccio robot manipolatore a 5 gradi di libertà + pinza la cui funzione è posizionare nei punti assegnati dei cubi colorati di legno e di metallo, previo riconoscimento del colore e del materiale mediante opportuni sensori.
Per la costruzione della struttura del braccio puoi usare un kit composto da parti in alluminio e servomotori MG996R con ingranaggi metallici e coppia max 11 Kg/cm.
Trovi sul GitHub il file PDF con le istruzioni di montaggio, in cinese, ma molto ricco di foto e quindi facilmente comprensibile.
Riconoscimento dei cubi colorati
I cubetti da manipolare hanno lato di 28 mm e sono realizzati alcuni in legno e altri in metallo, alluminio.
Ciascun cubo é di diverso colore, fatta esclusione per l’unico bianco presente nel progetto.
Al fine di consentire al Robot Arm di riconoscere i cubetti di materiale metallico ho usato un Interruttore di prossimità induttivo:
che ha una distanza di rilevamento dell’alluminio di max 3 mm.
Il riconoscimento del colore è basato sul sensore VEML6040:
e avente interfaccia I2C mediante l quale fornisce 4 valori da 16 bit rispettivamente per i colori RGBW (red, green, blue, white) della luce riflessa dai cubetti.
Poiché i valori misurati sono sensibili alla distanza tra sensore e cubetto e sono disturbati dalla luce ambiente, ho costruito una struttura trasparente per accogliere il cubetto da manipolare in cui trovano posto sia il sensore di colore direttamente a contatto col piano, sia il sensore di prossimità induttivo:
In questo modo la distanza è fissa e la faccia del cubetto viene illuminata solo dal led presente sulla scheda del sensore VEML6040.
Sulla base trova posto anche il sensore di presenza del pezzo da manipolare:
opportunamente tarato a pochi millimetri dal pezzo stesso in modo da non farsi ingannare.
Infine un display lcd 16×2 I2C è usato per visualizzare il messaggio “Scegli un pezzo posalo alla base” e successivamente indicare il colore e il materiale riconosciuto:
La scheda a micro controllore impiegata è Arduino Nano.
Schema del Robot Arm di Nicholas Maiocchi
Nella figura seguente del robot arm di nicholas sono rappresentati i vari collegamenti .
L’alimentazione del circuito è un aspetto importante in quanto il rapido movimento del braccio richiede che i servomotori presenti agiscano contemporaneamente richiedendo un picco di corrente assorbita che supera i 4 ampere.
Al fine di realizzare una struttura portatile ho alimentato il robot arm con una batteria al piombo.
Per ridurne il peso e le dimensioni ho scelto una batteria da 12 V 12 A/h con Imax=3A.
Applicando un convertitore DC/DC switching ho dimezzato la tensione adattandola a quella richiesta dai servomotori ( 6 V ).
L’alimentazione di Arduino, dei sensori e del display è prelevata da un powerbank USB a 5 V.
La separazione delle due fonti di alimentazione è resa necessaria per far fronte ai picchi di corrente, durante i quali hai brevissimi cali di tensione rispetto ai 6 V nominali.
Effetti dell’alimentazione sui servo motori
Se usassi la tensione di 6v ricavata del DC-DC step down sul pin Vin dell’Arduino Nano, il suo regolatore a 5 V, lascerebbe passare gli sbalzi che indurrebbero il braccio a fare movimenti imprecisi.
Nel video, sotto, vedrai che l’applicazione di una unica fonte di alimentazione causa l’errato posizionamento dei cubetti gialli; usando le alimentazioni separate tutti i movimenti guadagnano precisione e di conseguenza il posizionamento più preciso.
Nel prossimo articolo analizzeremo il diagramma di flusso e lo sketch che muove il braccio robot.