Differenze tra le versioni di "Robot Rover Arduino Giacomino"

Da GolemWiki.
(aggiunto listato di prova)
(incipit + listati nuovi)
Riga 1: Riga 1:
 +
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.
 +
 
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.
 
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.
  
Riga 38: Riga 50:
  
 
===Programmazione===
 
===Programmazione===
*La programmazione è attualmente in corso;
 
 
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.
 
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.
 
Per controllare la Motor Shield è necessario utilizzare la relativa [https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master libreria] scritta da Adafruit.
  
====Listato di testing====
+
* [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.
<pre>
+
* [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.
#include <AFMotor.h>
 
 
 
// Due motori
 
AF_DCMotor motorsx(1);
 
AF_DCMotor motordx(2);
 
 
 
void setup() {
 
  Serial.begin(9600);          // comunicazione seriale
 
 
 
  // Motori spenti
 
  motorsx.run(RELEASE);
 
  motordx.run(RELEASE);
 
 
 
}
 
 
 
void loop() {
 
 
 
  if (Serial.available() > 0) {
 
    byte velocita;
 
    // legge il comando
 
    char motore = Serial.read();
 
    // legge la velocità e la trasforma in intero
 
    velocita = Serial.parseInt();
 
 
 
    switch (motore) {
 
      // Comando sul motore destro
 
      case 'd':
 
        if (velocita == 0) {
 
          motordx.run(RELEASE);
 
        }
 
        else {
 
          motordx.run(FORWARD);
 
          motordx.setSpeed(velocita);
 
        }
 
        break;
 
      // Comando sul motore sinistro
 
      case 's':
 
        if (velocita == 0) {
 
          motorsx.run(RELEASE);
 
        }
 
        else {
 
          motorsx.run(FORWARD);
 
          motorsx.setSpeed(velocita);
 
        }
 
        break;
 
    }
 
 
 
 
 
  }
 
  delay(10);
 
}
 
 
 
</pre>
 
  
 
==Foto Gallery==
 
==Foto Gallery==

Versione delle 23:12, 16 nov 2015

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.

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.

Foto Gallery

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