-
Notifications
You must be signed in to change notification settings - Fork 2
robot qui danse
Hugo Ducommun edited this page Sep 20, 2018
·
6 revisions
Écrivez un programme qui fasse danser le robot : il tourne à gauche sur place durant deux secondes, puis tourne à droite sur place durant trois secondes. Ces mouvement se répètent indéfiniment.
Lorsque que le programme commence, Thymio va tourner sur lui-même et activer un timer de 2sec. Il passera aussi l'état en haut à gauche en allumé. Après le timer de 2sec, Thymio va exécuter la seconde ligne car l'état en haut à gauche est allumé. Il va donc tourner sur lui-même et activer un timer de 3sec. Il va aussi passer l'état en éteint. Il exécutera alors la première ligne et ainsi de suite à l'infini.
# variables for state
var state[4] = [0,0,0,0]
var new_state[4] = [0,0,0,0]
# stop timer 0
timer.period[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 timer0
timer.period[0] = 0
if state[0] == 0 then
new_state[0] = 1
motor.left.target = -200
motor.right.target = 200
timer.period[0] = 2000
emit pair_run 0
end
if state[0] == 1 then
new_state[0] = 0
motor.left.target = 200
motor.right.target = -200
timer.period[0] = 3000
emit pair_run 1
end
call math.copy(state, new_state)
callsub display_state