Robot Rover Arduino Giacomino

Da GolemWiki.
Versione del 14 dic 2015 alle 23:00 di Giulio (discussione | contributi) (aggiornato serata 14/12)
Jump to navigation Jump to search
Come prodotto di un lungo periodo di riflessione, un gruppo di appassionati
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 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.

Per il primo lavoro c'è stata convergenza d'intenti sulla realizzazione di un robot rover.

Lista dei materiali

Elettronici

  • 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

  • 2 motori con riduzione 48:1;

La riduzione assicura maggior coppia e stabilità in caso di pendenza;

  • Batteria metal idruro 9V 800 mAh;

Questo tipo di batteria permette di ottimizzare il dimensionamento dello chassis trovando alloggio tra i due motori.

  • Batterie x4 AAA Eneloop NiMh da 1.2v l'una (per un totale di 4.8v)

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.

Meccanici

  • Telaio in alluminio;

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

  • Ruote gommate in legno;

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.

  • Dado cieco per terzo punto di appoggio anteriore;

Purtroppo le alternative erano troppo costose o troppo ingombranti. Rimane comunque l'opportunità di ottimizzare il tutto in futuro.

  • Bulloneria varia;

Progettazione

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 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 libreria scritta da Adafruit.

  • Listato di testing Via seriale si inviano dei codici per accendere i motori separatamente e a velocità desiderata. In particolare: snnn regola il motore sinistro e dnnn il motore destro, dove nnn è la velocità espressa in valore compreso fra 0 e 255.
  • 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 codice di prova).

Foto Gallery

Appunti scritti da PinPas, ri-editato da Giulio e Massimo Romagnoli.