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
slot 0
_triggerUltrasuoni
slot A0
_RicUltrasuoni
slot 7
_ricevitoreIR
slot 8
_motoreSxAbilita
slot 9
_motoreSxIndietro
slot 10
_motoreSxAvanti
slot 11
_motoreDxIndietro
slot 12
_motoreDxAvanti
slot 13
_motoreDxAbilita
slot 2
_occhi_verde
slot 3
_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