Al programma della lezione precedente aggiungiamo ora un sensore ad ultrasuoni. A meno di x centimetri di distanza da un ostacolo facciamolo arretrare di un po'. Il robottino vi sembrerà ora avere un po' di vita propria... disobbedirà ai vostri ordini e si rifiuterà di andare a sbattere!
attrezzaggio
pin0
_triggerUltrasuoni
pinA0
_RicUltrasuoni
pin7
_ricevitoreIR
pin8
_motoreSxAbilita
pin9˜
_motoreSxIndietro
pin10˜
_motoreSxAvanti
pin11˜
_motoreDxIndietro
pin12
_motoreDxAvanti
pin13
_motoreDxAbilita
pin2
_occhi_verde
pin3˜
_occhi_rosso
variabili
durata = 0
distanza = 0
t1 = -32131
t2 = -28051
t3 = -26011
giu = -26521
su = -10201
dx = 30855
sx = 16575
ok = 22695
tasto = 0
ciclo
la variabile tasto diventa uguale a... leggi dal sensore: _ricevitoreIR
attendi
500 millisecondi
SE ACCADE CHE
tasto è uguale a su
aziona la funzione: avantiDx
aziona la funzione: avantiSx
SE ACCADE CHE
tasto è uguale a giu
aziona la funzione: indietroDx
aziona la funzione: indietroSx
SE ACCADE CHE
tasto è uguale a sx
aziona la funzione: avantiDx
aziona la funzione: indietroSx
SE ACCADE CHE
tasto è uguale a dx
aziona la funzione: indietroDx
aziona la funzione: avantiSx
SE ACCADE CHE
tasto è uguale a ok
aziona la funzione: ferma
attendi
100 millisecondi
ACCENDI (5 Volt)
_triggerUltrasuoni
attendi
10 millisecondi
SPEGNI (0 Volt)
_triggerUltrasuoni
la variabile
durata diventa uguale alla durata dell'impulso dal sensore:
_RicUltrasuoni
la variabile distanza è uguale alla espressione durata*0.01720
SE ACCADE CHE
distanza è minore di 30
SPEGNI (0 Volt)
_occhi_verde
ACCENDI (5 Volt)
_occhi_rosso
aziona la funzione: indietroDx
aziona la funzione: indietroSx
attendi
1000 millisecondi
aziona la funzione: ferma
attendi
1000 millisecondi
avantiDx con
0 input
ACCENDI (5 Volt)
_motoreDxAbilita
ACCENDI (5 Volt)
_motoreDxAvanti
SPEGNI (0 Volt)
_motoreDxIndietro
avantiSx con
0 input
ACCENDI (5 Volt)
_motoreSxAbilita
ACCENDI (5 Volt)
_motoreSxAvanti
SPEGNI (0 Volt)
_motoreSxIndietro
indietroDx con
0 input
ACCENDI (5 Volt)
_motoreDxAbilita
SPEGNI (0 Volt)
_motoreDxAvanti
ACCENDI (5 Volt)
_motoreDxIndietro
indietroSx con
0 input
ACCENDI (5 Volt)
_motoreSxAbilita
SPEGNI (0 Volt)
_motoreSxAvanti
ACCENDI (5 Volt)
_motoreSxIndietro
ferma con
0 input
SPEGNI (0 Volt)
_motoreDxAbilita
SPEGNI (0 Volt)
_motoreSxAbilita