Braccio Robotico Controllato Da Arduino E Interfaccia Touch

7.2K2021

Intro: Braccio Robotico Controllato Da Arduino E Interfaccia Touch

Ciao. Oggi sono qui per vedere insieme a voi come ho costruito un braccio robotico con Arduino ed un'interfaccia grafica touch.


Ci tengo a dire che questo per me non è un semplice intruglio di componenti vari che costruiscono assieme un oggetto finito ma è qualcosa di molto di più, un vero e proprio progetto che è iniziato da un'idea nata dalla mia passione mesi fa e finisce oggi con la pubblicazione di questo articolo.


Grazie all' interfaccia grafica è possibile non solo di muovere i vari giunti in tutte le direzioni possibili ma anche programmare i movimenti che dovrà compiere a ripetizione


Ma adesso, mettetevi comodi e vediamo cosa ci serve per realizzarlo!

STEP 1: Il Design E Il Modello 3D

Grazie a questa magica finestra di Fusion 360, potete osservare il modello 3D del braccio robotico che ho dovuto disegnare e progettare molto molto prima che iniziasse tutta la fase di costruzione per evitare errori


Partendo dall'estremità, voglio ripercorrere tutte le scelte progettuali compiute:

STEP 2: La Pinza

La pinza, che è stata posta all'estremità di tutto ha un design non nuovo che ho trovato già in molte pinze meccaniche su siti come Thingiverse (nota piattaforma per trovare modelli 3D online) e che ho riprogettato adattandola a seconda di questa esigenza.

La pinza si stampa tutta in pochi pezzi ed è possibile assemblarla solo grazie a dei dadi e dei bulloni da 3 millimetri. Una volta assemblata mi è bastato portare il servo nella posizione "0 gradi" e, tenendo la pinza aperta, posizionare il servo al di sotto, stringere tutte le viti ed il gioco è fatto.

La pinza poi l'ho avvitata al polso con quattro viti alla piastra rotante del servomotore dell'angolazione del polso.

STEP 3: Il Polso (angolazione E Rotazione):

Per la movimentazione del polso, il braccio ha bisogno di due motori: uno per l'angolazione del polso e uno per la rotazione del polso (uno che lo muova su e giù e uno che lo ruoti in senso orario o antiorario).

Per la sede del primo motore è stato necessario creare una sede nel tubo quadrato di alluminio dalla qualche far uscire la parte posteriore del motore. Il motore (come tutti i motori tranne per la base e la rotazione del polso) è montato con due adattatori.

Questi due adattatori li ho realizzati sempre in Fusion 360 e con la stampante 3D. È bastato avvitare con quattro bulloni il motore agli adattatori e poi montare gli adattatori lateralmente ai profili di alluminio (con una speciale dima per i fori che vi lascio nei file)

Oltre a questo è stato necessario praticare un foro di 22mm di diametro (stessa dimensione interna del profilo di alluminio) per far uscire la piastra del motore che ho avvitato alla pinza con quattro viti.

Per il secondo motore (quello della rotazione del polso) è stato molto più complesso. Infatti è stato necessario montare il motore in modo tale che fosse direzionato verso l'esterno e non verso un lato del profilo di alluminio.

Per questo motivo ho progettato un adattatore che "abbracciasse" solo due lati del quadrato di alluminio così che lo spazio dei due lati rimossi fosse dedicato ad alloggiare il motore verticalmente.

