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
![ultrasuoniE Theremino](compila/ultrasuoniE.png)
_triggerUltrasuoni
slot A0
![ultrasuoniR Theremino](compila/ultrasuoniR.png)
_RicUltrasuoni
slot 7
![irtelecomando Theremino](compila/irtelecomando.png)
_ricevitoreIR
slot 8
![motore Theremino](compila/motore.png)
_motoreSxAbilita
slot 9
![motore Theremino](compila/motore.png)
_motoreSxIndietro
slot 10
![motore Theremino](compila/motore.png)
_motoreSxAvanti
slot 11
![motore Theremino](compila/motore.png)
_motoreDxIndietro
slot 12
![motore Theremino](compila/motore.png)
_motoreDxAvanti
slot 13
![motore Theremino](compila/motore.png)
_motoreDxAbilita
slot 2
![ledbicolore_verde_ Theremino](compila/ledbicolore_verde_.png)
_occhi_verde
slot 3
![ledbicolore_rosso_ Theremino](compila/ledbicolore_rosso_.png)
_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
![](compila/attendi.png)
attendi
500 millisecondi
SE ACCADE CHE
tasto è uguale a su
![](compila/azionafunzione.png)
aziona la funzione:
avantiDx
![](compila/azionafunzione.png)
aziona la funzione:
avantiSx
SE ACCADE CHE
tasto è uguale a giu
![](compila/azionafunzione.png)
aziona la funzione:
indietroDx
![](compila/azionafunzione.png)
aziona la funzione:
indietroSx
SE ACCADE CHE
tasto è uguale a sx
![](compila/azionafunzione.png)
aziona la funzione:
avantiDx
![](compila/azionafunzione.png)
aziona la funzione:
indietroSx
SE ACCADE CHE
tasto è uguale a dx
![](compila/azionafunzione.png)
aziona la funzione:
indietroDx
![](compila/azionafunzione.png)
aziona la funzione:
avantiSx
SE ACCADE CHE
tasto è uguale a ok
![](compila/azionafunzione.png)
aziona la funzione:
ferma
![](compila/attendi.png)
attendi
100 millisecondi
ACCENDI (5 Volt)
_triggerUltrasuoni
![](compila/attendi.png)
attendi
10 millisecondi
SPEGNI (0 Volt)
_triggerUltrasuoni
![](compila/impulso.png)
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
![](compila/azionafunzione.png)
aziona la funzione:
indietroDx
![](compila/azionafunzione.png)
aziona la funzione:
indietroSx
![](compila/attendi.png)
attendi
1000 millisecondi
![](compila/azionafunzione.png)
aziona la funzione:
ferma
![](compila/attendi.png)
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