Skip to content

Capteurs Horizontaux

MichARom edited this page Sep 5, 2018 · 18 revisions

Précédent - Changement d'ordre | Home | Suivant - Suivre une ligne

Ex 4.3 Capteurs horizontaux:

Les capteurs horizontaux avant sont numérotés 0, 1, 2, 3, 4 de gauche à droite. Les capteurs arrière sont numérotés 5 pour le gauche et 6 pour le droite. À la place d’utiliser les capteurs 0 et 4 comme jusqu’à maintenant :

  • Utilisez le capteur 1 pour tourner le robot vers la gauche et le 3 pour tourner vers la droite.
  • Utilisez à la fois les capteurs 0 et 1 pour tourner le robot à gauche et à la fois les capteurs 3 et 4 pour tourner le robot à droite.
  • Ajouter une paire événement-actions pour les capteurs arrières 5 et 6.

Thymio VPL:

Pour la première pair, on fait tourner le robot à gauche en reculant avec la roue gauche et avançant avec la roue droite, quand le capteur 1 détecte un objet à proximité.

La deuxième pair fait tourner le robot à droite en reculant avec la roue droite et avançant avec la roue gauche, quand le capteur 3 détecte un objet à proximité.

Enfin la troisième pair nous fait fortement tourner à gauche, quand les capteurs 0 et 1 détectent des objets à proximité, en reculant à pleine vitesse avec la roue gauche, et en avançant à pleine vitesse avec la roue droite.

La 4ème pair, permet au robot de tourner fortement à droite quand les capteurs 3 et 4 détectent un objet à proximité. Il tourne en reculant à vitesse maximum avec la roue droite, et en avançant à vitesse maximum avec la roue gauche.

Pour finir la cinquième pair met en lien la détection d'objets à proximité avec les capteurs 5 et 6, et un robot qui avance gentiment.

Code:

# 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)

onevent prox
	when prox.horizontal[1] >= 2000 do
		motor.left.target = -200
		motor.right.target = 200
		emit pair_run 0
	end

	when prox.horizontal[3] >= 2000 do
		motor.left.target = 200
		motor.right.target = -200
		emit pair_run 1
	end

	when prox.horizontal[0] >= 2000 and prox.horizontal[1] >= 2000 do
		motor.left.target = -500
		motor.right.target = 500
		emit pair_run 2
	end

	when prox.horizontal[3] >= 2000 and prox.horizontal[4] >= 2000 do
		motor.left.target = 500
		motor.right.target = -500
		emit pair_run 3
	end

	when prox.horizontal[5] >= 2000 and prox.horizontal[6] >= 2000 do
		motor.left.target = 250
		motor.right.target = 250
		emit pair_run 4
	end
Clone this wiki locally