Skip to content

Desecurise

Michael Hobeiche edited this page Sep 10, 2018 · 5 revisions

Précédent - Entêté | Home | Suivant - Déterminé

Désécurisé:

Consignes:

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.

Thymio VPL:

Si photo indisponible nous contacter!

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.

Si photo indisponible nous contacter!

Ces deux pairs permettent de mettre en marche et d'arrêter le robot.

Code:

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