Prime Lezioni di Robotica - Arduino Robot

Prime lezioni di robotica
Lezione 1 Robotica- Scheda student - Muoversi nello spazio 
Vedi la descrizione del robot su Arduino.cc


Queste sono alcune istruzioni che ti serviranno per questa lezione:
Robot.motorsWrite(255,255);   // muove il robot in avanti
 Robot.motorsStop();           // ferma i motori
 Robot.motorsWrite(-255,-255); // muove il robot indietro
  Robot.motorsWrite(0,0);       // slow stop
 Robot.motorsWrite(-255,255);  // ruota a sinistra
 Robot.motorsWrite(255,-255);  // ruota a destra
  delay(2000);    //ritardo

Apri l'IDE Arduino
Scegli il tipo di scheda Arduino che si sta utilizzando: in questo caso Arduino Robot Control
Accertati che la porta seriale sia quella scelta da Arduino

Carica questo l'esempio:
Esempi  -> motor_control  ->  learn  ->  motor test

Collega Arduino 
 Robot alla porta USB del computer e carica il programma.
Attenzione appena staccherai il cavo USB, se l'interruttore è acceso, il robot partirà.




Prova a scrivere tu un nuovo sketch con i comandi usati sopra.
Come puoi rallentare il movimento del robot?
Come fai per farlo girare di 90°?

Crea ora un programma che faccia percorre un quadrato disegnato sul pavimento.
Prova a rendere sempre più veloce in robot ma non a discapito della precisione.

Crea con varie scatole un piccolo labirinto e fai in modo che il Robot percorra il labirinto. Cronometra il risultato.

Il robot Arduino è gestito da una scheda simile ad Arduino Uno, per capire il funzionamento delle ruote prova a montare un piccolo circuito che gestisce il movimento di una ruota attraverso un motore elettrico a corrente continua.
Componenti:
- Un motore a corrente continua
- 2 cavetti di collegamento

- 1 ponticello


Crea tu lo sketch che gestisce il motore collegando un cavo del motore al pin 8.
Prova a modificare la velocità di rotazione della ruota.

Lezione  2 Robotica- Emettere suoni- Raccogliere graffette- Seguire una linea scura


Carica il programma:
Esempi -> Robot Control -> Learn -> Beep
Modifica il programma in modo che il robot emetta tre beep lunghi, usa il ciclo for

Confronta lo sketch che hai realizzato con questo esempio:
00-Esercizi di Robotica Fab-Lab Bagnacavallo  ->   LR2-raccogli_graffette   -> Beep_lungo_con_ciclo_for


Raccogli graffette 
Inserisci sotto al robot una piccola calamita. Lascia cadere sul pavimento alcune graffette.
Ora cerca di raccogliere le graffette più velocemente possibile e fai tornare Arduino Robot al punto di partenza. Al termine del percorso fai emettere un bip al Robot.


Prima di tutto è necessario scaricare l'ultima versione dell'IDE Arduino

Quindi è necessario creare un percorso circolare con il nastro adesivo nero. 
La linea deve essere larga almeno 2,3 cm e non deve presentare curve troppo strette.
Carica ora questo l'esempio:
Segui_la_linea_Fab_Lab_Bagnacavallo:
#include <ArduinoRobot.h> // include the robot library
#include <Wire.h>
#include <SPI.h>

void setup() {
  // initializza Arduino Robot
  Robot.begin();
    Robot.lineFollowConfig(8, 6, 50, 20);
  //imposta la scheda del motore in modalità Line follow
  Robot.setMode(MODE_LINE_FOLLOW);
}
void loop() {

 }
Oppure scarica il programma da questo link.
L'istruzione:
Robot.lineFollowConfig(8, 6, 50, 20); può essere modificata a piacimento per rendere più veloce il Robot.
Ricorda però: i quattro dati relativi a    Robot.lineFollowConfig si riferiscono, il primo al guadagno proporzionale alla deviazione, il robot cioè si muove più velocemente se è lontano dal centro della linea nera, il secondo si riferisce allo smorzamento delle oscillazioni, il terzo alla velocità percentuale dei motori (0-100), il quarto dato si riferisce al tempo in ms di ritardo tra due controlli successivi (se il tempo scende sotto 11, il robot  non arriva a completare il ciclo)

