Salut à tous,
J'ai un projet à rendre pour quelques semaines et j'aurais besoin de vos conseils sur la mise en place d'un code C pour faire une séquence d'évitement d'un obstacle par un robot.
Le robot possède un capteur à ultrason sur lui. La fréquence est réglable, enfin là n'est pas le problème.
J'ai déjà mis en place un petit schéma avec les séquences que le robot doit faire.
#########################
Image hébergée sur serveur externe supprimée
Merci de suivre ces consignes
Le chemin que prendra le robot est en orange, et les petits triangles gris sont les endroits où il devra "regarder" s'il y a un obstacle.
Il est également nécessaire de savoir la longueur de l'objet car le robot fera des rondes pré-définies (si il ne recalcule pas la trajectoire sa ronde sera décalée).
Donc voilà une partie du code que j'ai fais pour la première partie, mais qui ne fonctionne pas.
Nota : Radar() permet d'activer la recherche d'obstacles.
MOT_ROT : la rotation du robot avec les paramètres entres parenthèses
MOT_STR : fais avancer le robot avec les paramètres.
et enfin while (!MOT_END) permet de faire 2 actions moteurs l'une après l'autre.
Si vous avez des suggestions je suis preneur !Code:MOT_STR (100, FWD, TIME, 0); while ( radar() <= 10 ) { // Quand le radar détecte un obstacle do { MOT_ROT (10, FWD, CENTER, RIGHT, ANGLE, 25); // Rotation de 90° à droite. while (!MOT_END); MOT_STR (10, FWD, DISTANCE, 100); // Le moway avance de 10 centimètres. while (!MOT_END); MOT_ROT (10, FWD, CENTER, LEFT, ANGLE, 25); // Retourne vers l'objet et vérifie si il y a obstacle. while (!MOT_END); nombre_largeur++; // On compte le nombre de check du robot. if (radar() >= 10) { // Si l'obstacle est encore à 10 centimètres du robot. checkUP == 1; } if (radar() <= 10) { checkUP == 0; } }while (checkUP ==0); // Après ceci on dois connaitre la largeur de l'obstacle.
Merci d'avance,
-----