
LEZIONE n° 2
SENSORI DIGITALI
La lezione CORSO DI ROBOTICA del 2019-20 è sui sensori e sulla loro gestione. Premettiamo che per analizzare i risultati utilizzeremo il monitor o dei LED.
I primi sensori che vediamo sono i sensori di URTO (BUMP) che sono dei sensori di tipo DIGITALE.
Se premiamo il sensore di urto, collegato all’opportuno pin di Aruino, andremo a variare il valore di una variabile e successivamente utilizzando una istruzione IF decideremo l’azione da intraprendere (scrittura sul monitor o accensione del led).
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 1:
//////////////// CORSO ROBOT 2019-20 LEZIONE n° — 2 — ESERCIZIO n° 4
value_rig = digitalRead(bump_rig);
value_lef = digitalRead(bump_lef);
/*************************************************************
CENTRAL BUMP
*************************************************************/
if ((value_lef == 0) && (value_rig == 0)) // CENTRAL BUMP
{
Serial.print(” CENTRAL BUMP ” );
Serial.print(“\n”);
delay(TIME_MIN);
magic = 0;
delay(TIME_WAIT);
}
/*************************************************************
LEFT BUMP
*************************************************************/
if ((value_lef == 0) && ((magic == 1))) // LEFT BUMP
{
Serial.print(” LEFT BUMP ” );
Serial.print(“\n”);
delay(TIME_MIN);
delay(TIME_WAIT);
}
/*************************************************************
RIGHT BUMP
*************************************************************/
if ((value_rig == 0) && (magic == 1)) // RIGHT BUMP
{
Serial.print(” RIGHT BUMP ” );
Serial.print(“\n”);
delay(TIME_MIN);
delay(TIME_WAIT);
}
///////////////////////////////////////////////////////////////////
Modifiche proposte:
Rallentare il processo per leggere meglio il monitor
SUGGERIMENTI
Aggiungere una grandezza per rallentare il processo
Provare i cambiamenti
listato programma esempio numero 6:
//////////////// CORSO ROBOT 2019-20 LEZIONE n° — 2 — ESERCIZIO n° 6
value_rig = digitalRead(bump_rig);
value_lef = digitalRead(bump_lef);
/*************************************************************
CENTRAL BUMP
*************************************************************/
if ((value_lef == 0) && (value_rig == 0)) // CENTRAL BUMP
{
Serial.print(” CENTRAL BUMP ” );
Serial.print(“\n”);
delay(TIME_MIN);
magic = 0;
delay(TIME_WAIT);
digitalWrite(ledRGB_B, HIGH); // turn LED on:
delay(tempoLed);
digitalWrite(ledRGB_B, LOW); // turn LED off:
delay(tempoLed);
}
/*************************************************************
LEFT BUMP
*************************************************************/
if ((value_lef == 0) && ((magic == 1))) // LEFT BUMP
{
Serial.print(” LEFT BUMP ” );
Serial.print(“\n”);
delay(TIME_MIN);
delay(TIME_WAIT);
digitalWrite(ledRGB_G, HIGH); // turn LED on:
delay(tempoLed);
digitalWrite(ledRGB_G, LOW); // turn LED off:
delay(tempoLed);
}
/*************************************************************
RIGHT BUMP
*************************************************************/
if ((value_rig == 0) && (magic == 1)) // RIGHT BUMP
{
Serial.print(” RIGHT BUMP ” );
delay(TIME_MIN);
delay(TIME_WAIT);
digitalWrite(ledRGB_R, HIGH); // turn LED on:
delay(tempoLed);
digitalWrite(ledRGB_R, LOW); // turn LED off:
delay(tempoLed);
count++;
Serial.print(” Urto Destro numero = ” );
Serial.print(count);
Serial.print(“\n”);
}
/////////////////////////////////////////////////////////////////////
Modifiche proposte:
Cambiare i colori
Contare tutti gli urti
Contare separatamente urto sinistro e urto destro
SUGGERIMENTI
Trovare e modificare il pin
Aggiungere il conteggio agli altri urti
“Duplicare” il conteggio negli altri urti
Provare i cambiamenti
di seguito le slide della lezione






























(15)