Prova a modificare alcuni parametri, in modo da rendere più veloce il robot.


Per ulteriori approfondimenti vedi dettagli sul sito ufficiale di Arduino:

Dentro la cartella dello sketch trovi anche alcune librerie aggiuntive che sono necessarie per il corretto funzionamento del programma.


Lezione  3 robotica- evitare gli ostacoli con un sensore a ultrasuoni


Per rivedere le istruzioni apprese nelle precedenti lezioni, crea, con varie scatole, un piccolo labirinto e, alla fine del percorso inserisci una linea nera.
Programma il Robot in modo che percorra il labirinto e si arresti quando passa sulla linea nera.
Cronometra il risultato.








Ora esplora il funzionamento del sensore a ultrasuoni
Monta il circuito illustrato nella figura 1, con i seguenti componenti:
-       1 Sensore a ultrasuoni HC-SR04
-       1 cavo a 4 vie
-       4 cavi di collegamento da 12 cm

Nella scheda Arduino Uno collega il sensore a ultrasuoni in questo modo:
VCC con i 5 volt

ECHO con il pin 13
GND con il pinGND
TRG con il pin 12





HC_SR4_Demo_prova_2_ultrasuoni.ino
Per visualizzare i dati attivare il monitor seriale:
Strumenti -> Monitor seriale





Oppure copia il seguente programma
#include "Ultrasonic.h"
Ultrasonic ultrasonic(12,13);
void setup() {
  Serial.begin (9600);
delay(1000);
}

void loop()
{
   
    Serial.println (ultrasonic.Ranging(CM));
    Serial.println ("cm  ");
  delay(100);
}



Monta, tra le due piastre di sostegno di Arduino Robot due sensori a ultrasuoni HC-SR04. 


Carica il programma, sotto indicato, sul robot e controlla se riesce a muoversi evitando gli ostacoli:

00-Esercizi di Robotica Fab-Lab Bagnacavallo->LR3-robot_ultrasuoni_04 ->  LR3_robot_ultrasuoni04_scappa

Prova a modificare alcuni parametri in modo da migliorare le prestazioni del Robot.

Ora crea di nuovo il labirinto dell'esercizio precedente e prova se il robot riesce da solo ad uscire dal labirinto.







Lezione  4 robotica


Apri il programma dell'esercizio precedente che tu hai elaborato.
Lavori svolti ragazzi -> LR3_robot_ultrasuoni04_scappa - nomi ragazzi
Aggiungi i comandi che facciano sì che il robot emetta un suono tutte le volte che si avvicina ad un ostacolo. Puoi differenziare i suoni a seconda della distanza dell'ostacolo; simulando così un sensore di parcheggio.

Gara finale
Formate due gruppi e cercate di uscire dal labirinto finale senza rovesciare gli ostacoli. Cronometrate il risultato. Avete cinque tentativi. Vale il tentativo migliore per ogni gruppo.









E, alla fine dei laboratori, ecco le gare di robotica conclusive.

Pit stop per mettere a punto i motori.





Ecco un prototipo pronto da costruire, con questo potete poi partecipare alle gare di robotica in occasione della Fiera Roboval a Verona:
http://www.roboval.it/index.php/e-shop














Volete costruire il vostro robot? Ecco cosa propongono i maker di RaspiBO (RaspiBO è un gruppo informale di appassionati di elettronica ed informatica libera della zona di Bologna e non solo).
http://www.raspibo.org/wiki/index.php/Milkbot








Tutti i laboratori di elettronica, robotica, grafica e stampa 3D del fab-lab si svolgeranno presso l'associazione Acrylico a Bagnacavallo (Ravenna)

Indirizzo:
Via Togliatti 2
48012 Bagnacavallo (RA)

Contatti:
fablab.bagnacavallo[at]gmail.com

Copyright © 2012 Fab-Lab Junior Maker Station Cotignola All Right Reserved
Designed by CBTblogger