-
Notifications
You must be signed in to change notification settings - Fork 2
Desecurise
Précédent - Entêté | Home | Suivant - Déterminé
Si le capteur gauche ne détecte pas d’objet, allumez le moteur droit du robot et éteignez le moteur gauche. Si un objet est détecté par le capteur gauche, allumez le moteur gauche et éteignez le moteur droit. Le robot devrait alors suivre un mur à sa gauche. Indice : Voir la référence Annexe B sur les virages avec Thymio.
la première pair signifie que si le capteur 0 (cf. définitions des numéraux des capteurs en haut de page) ne détecte rien, alors le robot avance en allumant le moteur droit et en éteignant le moteur gauche.
la deuxième pair signifie que si le capteur 0 détecte quelque chose, alors le moteur droit s’arrête et le moteur gauche avance.
Ces deux pairs permettent de mettre en marche et d'arrêter le robot.
# variables for state
var state[4] = [0,0,0,0]
var new_state[4] = [0,0,0,0]
# reset outputs
call sound.system(-1)
call leds.top(0,0,0)
call leds.bottom.left(0,0,0)
call leds.bottom.right(0,0,0)
call leds.circle(0,0,0,0,0,0,0,0)
# subroutine to display the current state
sub display_state
call leds.circle(0,state[1]*32,0,state[3]*32,0,state[2]*32,0,state[0]*32)
onevent buttons
when button.center == 1 do
if state[1] == 1 then
motor.left.target = 0
motor.right.target = 0
new_state[1] = 0
emit pair_run 2
end
end
when button.center == 1 do
if state[1] == 0 then
new_state[1] = 1
motor.left.target = 0
motor.right.target = 500
emit pair_run 3
end
end
call math.copy(state, new_state)
callsub display_state
onevent prox
when prox.horizontal[0] <= 1000 do
if state[1] == 1 then
motor.left.target = 0
motor.right.target = 450
emit pair_run 0
end
end
when prox.horizontal[0] >= 2000 do
if state[1] == 1 then
motor.left.target = 500
motor.right.target = 0
emit pair_run 1
end
end