Differenze tra le versioni di "Robot Rover Arduino Giacomino"

Da GolemWiki.
Jump to navigation Jump to search
(aggiornato serata 14/12)
m (Giomba ha spostato la pagina Robot Arduino a Robot Rover Arduino Giacomino senza lasciare redirect: Titolo pagina troppo generico, non rispetta le linee guida)
 
(5 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
Come prodotto di un lungo periodo di riflessione, un gruppo di appassionati
+
{{Sviluppo
di Arduino ha dato forma questa sera a un robottino che lasciato
+
<!--Header-->
tutti sorpresi per la sua forma compatta. Dopo un primo momento di
+
|nome = Robot Giacomino
stupita ammirazione si è voluto dare un nome all’aggeggio.
+
|status = Prototipo
Per le sue dimensioni e per l'assonanza con Arduino, il nome è stato ricercato
+
<!--Image-->
fra i nomi che finiscono in "ino". La scelta è stata Giovannino. Orgoglioso
+
|foto = Robot-arduino-4.jpg
del suo nome Giovannino ha mosso per la prima volta le sue ruotine sul tavolo
+
<!--General-->
opportunamente istruito dai suoi costruttori. Come accade e a tutti coloro che
+
|descrizione = Robot rover con Arduino
per la prima volta muovono i primi passi nel mondo, anche Giovannino ha sbandato
+
|licenza = GPL
ora a destra ora a sinistra. Ma dopo quattro o cinque volte ha fatto la sua prima
+
|autore = [[Utente:Giulio|Giulio]], pinpas, piero, Stefano
camminata diritta. Dopodiché Giovannino è stato coricato nella sua scatolina.
+
|contributi =
'''Continua a leggere il [http://golem.linux.it/files/arduino/lunedino/Progetto_Robot/diario.txt diario del Lunedino]'''
+
|categorie = Svago
 +
|link =
 +
}}
  
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.
+
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
  
Per il primo lavoro c'è stata convergenza d'intenti sulla realizzazione di un robot rover.
+
==La ricetta==
 +
===Ingredienti per la farcia (elettronica)===
 +
* Una scheda [http://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
  
==Lista dei materiali==
+
===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
  
===Elettronici===
+
==La preparazione==
* Scheda "arduino uno";
 
* Scheda "motor shields adafruit";
 
La scelta di una shield dedicata ottimizza la gestione dei motori e comprime costi e tempi di lavorazione.
 
* Sensore ad ultrasuoni;
 
E' stato preferito questo tipo di sensore ad uno all'infrarosso perché non risente del colore e della eventuale trasparenza degli ostacoli.
 
  
===Elettrici===
+
<table>
* 2 motori con riduzione 48:1;
+
<tr>
La riduzione assicura maggior coppia e stabilità in caso di pendenza;
+
<td>
*<strike> Batteria metal idruro 9V 800 mAh;
+
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.
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)
+
<td>
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.
+
[[File:Robot-arduino-1.jpg|200px]]
 +
</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.
+
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.
 +
</td>
 +
<td>
 +
[[File:Robot-arduino-3.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.
+
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.
* 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-4.jpg|200px]]
 +
</td>
 +
</tr>
  
==Progettazione==
+
<tr>
 +
<td>
 +
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.
 +
</td>
 +
<td>
 +
[[File:Robot-arduino-5.jpg|200px]]
 +
</td>
 +
</tr>
 +
</table>
  
===Sviluppo===
+
== Materiale prodotto ==
*Saldature
+
* [https://golem.linux.it/cloud/index.php/s/3CTafMGGa2kDpH5 Progetto robot Giacomino]
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===
+
[[Category:Officina]]
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 attuale delle 12:07, 12 ago 2019

Gears.png
Robot Giacomino

Stato: Prototipo

Robot-arduino-4.jpg
Descrizione Robot rover con Arduino
Licenza GPL
Autore Giulio, pinpas, piero, Stefano
Contributi
Categorie Svago
Link


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 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

Materiale prodotto