Le robot dispose d’un ou plusieurs moteurs pour se déplacer. Nous ne traiterons pas cette partie dans ce tutoriel.
Partons alors du principe que le robot sait "avancer" et "manœuvrer"
Pour détecter l’obstacle
Pour détecter un obstacle avant de le toucher, le robot doit être équipé d’un capteur qui mesure la distance entre lui et un objet placé devant.
Il existe 2 types de capteurs :
les capteurs à ultrasons
les capteurs à infrarouge
Ces capteurs sont équipés d’une partie émettrice et d’un récepteur (contrairement aux barrières infrarouges des portails dont les deux modules sont séparés et placés de chaque coté).
Le principe
Pour les déplacements
Partons du principe que le robot sait déjà se déplacer (fonction avancer).
Il y a 2 manières de programmer notre robot pour s’arrête à bonne distance de notre obstacle :
La programmation événementielle
La programmation séquentielle
La programmation événementielle
Le robot se déplace sans s’arrêter et analyse en permanence sa position par rapport à l’obstacle. Suivant la distance, le programme arrête ou non le déplacement.
Le programmation séquentielle
Le capteur mesure la distance entre le robot et l’obstacle. Si la distance est suffisamment grande, le robot avance d’un petit pas, si elle est trop petite, le robot s’arrête.
La programmation
Pour la programmation, nous allons utiliser la fonction avancer.
Pour un déplacement en ligne droite, c’est assez simple de remplacer cette fonction par un allumage des moteurs.
Dans le cas ou le robot suit une ligne, cette fonction avancer est un sous-programme qui permet au robot de suivre la ligne. Pour en savoir plus, vous pouvez vous référer au tutoriel suivre une ligne.
Attention : Dans un programme, il ne doit y avoir q’une seule boucle infinie. Elle se trouve donc dans notre programme principal que nous allons faire, et non dans le sous programme avancer.
La programmation événementielle
La fonction avancer ajuste la vitesse et la direction du robot. Le capteur arrête les moteurs si on est trop prêt. On attend que l’objet s’éloigne pour repartir.
Programmation événementielle
Le programmation séquentielle
A chaque boucle, si on est assez loin de l’obstacle, on avance d’un pas.
Programmation séquentielle
Pour aller plus loin
Lors de la détection d’un obstacle, il peut être demandé au robot d’effectuer une manœuvre d’évitement ou une manœuvre de demi-tour.
Cette fonction manœuvrer est donc un sous-programme qui pilote manuellement le robot.
Voici comment l’intégrer au programme
Programmation événementielle
Programmation séquentielle
Vous devez être identifés pour accéder aux ressources téléchargeables
Les défis associés
Il y a 9 défis associés au thème S’arrêter devant un obstacle.