La piastra del secondo motore (rotazione del polso) si va ad avvitare quindi ad un altro adattatore stampato in 3D che abbraccia il profilo di alluminio (quello più all'estremità) che regge gli ultimi due motori all'estremità.

STEP 4: Il Gomito

Per realizzare il giunto del gomito ho dovuto inserire nella parte finale del profilo di alluminio il motore (con la stessa tecnica dell'angolazione del polso) e ho dovuto collegare la piastra rotante del motore all'altro profilo di alluminio con le quattro viti in dotazione con il motore (che servirebbero per il montaggio del motore ma che vanno bene anche per la piastra).

Per avvitare la piastra del motore al profilo di alluminio che costituisce l'avambraccio, ho fatto dei fori nella parte vicino al motore e dei fori più grandi nella parte esterna (quelli che vedete in foto) per poter far entrare il cacciavite ed avvitare le viti.

STEP 5: La Spalla

Per collegare la spalla alla base rotante ho preferito inserire il motore nel braccio (non avambraccio) piuttosto che nella base ma sono scelte, nella pratica non cambia niente (neppure a livello di bilanciamento e contrappeso).

Per montarlo, stessa tecnica: pratico un taglio nella parte posteriore dell'alluminio per far uscire l'estremità del motore, faccio il foro di uscita della piastra del motore e successivamente monto il motore con i due adattatori stampati in 3D.

L'avambraccio è montato alla spalla che è collegata alla base rotante con un altro piccolo pezzo di profilo di alluminio che viene abbracciato su tre lati dalla base rotante in modo che possa rimanere fisso.

Come vedete dalle foto, il motore dell'avambraccio (spalla) è aiutato con una serie di molle che esercitano una forza contraria dato che, senza queste, il motore dovrebbe sollevare tutto il braccio da solo compiendo uno sforzo gigante oltre che inutile

STEP 6: La Base Rotante

L'ultimo motore da montare è quello che controlla la rotazione dell'intero braccio meccanico sull'asse verticale.

È bastato inserire il motore nell'apposita sede disegnata e poi stampata in 3D (base fissa) e poi ho dovuto avvitare la piastra rotante del motore alla base rotante (che sorregge tutto il braccio).

Riguardo alla base fissa e rotante, ho voluto che la base rotante si appoggiasse a quella fissa su quattro millimetri di spessore lasciando un filo d'aria per non fare attrito.

Questa scelta progettuale permette alla base rotante di appoggiarsi sui quattro millimetri di spessore della base fissa quando il peso propende in quella direzione. Grazie a quel poco d'aria lasciato tra la base rotante e la base fissa, la piastra del motore non torce.

Nella base fissa è presente un foro che fa passare tutti i fili alla scatola di derivazione in cui alloggia tutta l'elettronica.

STEP 7: Stampa 3D Delle Componenti Necessarie

Le componenti 3D da stampare sono:

  • Adattatore Motore Rotazione Polso x1
  • Adattatore Motori x6
  • Aggancio Rotazione polso lato motore x1
  • Aggancio Rotazione Polso x1
  • Base Fissa x1
  • Base Rotante x1
  • Braccetto Pinza x4
  • Corpo Pinza x1
  • Dito Pinza x2
  • Ghiera Libera Pinza x1
  • Ghiera Motore Pinza x1
  • Tappo Forato x1
  • Tappo Pieno x4

Il numero alla fine indica il numero di copie da fare per la rispettiva stampa

STEP 8: La Costruzione Del Braccio


Per quanto riguarda la costruzione in sé del braccio robotico non ho molto da aggiungere rispetto a quanto detto prima ma facciamo un breve riassunto:

Vi consiglio di partire dall'estremità con il montaggio della pinza che è abbastanza intuitivo e semplice. Una volta montata la pinza dovrete montare il servo SG90 nell'apposito spazio e controllare che tutto si muova senza attriti.

Dopo aver fatto questo dovrete costruire il polso tagliano un piccolo pezzo di alluminio (poco più lungo della larghezza del servo) e, dopo aver effettuato l'intaglio per la parte posteriore del motore e il foro per la ghiera rotante del motore, potete montare il motore dell'angolazione del polso con i due adattatori che ho allegato sopra.

Una volta composto il polso, potete procedere ad avvitare la pinza al motore che controlla l'angolazione del polso.

Fatto queso dovrete montare il servo per la rotazione del polso che non ha nulla di complicato a parte il fatto che dovete intagliare due lati del quadrato d'alluminio per qualche centimetro in modo da lasciare solo due lamelle di alluminio che sosterranno l'adattatore che serve a montare il motore con la ghiera rivolta verso la pinza (all'esterno e non al lato)

Tra il polso (come pezzo in sé) e il motore della rotazione del polso ho voluto aggiungere un altro piccolo pezzo che visivamente effettua la transizione da profilo quadrato a profilo rotondo ma è solo una questione estetica (quindi è opzionale, se volete potete non stamparlo)

Infine, per collegare il pezzo del polso al motore della rotazione del polso dovete stampare uno degli adattatori lasciati nei file che si avvita al pezzo del polso e si avvita, dall'altra parte, alla ghiera rotante del motore.

Per montare gli altri due motori il procedimento è uguale a quello che collega la pinza al motore dell'angolazione del polso, con l'unica differenza che dovrete effettuare dei fori nell'alluminio per ospitare le viti che percorreranno il pezzo d'alluminio e la piastra rotante del motore.

L'ultimo pezzo di alluminio alla base si monta con 5 bulloni (ma se volete potete anche usarne di meno) all'invito stampato in 3d sulla base rotante

Ultimo ma non per importanza, il motore della base rotante è fissato sulla base fissa (stampata in 3D) nell'apposita sede con quattro bulloni

Io per comodità ho montato la base fissa ad una tavola di legno (MDF) più grande per dare stabilità alla struttura

Subito affianco all'uscita dei cavi del braccio robotico va montata una scatola di derivazione per alloggiare tutta l'elettronica all'interno.

STEP 9: Il Circuito Elettrico

Finita la costruzione del braccio robotico è l'ora di passare ai collegamenti elettrici che richiedono particolare attenzione soprattutto nel caso dei motori.

Ovviamente tutti i positivi e i negativi dei motori vanno collegati insieme e solo il segnale deve viaggiare singolarmente ai rispettivi pin di Arduino

Oltre a questo, per la comunicazione seriale tra il dispositivo che monta l'interfaccia grafica è necessario collegare anche un modulo bluetooth HC05 che, oltre ad essere leader in questo tipo di ambito è anche molto semplice da collegare.

Perché bluetooth? Dato che il dispositivo che monta l'interfaccia grafica si trova a meno di 5cm dall'Arduino, la cosa migliore da fare sarebbe stata controllare Arduino (sempre in comunicazione seriale) con l'ausilio della porta USB. Infatti si può controllare anche con la porta USB in quanto Arduino legge la comunicazione seriale in entrata e non gli importa se arriva del Bluetooth o dalla USB (tanto è vero che è controllabile anche da computer)

Il problema era che il dispositivo che monta l'interfaccia grafica (un vecchio telefono Android) ha la porta USB nella parte inferiore e non sono riuscito (neppure con un cavo micro USB a 90 gradi) a far rientrare tutto nella scatola di derivazione.

Tra la 5V e il negativo dell'Arduino, ho aggiunto un condensatore da 2200μF per contrastare gli sbalzi di tensione dovuti del grande assorbimento di corrente dei motori quando effettuano delle manovre "contro peso"

Ultimo ma non per importanza, ho aggiunto un pulsante di reset che si collega al GND e al pin RESET di Arduino

Ricordo che è fondamentale che tutti i negativi (GND) siano collegati insieme ad un negativo comune.

Negativo comune che con il filo del positivo generale (saldato al connettore JackDC) forniranno alimentazione a tutto da 5V a 7,2V MAX

Come vedete dalla foto poi, ho voluto etichettare ogni singolo filo all'interno della scatola con una scritta che mi indicasse a cosa è collegato il filo sia da una parte che dall'altra in modo che in futuro, qualora dovessi apportare delle modifiche o effettuare delle riparazioni) non dovrò sforzarmi di ricordare.

STEP 10: Codice Di Arduino


Dopo aver collegato tutti i fili e, mi raccomando, controllato tutti i fili, è il momento di scrivere e caricare il codice nella scheda per avviarsi verso la fine del progetto.

Il codice che trovate nei due file ( .ino e .txt) è composto da decine e decine di spunti di altri progetti che comprendevano la comunicazione seriale come anche l'uso degli array come anche l'uso dei servomotori e per questo dico un grande grazie a tutta la comunità di Arduino che condivide i propri progetti perché così si cresce!

(ho notato che se copio e incollo il codice in questa pagina si rallenta di molto quindi preferisco condividere i file)

Non potendo quindi spiegare i passaggi in questo articolo, ho lasciato tanti commenti all'interno del codice per spiegare a cosa servono le righe di codice indicate e anche un video che trovate quì sopra

STEP 11: Firmware Dell'interfaccia Grafica

Quello che si nasconde sotto lo schermo (pannello di controllo) sulla scatola di derivazione non è altro che un vecchio smartphone che avevo in casa (qualsiasi dispositivo che monta android ed è touch va bene).

Per programmare l'interfaccia grafica del braccio robotico ho usato "App Inventor" del MIT che è un software online tanto semplice quanto funzionale diviso in due: una parte in cui costruire l'interfaccia grafica (GUI) e un altro in cui, con uno schema a blocchi, programmare effettivamente l'app.

In fin dei conti, l'app non fa altro che mandare dei "codici" seriali all'Arduino tramite bluetooth e poi Arduino, con il suo codice, gestisce tutto.

Ovviamente i codici seriali possono essere personalizzati come si vuole, l'importante è che siano l'uno diverso dall'altro.

Nei file è possibile trovare il file di installazione Android (.apk).


(se necessitate del file di App Inventor, dato che Instructables non supporta il tipo di file .aia, contattatemi alla mail mauriziomiscio.mm@gmail.com)

STEP 12: Finito!

E anche questo articolo si conclude, vi ringrazio tanto se siete arrivati fino alla fine e spero molto che vi sia piaciuto scoprire come è stato realizzato questo progetto ❤️❤️❤️

16 Comments

Salve, volevo realizzare questo progetto per divertimento, ma non riesco a contattarti per avere il file .aia come posso fare per averlo, Grazie
Sto procedendo con la realizzazione ma guardando e riguardando le parti da stampare in 3d mi pare che quello che si chiama Aggancio Rotazione Polso x1.stl non sia quello che hai usato nel progetto, mi pare manchino sia i fori di collegamento al servo per la rotazione del polso e sia i fori di tenuta della parte di alluminio .... oppure sono io che non ho capito come si monta quel pezzo
Non me ne sono accorto :( Ad ogni modo quel pezzo non, è solo per estetica.
Se riesci a modificarlo via software tu è bene altrimenti aggiornerò la pagina prossimamente con il pezzo che è montato ma potrebbe richiedere un po' di tempo perché in questi giorni sono impegnato.
Inoltre ti voglio dire che sono davvero molto contento che tu voglia replicare il progetto e per questo ti invito a seguirmi su Instagram @mauriziomiscio.
A proposito di questo, ti ricordo che il progetto è coperto da un diritto d'autore "Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale (CC BY-NC-SA 4.0)" e quindi devi riconoscere una menzione di paternità adeguata (devi indicare il nome del creatore e delle altre parti designate a ricevere l'attribuzione di paternità, l'informativa sul diritto d'autore, l'informativa sulla licenza, l'informativa sull'esonero da responsabilità e un link all'articolo), fornire un link alla licenza e indicare se sono state effettuate delle modifiche (devi indicare il materiale che è stato modificato e mantenere un indicazione circa le modifiche antecedenti). Puoi fare ciò in qualsiasi maniera ragionevole possibile, ma non con modalità tali da suggerire che il licenziante avalli te o il tuo utilizzo del materiale. Non puoi utilizzare il materiale per scopi commerciali (quindi un uso prevalentemente inteso al proseguimento di un vantaggio commerciale o di un compenso monetario). Non puoi applicare termini legali o misure tecnologiche (quindi la licenza proibisce l'applicazione di misure tecnologiche, come definite dall'articolo 11 del trattato OMPI sul diritto d'autore) che impongano ad altri soggetti dei vincoli giuridici su quanto la licenza consente loro di fare.
la mia è solo una riproduzione a scopo ludico-personale sopratutto per iniziare a stampare qualcosa con la stampante 3d che non sia fine a se stessa, in ogni caso se qualcuno passasse a vedere a casa mia l'oggetto non sarò certo io a negare la paternità dell'oggetto fornendo questo link a chiunque fosse interessato, ci mancherebbe altro.
Ma certo. Sono stato indelicato con te spiegandoti quelle cose ma l'ho scritto anche per chi avesse voglia di replicare come hai fatto tu. A questo proposito, alla fine l'hai fatto il progetto
Salve, posso chiederle con che materiale sono stati fatti i pezzi fatti con la stampante 3D? Grazie mille.
Progetto interessante che vorrei provare a realizzare, dove trovo le dimensioni delle parti in alluminio? Grazie
Gli estrusi di alluminio sono di dimensione 25mm x 25mm con spessore di 1,5 mm. La lunghezza di polso, braccio e avambraccio è molto a gomito (per rimanere in tema ahahah). Scherzi a parte, li ho tagliati più o meno alla lunghezza che mi sembrava giusto tagliarli.
Si alle dimensioni degli estrusi ci ero arrivato dalle dimensioni dei tappi ..... il rsto sarebbe bello sapere almeno approssimativamente così da capire entri che limiti rimanete. Grazie

p.s. Comunque proprio un bel lavoro
Le dimensioni esatte sono: dalla pinza al polso (mano) = 70mm, dal polso al gomito (avambraccio) = 165mm, dal gomito alla spalla (braccio) = 170mm
i find 4 partie alminium bro can u give le dimensioni esatte
Grazie infinite per la disponibilità
Molto ben fatto! Grazie per condividere con noi il tuo lavoro.
Wow thank you so much for completing it but it's a pleasure to do it and thanks to you, thank you for working for a platform that gives everyone space to share what they can do to grow a community together!