Skip to content

robot qui danse

Hugo Ducommun edited this page Sep 20, 2018 · 6 revisions

Précédent | Home | Suivant

Ex 8.1 : Robot qui danse

É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.

Thymio VPL

ProgRobotDanseur

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.

Code

# 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
Clone this wiki locally