Rover5: il montaggio e il primo test

Sul Rover5 hai già letto altri tutorial relativi al cambiare l’assetto e sistemare i cavi ed il controllo degli encoder oggi lo assembliamo e ci carichiamo il primo sketch.

rover montato

Prima di tutto è necessario che tu esegua una piccola modifica alla struttura plastica per ospitare i sensori SHARP GP2D120X

fori sharp GP2D120X

ho scelto di montarne 2 sensori sul Rover5, uno per il lato anteriore ed uno per il lato posteriore:

montaggio sensori sharp

in un primo test ne utilizzerai solotanto uno collegato al terminale A5 ( pin 5 analogico di arduino ) per semplificare il test:

sensore sharp GP2D120X montato

In futuro i due sensori ti torneranno utili per controllare sia il lato anteriore sia quello posteriore durante le manovre per evitare gli ostacoli, puoi decidere di acquistare anche il Rover5 con un solo sensore ed in futuro acquistare il secondo.

Ogni sensore ha 3 fili: Vcc ( +5v ), GND ( polo negativo o massa ) e segnale analogico, come puoi aver letto dal datasheet e nel Tutorial: SHARP 2D120X e Arduino dedicato a questo sensore.

Assemblare il Rover5

per assemblare il tuo Rover5 ti occorre:

  • n.1 Rover5 cingolato a 2 o 4 motori;
  • n.1 arduino uno o leonardo io ti consiglio, se devi acquistarne una, la leonardo, in futuro faremo evolvere il rover5 con questa versione di arduino;
  • n.1 breadboard piccola;
  • n.1 motor shield fe;
  • n.1 connettore di alimentazione per arduino;
  • n.1 o 2 sensori sharp GP2D120X;
  • n.1 base plastica del tipo utilizzata nel Beginner Robot o realizzata ad hoc da del plexiglass;
  • qualche cavo per breadboard.

prima di assemblare il tutto segui il tutorial su come sistemare i cavi del rover5 per guadagnare spazio epoter alloggiare il pacco batterie comodamente nel corpo del rover5.

Sistemato i pacco batterie puoi montare la base plastica sul corpo del rover5, 3 del 4 buchi corrispondono senza far sforzi, io ho deciso di non aggiungervi la 4 vite, se vuoi farlo modifica con un mini-trapano la base plastica ed aggiungi la 4° vite.

Fai in modo che i fili dei motori e dei sensori fuoriescano dalla base plastica.

Monta l’arduino con i suoi distanziali, e la motor shield su arduino.

Collegamenti elettrici del rover5

le connessioni elettriche cono semplicissime e tutte farre con i cavetti da breadboard:

collega i 2 motori ai morsetti della motor shield preposti per i motori A e B, e collega l’alimentazione della motor shield  ai pin Vin e Gnd di Arduino:

connessioni rover5

collega due cavetti tra la breadboard montata davanti ed i terminalei +5v e Gnd di arduino, alla breadboard collega anche i cavi rosso e nero dei sensori sharp GP2D120X:

cablaggio sensori sharp 2D120X

I terminali di segnale provenienti dai sensori collegali ai pin A5 ed A4 di arduino, anche se in un primo test utilizzeremo solo il sensore connesso al pin A5.

Imposta i pin della motor shield fe come in figura o scegli quelli che più ritieni opportuni in base al tuo progetto, ricordati di modificarli anche sullo sketch:

posizione jumper motor shield fe

lo sketch del rover5

ecco lo sketch che puoi utilizzare per questo primo test:

#include <DistanceGP2Y0A21YK.h>

#define PWMA 6
#define PWMB 9
#define DIRA 7
#define DIRB 8
#define SHIR A5

#define motoreA 0
#define motoreB 0
#define AVANTI  0
#define INDIETRO  0
#define DISTANZA 8

DistanceGP2Y0A21YK Dist;
int distance = 0;

void setup()
{
  pinMode( PWMA,OUTPUT );
  pinMode( PWMB,OUTPUT );
  pinMode( DIRA,OUTPUT );
  pinMode( DIRB,OUTPUT );

  pinMode( SHIR,INPUT );

  Dist.begin( SHIR );
}

void loop()
{
  distance = Dist.getDistanceCentimeter();

  if ( distance > DISTANZA ) { avanti(); }
  else                       { gira(); }
}

void avanti()
{
    digitalWrite( DIRA,HIGH );
    digitalWrite( DIRB,HIGH );

    analogWrite( PWMA,200 );
    analogWrite( PWMB,200 );
}

void indietro()
{
    digitalWrite( DIRA,LOW );
    digitalWrite( DIRB,LOW );

    analogWrite( PWMA,200 );
    analogWrite( PWMB,200 );
}

void alt()
{
    analogWrite( PWMA,0 );
    analogWrite( PWMB,0 );
}

void gira()
{
  // STOP x 1/2 sec
  alt();
  delay( 500 );

  // INDIETRO x 1 secondo e 1/2
  indietro();
  delay( 1500 );

  // STOP x 1/2 sec
  alt();
  delay( 500 );

  // Gira
  digitalWrite( DIRA,LOW );
  digitalWrite( DIRB,HIGH );

  analogWrite( PWMA,200 );
  analogWrite( PWMB,200 );

  delay( 800 );
}

Lo sketch fa uso della libreria DistanceGP2Y0A21YK.h già illustrata nell’articolo dedicato al sensore sharp e sebbene non sia proprio la libreria corrispondente al tuo tipo di sensore è abbastanza precisa sui 10/15 cm perchè tu possa utilizzarla.

La distanza a cui il Rover5 rileva l’oggetto e decide di invertire la rotta la puoi definire con la variabile DISTANZA impostata a 8 ( cm ).

Le manovre sono state definite mediante i tempi di delay per cui puoi aumentare i tempi se vuoi che la manovra duri di più o diminuirle per rendere le manovre più rapide e meno ampie.

La velocità dei PWM è imposta a 200, il range va da 0 ( alt ) a 255 ( velocità massima ) ma già con questa impostazione mi è sembrato abbastanza veloce, verifica nel video sotto, puoi aumentare e diminuire questo valore nelle singole funzioni: avanti(), indietro() e gira() ovviamente non nell’alt() altrimenti non ti si ferma più.

Il cuore dello sketch è la funzione loop() in cui il rover5 decide il suo comportamento:

linea 32: acquisisci la distanza dell’oggetto rilevata dal sensore sharp anteriore;

linee 34-35: in funzione del valore letto dal sensore e della DISTANZA impostata definisce se proseguire o se iniziare una manovra di rotazione gira() con cui evitare l’ostacolo.

il video

ecco il video demo, breve ma chiaro, presto ne pubblicherò altri con la dimostrazione anche dei sensori in funzione:

Novità

Se sei un lettore del blog fedele avrai notato che ho dedicato maggior spazio alla descrizione del rover5 e delle sue funzioni che al suo sketch, non è commentato riga per riga; questa scelta di cambiamento parte oggi in seguito ad alcune segnalazioni di utenti. L’idea è di raccontarti cosa puoi fare con il progetto più che il codice, se hai necessità di maggiori indicazioni su cosa accade nel codice commenta l’articolo, io ci sono sempre per darti tutti i chiarimenti che desideri.

Commenta questo articolo e dimmi cosa ne pensi di questa nuova impostazione degli articoli, ci tengo molto al tuo parere e vorrei che fossimo tutti insieme a dare un senso al blog.

Buon divertimento con il Rover5 !!!

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/rover5-montaggio-primo-test.html

20 pings

Skip to comment form

  1. […] « Rover5: il montaggio e il primo test […]

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.