|
Bonjour,
Je suis en seconde et aujourd'hui mon professeur de Sciences de l'Ingénieur nous à donner un TP. Cahier des charges On vous demande à l'aide du capteur à Ultrason du robot Lego NXT de mesurer une zone en m² dans laquelle se trouve votre robot. Le robot sera placé dans une boîte en carton. 1. Décrivez en quelques lignes une méthode pour programmer le calcul de la surface en m² à l'aide du capteur. 2. Programmer le robot à partir du logiciel. Évidemment je n'ai pas le robot avec moi car c'est une activité faite en classe, donc j'ai mis des images du robot Je n'y connais rien en programmation, j'aurais bien voulu qu'on m'aide pour que je comprenne comment mesurer une surface grâce à l'Ultrason du robot et surtout qu'on me dise comment le programme avec le logiciel (quel bloc mettre, comment régler les bloc...) Je vous remercie d'avance, Cordialement. |
|
Voilà comment je voie les choses :
- ton robot est placé au milieu du carton - il mesure avec le capteur ultrason la distance qui le sépare avec le mur en face, cette variable est précieusement enregistré - il fait 1/4 de tours, dans n'importe quel sens et recommence l'opération - il refait la même chose jusqu'à ce qu'il ai fait un tours complet. - ensuite, le robot fait le calcule : A = L * l L : longueur : la première distance + la troisième distance + 2* la distance qui sépare le capteur et le centre du rotation du robot l : largeur : la deuxième distance + la quatrième distance + 2* la distance qui sépare le capteur et le centre du rotation du robot Et c'est tout ! je tiens à préciser que tu n'es pas obliger de faire un robot sur roues. Le plus simple c'est de mettre juste un moteur posé à même le sol, avec un capteur ultrason dessus. Sur mon programme, il manque un précision : il faut que le capteur soit bien orienté sur une face. Sinon ça fausse les calculs ! Si tu penses que c'est nécessaire il faut opérer l'algorithme suivant : - le moteur enregistre la distance qui le sépare du mur - il tourne de X° et refait la même opération ( X en degré, dépend de la précision souhaité ) - il refait la dernière opération 180 / X fois - il trouve la distance maximale et prend l'angle qu'il avait à ce moment là - il opère l’algorithme du début. Voilou, Pour la partie programmation et logiciel, je ne m'y connais pas trop. La plus grosse difficulté dans la création, ce n'est pas de faire quelque chose qui n'existe pas, mais de faire quelque chose qui peut exister.
Mes créations lego |
|
Ton système va donner une précision désastreuse, TangoZoulou : 4 mesures ne seront pas suffisantes, et surtout si il commence par se caler sur la direction qui donne la distance maximale, il ne va pas mesurer la longueur mais la diagonale de la zone (si elle est rectangulaire).
Idéalement il faudrait balayer à 360° en mesurant en permanence la distance et en intégrant le carré de la distance, en pratique on se contente d'un certain nombre de mesure. L'algo serait du genre : -On choisit un nombre de mesure à effectuer, je l'appelle "n" dans la suite (je pense qu'une à partir d'une douzaine on devrait avoir un résultat correct, mais plus il y en aura plus ça sera précis). -On part de la position initiale, on mesure la distance au mur devant soi. -On tourne de 360/n° et on recommence. -On continue, jusqu'à avoir fait n mesures (étalées sur 360°). On approxime alors la zone dont on veut calculer l'aire par n secteurs angulaires ou bien par n triangles ayant la position du robot pour origine, et l'aire est simple à calculer. Si on part sur les secteurs angulaires, on peu par exemple utiliser pi*(l_1^2+l_2^2+...+l_n^2)/n, ou l_1,...,l_n sont les distances mesurées. |
|
Pour ma part je commencerai par caler le robot perpendiculairement à une face et effectuerai ensuite les 3 autres mesures :
La boucle attend que la distance diminue puis réaugmente, l'ancienne mesure sera donc la distance perpendiculaire à une face. Il suffit ensuite de tourner de 85° puis deux fois de 90° pour avoir les 4 mesures. Bien sûr, pour être le plus précis possible chaque mesure devrait être composée de plusieurs échantillons pondérés (la moyenne de plusieurs mesures). J'essaierai de faire l'exercice en NXT, ça sera très formateur mais je pense que ce ne serait pas te rendre service que de te fournir un programme ... à toi de découvrir et apprendre |
|
Il faut qu'au départ le capteur soit bien perpendiculaire à un mur. 4 mesures à faire : devant, derrière, à gauche et à droite. L'aire est ensuite facile à calculer. Pour changer la direction de la mesure un moteur suffit avec un axe et le capteur fixé au bout de l'axe. Comme déjà dit pas besoin de roues. Aussi il faut que le capteur soit bien horizontal pas comme sur ton robot, C'EST TRES IMPORTANT sinon la mesure est folklorique !
Faire un tour complet dans un carton va donner des mesures désastreuses et je ne pense pas que ce soit le but de l'exercice. En effet le capteur US donne des valeurs farfelues si le mur n'est pas perpendiculaire. L'autre moyen de mesurer c'est avec le capteur de contact en faisant rouler le robot jusqu'à chaque mur et mesurant la distance parcourue avec les odomètres des moteurs. Ce sera beaucoup plus précis Mais ce n'est pas non plus le but de l'exercice... Pour le NXT-G Roboléo a fait des cours accessibles à tous ici : http://www.techlug.fr/Forum/topic1409.html Bonne lecture |
|
Enfin une question précise qui appelle une réponse simple : non.
Je pense que tu as pas mal de billes, là, non ? Le meilleur moyen d'apprendre, c'est d'essayer ! Tu as toute la doc de roboléo. Pas la peine de compter sur nous pour te faire ton TP |
Retourner vers De la théorie à la pratique
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités