Differenze tra le versioni di "Robot Rover Arduino Giacomino"

Da GolemWiki.
Jump to navigation Jump to search
(aggiornato serata 14/12)
(Modificata radicalmente su idea del gruppo Lunedino)
Riga 1: Riga 1:
Come prodotto di un lungo periodo di riflessione, un gruppo di appassionati
+
Nel mese di maggio 2015, un gruppo di aggeggioni appassionati di elettronica e meccanica, hanno iniziato a trovarsi la sera, e per dare concretezza alla loro immaginazione, hanno pensato di costruire un piccolo robot. Tutte le idee sono partite da una scheda Arduino UNO. Alla scheda è stata accoppiata una scheda motor shield, necessaria per controllare agevolmente i due motori che daranno il movimento al robot. Molte energie sono state spese per dare una struttura al robot, che come la storia di Pinocchio, a mano a mano che ha preso forma ha ispirato ai suoi costruttori il proprio nome: "Giacomino". Una volta assemblata la struttura che al contempo fissava i due motori, conteneva le batterie ed offriva appoggio ad Arduino e inoltre permetteva di ospitare, a breve, i sensori e che permetteranno a Giacomino di vedere il mondo, si è passati all'assemblaggio della parte elettronica nella sua versione praticamente definitiva. Fatte alcune verifiche intermedie per accertarsi del funzionamento di quanto già fatto, sono stati montati i sensori. A questo punto un paziente lavoro di affinamento ha permesso di controllare la velocità dei singoli motori e quindi la direzione del cammino di Giacomino. Finalmente Giacomino è in grado di muoversi da solo, basta che abbia le batterie cariche
di Arduino ha dato forma questa sera a un robottino che lasciato
 
tutti sorpresi per la sua forma compatta. Dopo un primo momento di
 
stupita ammirazione si è voluto dare un nome all’aggeggio.
 
Per le sue dimensioni e per l'assonanza con Arduino, il nome è stato ricercato
 
fra i nomi che finiscono in "ino". La scelta è stata Giovannino. Orgoglioso
 
del suo nome Giovannino ha mosso per la prima volta le sue ruotine sul tavolo
 
opportunamente istruito dai suoi costruttori. Come accade e a tutti coloro che
 
per la prima volta muovono i primi passi nel mondo, anche Giovannino ha sbandato
 
ora a destra ora a sinistra. Ma dopo quattro o cinque volte ha fatto la sua prima
 
camminata diritta. Dopodiché Giovannino è stato coricato nella sua scatolina.
 
'''Continua a leggere il [http://golem.linux.it/files/arduino/lunedino/Progetto_Robot/diario.txt diario del Lunedino]'''
 
  
A seguito dei corsi base di Arduino tenuti sia presso l'ASEV di Empoli che al GOLEM, si è costituito un gruppo "open hardware" con l'intenzione di sviluppare progetti applicativi.
+
==La ricetta==
 +
===Ingredienti per la farcia (elettronica)===
 +
* Una scheda [www.arduino.cc Arduino UNO]
 +
