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