cR_17_lezione 07
LEZIONE n° 7 – ROBOT
Con questa lezione cominciamo a gestire tutto il robot.
Per prima cosa dobbiamo organizzare l’hardware e seconda del tipo di robot (2 o 4 ruote) e dei sensori. Dovremo porre particolare attenzione al collegamento dei vari blocchi elettrici del robot. Dopo aver collegato in modo adeguato tutti i blocchi potremmo cominciare ad organizzare la gestione del robot.
Dovremo porre particolare attenzione alla programmazione di Arduino e quindi:
RICORDIAMO I PRINCIPI DELLA PROGRAMMAZIONE DI ARDUINO:
n Variabili:
n Tipo (intero, reale, carattere, etc.)
n Nome (caratteri alfanumerici)
n Strutture (corso avanzato)
n Principali comandi:
n Assegnazione
n Si calcola l’espressione a sinistra ed il risultato viene assegnato alla variabile a destra
n Count = count +1
n IN/OUT
n Istruzioni per immettere o prelevare dei dati
n digitalWrite(pin1,LOW)
n Test
n Viene eseguito il test (vero o falso) e secondo il valore viene eseguita l’istruzione seguente
n If (count <= soglia)
n Istruzione1
n istruzione2
n Cicli
n Vengono eseguite ripetutamente un gruppo di istruzioni
n For (x=0;x==9;x++)
n istruzione1
Per provare a fare le modifiche proposte copiare il listato (colorato in rosso) ed incollarlo in un editor di solo testo [Notepad ad esempio]
listato programma esempio numero 12: leggere gli urti del robot – CONTARE L’URTO E VERIFICARE SE IL CONTATORE E’ PARI O DISPARI
/*
gestione urti ROBOT (con conteggio e verifica)
*/
int urtoSX=2;
int urtoDX=7;
int led_urtoSX=6;
int led_urtoDX=5;
int led_urtoCX=8;
int tempo_led;
int val_urtoSX;
int val_urtoDX;
int contaurtiSX = 0;
int contaurtiDX = 0;
int contaurtiCX = 0;
void setup()
{
Serial.begin(9600);
pinMode (urtoSX,INPUT);
pinMode (urtoDX,INPUT);
pinMode (led_urtoSX,OUTPUT);
pinMode (led_urtoDX,OUTPUT);
pinMode (led_urtoCX,OUTPUT);
digitalWrite(led_urtoSX,LOW); // SPEGNI LED
digitalWrite(led_urtoDX,LOW); // SPEGNI LED
digitalWrite(led_urtoCX,LOW); // SPEGNI LED
delay(500);
}
void loop()
{
val_urtoSX=digitalRead(urtoSX);
val_urtoDX=digitalRead(urtoDX);
// val_urtoSX=HIGH; // FOR DEBUGGING
// val_urtoDX=LOW;
tempo_led=250;
if ((val_urtoSX==HIGH)&&(val_urtoDX==HIGH)) // URTO CENTRO
{
Serial.println(” “);
Serial.println(” URTO CENTRO “);
contaurtiCX++;
Serial.print(” valore contatore Urto centro = “);
Serial.print(contaurtiCX);
if(contaurtiCX==(contaurtiCX/2)*2)
Serial.print(” contatore PARI “);
else
Serial.print(” contatore DISPARI “);
digitalWrite(led_urtoCX,HIGH); // ACCENDI LED
delay(tempo_led);
digitalWrite(led_urtoCX,LOW); // SPEGNI LED
}
if ((val_urtoSX==HIGH)&&(val_urtoDX==LOW)) // URTO SINISTRO
{
Serial.println(” “);
Serial.println(” URTO SINISTRO “);
contaurtiSX++;
Serial.print(” valore contatore Urto sinistro = “);
Serial.print(contaurtiSX);
if(contaurtiDX==(contaurtiDX/2)*2)
Serial.print(” contatore PARI “);
else
Serial.print(” contatore DISPARI “);
digitalWrite(led_urtoSX,HIGH); // ACCENDI LED
delay(tempo_led);
digitalWrite(led_urtoSX,LOW); // SPEGNI LED
}
if ((val_urtoSX==LOW)&&(val_urtoDX==HIGH)) // URTO DESTRO
{
Serial.println(” “);
Serial.println(” URTO DESTRO “);
contaurtiDX++;
Serial.print(” valore contatore Urto destro = “);
Serial.print(contaurtiDX);
if(contaurtiDX==(contaurtiDX/2)*2)
Serial.print(” contatore PARI “);
else
Serial.print(” contatore DISPARI “);
digitalWrite(led_urtoDX,HIGH); // ACCENDI LED
delay(tempo_led);
digitalWrite(led_urtoDX,LOW); // SPEGNI LED
}
}
}
Modifiche proposte:
n Contare tutti gli urti insieme
n Accendere led diversi secondo il valore del contatore (PARI = VERDE, DISPARI = ROSSO)
n
di seguito le slide della lezione










(70)
Articolo in Evidenza
Le categorie
- .Dicono di NOI
- Album fotografici Francesco
- Album Fotografici Iduesarchiaponi
- Album Fotografici Paolo
- Alta Fotografia
- Altro
- Antichi eserciti ed armi
- Archeologia
- Archeologia1
- Archeologia2
- Archivio Robotica
- Circuiti per Robotica
- Città Fantasma
- Collaboratori
- Corso Robotica 19-20
- Didattica
- Didattica a distanza
- Esempi di Robotica
- Eventi
- Fotografia
- Francesco
- Francesco e Paolo
- Gallerie Fotografiche Francesco
- Gare di Robotica
- Gli Svaghi nel mondo Antico
- I Cibi Romani
- Il blog
- L'Italia che non ti aspetti
- Laboratorio Robotica
- Le sette Meraviglie del mondo
- Le Sette meraviglie del Mondo moderne
- Lezioni On-line
- Link Utili
- Miti e Leggende
- Mitologia Norena
- Notizie
- Paolo
- Per non dimenticare
- Popoli e Civiltà
- Robotica
- Roma Nascosta
- Scrittori e Poeti Antichi
- Scuola
- Si dice… Perchè
- Soluzioni didattica a distanza
- Storie e Personaggi Romani
- Teatro
- Viaggiando …..
- Viaggiare
- Video