* Una scheda [https://www.adafruit.com/products/81 motor shield Adafruit]
 +
* Un sensore [http://www.banggood.com/Wholesale-Ultrasonic-Module-HC-SR04-Distance-Measuring-Ranging-Transducer-Sensor-p-40313.html HC SR04]
 +
* Due sensori CNY70
 +
* Due resistenza 10k (da negozi di elettronica locali)
 +
* Due resistenze 330 (da negozi di elettronica locali)
 +
* Due motoriduttori DC 3V - 6V
 +
* Quattro batterie ricaricabili AAA da 1,2V, sostituite poi con una batteria 9V  (da negozi di elettronica locali)
 +
* Fili per connessioni di colori vari
  
Per il primo lavoro c'è stata convergenza d'intenti sulla realizzazione di un robot rover.
+
===Ingredienti per l’impasto (meccanica)===
 +
* Due ruote da scegliere tra le opzioni
 +
** Autocostruite da un profilo di legno tondo (usando un tornio)
 +
** Tagliate con il laser da un foglio di compensato di 5mm (con l'aiuto delle macchine di FabLab Cascina)
 +
** Acquistate su siti internet [http://www.robot-italy.com/it/black-abs-wheel-for-sbgm2-and-3-gearmotors.html specializzati]
 +
* Un profilato di alluminio "tubo quadro" 25x25x1mm lunghezza 80mm
 +
* Una lastra in alluminio 85x70x2mm
 +
* Due Barre filettate M3 di 70mm
 +
* 10 dadi M3
 +
* 1 dado cieco M4
 +
* 1 vite TPS M4x5
 +
* Quattro viti TBL M3x15mm
 +
* Due viti TBL M4x5
 +
* Due piastrine supporto dei sensori CNY70 ricavate da un foglio di alluminio
 +
* Due pezzetti di basetta millefori come supporto dei sensori CNY70 e delle resistenze
 +
* Due dischi da applicare alle ruote, stampati a settori, da applicare alle ruote
 +
* Sei viti per modellismo di 1,7mm di diametro
  
==Lista dei materiali==
+
==La preparazione==
  
===Elettronici===
+
<table>
* Scheda "arduino uno";
+
<tr>
* Scheda "motor shields adafruit";
+
<td>
La scelta di una shield dedicata ottimizza la gestione dei motori e comprime costi e tempi di lavorazione.
+
La preparazione inizia da un'attenta selezione degli ingredienti per l'impasto, ovvero dei componenti meccanici, Per questa ricetta è importante scegliere bene il profilato di alluminio che poi costituirà la struttura portante di Giacomino. Ai lati del profilato ad una estremità saranno fissati i due motori. Qui occorre tanta attenzione nel loro posizionamento e quindi nella foratura del profilato. È ovvio che i due motori si devono trovare a loro agio nella loro posizione, cioè il montaggio non deve produrre attriti o inutili impedimenti alla loro rotazione. Il passo successivo è il montaggio delle ruote e del dado cieco sul lato inferiore del profilato. Le ruote meritano la stessa attenzione per lasciare loro piena libertà di movimento.
* Sensore ad ultrasuoni;
+
</td>
E' stato preferito questo tipo di sensore ad uno all'infrarosso perché non risente del colore e della eventuale trasparenza degli ostacoli.
+
<td>
 +
[[File:Robot-arduino-1.jpg|200px]]
 +
</td>
 +
</tr>
  
===Elettrici===
+
<tr>
* 2 motori con riduzione 48:1;
+
<td>
La riduzione assicura maggior coppia e stabilità in caso di pendenza;
+
Sul lato superiore del profilato si fisserà la lastrina di alluminio sulla quale poi si andrà a posizionare la scheda Arduino che a sua volta è stata accoppiata la scheda motor shield. Una volta montata la struttura portante (profilato + piastrina), motori e schede, è necessario collegare elettricamente i motori alle schede. Per dare autonomia al robot si alloggia la batteria all’interno del profilato e la si collega alla scheda.
*<strike> Batteria metal idruro 9V 800 mAh;
+
</td>
Questo tipo di batteria permette di ottimizzare il dimensionamento dello chassis trovando alloggio tra i due motori.</strike>
+
<td>
* Batterie x4 AAA Eneloop NiMh da 1.2v l'una (per un totale di 4.8v)
+
[[File:Robot-arduino-3.jpg|200px]]
Le Batterie sono state saldate e collegate fra di loro dentro lo chassis, come le precedenti. Queste però entrano in maniera più ottimale e sono più durature per il nostro progetto.
+
</td>
 +
</tr>
  
===Meccanici===
+
<tr>
* Telaio in alluminio;
+
<td>
Inizialmente era stato pensato un telaio intagliato a laser, che per varie questioni, fra le quali la disponibilità di tempo, non è stato possibile realizzare. Rimane comunque un progetto per una stampa in laser cut.
+
Il robottino a questo punto ha un suo aspetto già ben definito da meritare un nome. Il nostro è stato chiamato Giacomino. Prima di proseguire con la preparazione della ricetta è bene iniziare a insegnare a Giacomino a muovere i primi passi. Così il robottino può precocemente iniziare ad imparare e a esplorare l’universo. Inoltre si controlla se il montaggio è stato fatto correttamente. È importante capire se Giacomino è in grado di mantenere la giusta direzione di movimento. Per controllare in modo accurato la direzione del cammino di Giacomino occorre un paziente lavoro di montaggio sotto il profilato dei sensori CNY70, delle resistenze e dei dischi sulle ruote per realizzare un encoder. Il software per il controllo dei motori sarà esteso per controllare le informazioni dei sensori e quindi per controllare opportunamente i motori.
 +
</td>
 +
<td>
 +
[[File:Robot-arduino-4.jpg|200px]]
 +
</td>
 +
</tr>
  
Il telaio è quindi diviso fra un tubo quadro che sostiene ai lati i due motori, tramite due barre di ferro e una lastra di metallo avvitata sopra il tutto, opportunamente isolata con della gomma, sopra la quale sono installate le schede di Arduino e la motor shield adafruit.
+
<tr>
* Ruote gommate in legno;
+
<td>
Anche per le ruote, che erano state pensate originariamente intagliate in alluminio, alla fine sono state realizzate in legno con il battistrada intagliato, nel quale è stato poi inserito un anello di gomma (o-ring) per una maggiore aderenza.
+
A questo punto, per insegnare a Giacomino a osservare il mondo si procede al montaggio del sensore a ultrasuoni sulla fronte. Il [http://golem.linux.it/files/arduino/lunedino/Progetto_Robot/Robot_v2/Robot_v2.ino software] a sua volta imparerà a vedere fuori, in avanti, e quindi a dirigere Giacomino per la giusta via. A questo punto non rimane che caricare le batterie a augurare a Giacomino buona passeggiata.
* Dado cieco per terzo punto di appoggio anteriore;
+
</td>
Purtroppo le alternative erano troppo costose o troppo ingombranti. Rimane comunque l'opportunità di ottimizzare il tutto in futuro.
+
<td>
* Bulloneria varia;
+
[[File:Robot-arduino-5.jpg|200px]]
 
+
</td>
==Progettazione==
+
</tr>
 
+
</table>
===Sviluppo===
 
*Saldature
 
Per le saldature effettuate sui motori DC, è stato necessario rinforzare le basi delle saldature con una punta di colla a caldo per evitare che eventuali strappi potessero danneggiare i circuiti.
 
 
 
===Programmazione===
 
Il codice di progetto, totalmente open-source, che viene scritto in C++ tramite il programma dedicato di Arduino, (programma scaricabile dal sito [http://arduino.cc Arduino]), verrà pubblicato su questo sito in modo che ognuno sia libero di scaricare, modificare e usare il codice per il proprio progetto.
 
 
 
Per controllare la Motor Shield è necessario utilizzare la relativa [https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master libreria] scritta da Adafruit.
 
 
 
* [http://golem.linux.it/files/arduino/lunedino/Progetto_Robot/Robot_testing/Robot_testing.ino Listato di testing] Via seriale si inviano dei codici per accendere i motori separatamente e a velocità desiderata. In particolare: s''nnn'' regola il motore sinistro e d''nnn'' il motore destro, dove ''nnn'' è la velocità espressa in valore compreso fra 0 e 255.
 
* [http://golem.linux.it/files/arduino/lunedino/Progetto_Robot/Robot_v1/Robot_v1.ino Primo listato funzionante] Comprende anche il sensore ad ultrasuoni, si muove ed evita (ancora non con precisione) gli ostacoli.
 
 
 
===Improvements in corso===
 
Si sono presentati alcuni problemi che stiamo cercando di rimediare:
 
* Il robot non va perfettamente dritto: cercheremo di tenere il conto dei passi per
 
* Non evita gli ostacoli alla perfezione, soprattutto se troppo vicini: saranno installati dei sensori "bumper", meccanici, sensibili agli urti
 
 
 
Al momento stiamo dedicando tempo al testing degli encoder, verificando i tempi di reazione dei sensori CNY70 (vedi [http://golem.linux.it/files/arduino/lunedino/Progetto_Robot/IR_testing/IR_testing.ino codice di prova]).
 
 
 
==Foto Gallery==
 
<gallery>
 
File:robot-arduino-1.jpg|Motori, tubo quadro e ruote prima del montaggio
 
File:robot-arduino-2.JPG|
 
File:robot-arduino-3.jpg|
 
File:robot-arduino-4.jpg|Meccanica quasi completata
 
File:robot-arduino-5.jpg|
 
</gallery>
 
 
 
Appunti scritti da PinPas, ri-editato da [[User:Giulio|Giulio]] e Massimo Romagnoli.
 
 
 
[[Category: Howto]]
 

Versione delle 12:05, 1 mag 2016

Nel mese di maggio 2015, un gruppo di aggeggioni appassionati di elettronica e meccanica, hanno iniziato a trovarsi la sera, e per dare concretezza alla loro immaginazione, hanno pensato di costruire un piccolo robot. Tutte le idee sono partite da una scheda Arduino UNO. Alla scheda è stata accoppiata una scheda motor shield, necessaria per controllare agevolmente i due motori che daranno il movimento al robot. Molte energie sono state spese per dare una struttura al robot, che come la storia di Pinocchio, a mano a mano che ha preso forma ha ispirato ai suoi costruttori il proprio nome: "Giacomino". Una volta assemblata la struttura che al contempo fissava i due motori, conteneva le batterie ed offriva appoggio ad Arduino e inoltre permetteva di ospitare, a breve, i sensori e che permetteranno a Giacomino di vedere il mondo, si è passati all'assemblaggio della parte elettronica nella sua versione praticamente definitiva. Fatte alcune verifiche intermedie per accertarsi del funzionamento di quanto già fatto, sono stati montati i sensori. A questo punto un paziente lavoro di affinamento ha permesso di controllare la velocità dei singoli motori e quindi la direzione del cammino di Giacomino. Finalmente Giacomino è in grado di muoversi da solo, basta che abbia le batterie cariche

La ricetta

Ingredienti per la farcia (elettronica)

  • Una scheda [www.arduino.cc Arduino UNO]
  • Una scheda motor shield Adafruit
  • Un sensore HC SR04
  • Due sensori CNY70
  • Due resistenza 10k (da negozi di elettronica locali)
  • Due resistenze 330 (da negozi di elettronica locali)
  • Due motoriduttori DC 3V - 6V
  • Quattro batterie ricaricabili AAA da 1,2V, sostituite poi con una batteria 9V (da negozi di elettronica locali)
  • Fili per connessioni di colori vari

Ingredienti per l’impasto (meccanica)

  • Due ruote da scegliere tra le opzioni
    • Autocostruite da un profilo di legno tondo (usando un tornio)
    • Tagliate con il laser da un foglio di compensato di 5mm (con l'aiuto delle macchine di FabLab Cascina)
    • Acquistate su siti internet specializzati
  • Un profilato di alluminio "tubo quadro" 25x25x1mm lunghezza 80mm
  • Una lastra in alluminio 85x70x2mm
  • Due Barre filettate M3 di 70mm
  • 10 dadi M3
  • 1 dado cieco M4
  • 1 vite TPS M4x5
  • Quattro viti TBL M3x15mm
  • Due viti TBL M4x5
  • Due piastrine supporto dei sensori CNY70 ricavate da un foglio di alluminio
  • Due pezzetti di basetta millefori come supporto dei sensori CNY70 e delle resistenze
  • Due dischi da applicare alle ruote, stampati a settori, da applicare alle ruote
  • Sei viti per modellismo di 1,7mm di diametro

La preparazione

La preparazione inizia da un'attenta selezione degli ingredienti per l'impasto, ovvero dei componenti meccanici, Per questa ricetta è importante scegliere bene il profilato di alluminio che poi costituirà la struttura portante di Giacomino. Ai lati del profilato ad una estremità saranno fissati i due motori. Qui occorre tanta attenzione nel loro posizionamento e quindi nella foratura del profilato. È ovvio che i due motori si devono trovare a loro agio nella loro posizione, cioè il montaggio non deve produrre attriti o inutili impedimenti alla loro rotazione. Il passo successivo è il montaggio delle ruote e del dado cieco sul lato inferiore del profilato. Le ruote meritano la stessa attenzione per lasciare loro piena libertà di movimento.

Robot-arduino-1.jpg

Sul lato superiore del profilato si fisserà la lastrina di alluminio sulla quale poi si andrà a posizionare la scheda Arduino che a sua volta è stata accoppiata la scheda motor shield. Una volta montata la struttura portante (profilato + piastrina), motori e schede, è necessario collegare elettricamente i motori alle schede. Per dare autonomia al robot si alloggia la batteria all’interno del profilato e la si collega alla scheda.

Robot-arduino-3.jpg

Il robottino a questo punto ha un suo aspetto già ben definito da meritare un nome. Il nostro è stato chiamato Giacomino. Prima di proseguire con la preparazione della ricetta è bene iniziare a insegnare a Giacomino a muovere i primi passi. Così il robottino può precocemente iniziare ad imparare e a esplorare l’universo. Inoltre si controlla se il montaggio è stato fatto correttamente. È importante capire se Giacomino è in grado di mantenere la giusta direzione di movimento. Per controllare in modo accurato la direzione del cammino di Giacomino occorre un paziente lavoro di montaggio sotto il profilato dei sensori CNY70, delle resistenze e dei dischi sulle ruote per realizzare un encoder. Il software per il controllo dei motori sarà esteso per controllare le informazioni dei sensori e quindi per controllare opportunamente i motori.

Robot-arduino-4.jpg

A questo punto, per insegnare a Giacomino a osservare il mondo si procede al montaggio del sensore a ultrasuoni sulla fronte. Il software a sua volta imparerà a vedere fuori, in avanti, e quindi a dirigere Giacomino per la giusta via. A questo punto non rimane che caricare le batterie a augurare a Giacomino buona passeggiata.

Robot-arduino-5.jpg