Je suis nouveau sur ce forum, je m'appelle Simon Marti j'ai 17 ans et suis actuellement en terminale S-SI dans laquelle, pour mon PPE nous avons à notre disposition la mallette 8547 complète + un capteur de notre choix (en l’occurrence le gyroscope) pour monter une piste avec différents obstacles comme un ralentisseur, un quadrillage, plusieurs pentes, des plots et une plaque de verre, la piste étant ouverte il faut faire aussi attention au vide. Pour la programmation nous utilisons le logiciel fourni avec la mallette (LEGO MINDSTORMS NXT 2.0) et n'avons aucune connaissance en C ou C++
Notre idée était la suivante : utiliser le gyroscope pour déterminer précisément l'angle parcouru durant la rotation pour réaliser précisément des virages à 90° et repérer précisément notre position par rapport à notre placement de départ en retournant via le gyroscope l'angle parcouru.
Or, erreur stratégique, nous n'avons pas cherché au préalable comment utiliser ce gyroscope ce qui nous pose des problèmes depuis 2 semaines maintenant.
Sur le forum nous avons déjà cherché si notre problème avait déjà été traité et nous avons déjà trouvé un post qui nous a peu éclairé puisque l'on y traite principalement en NXTC chose dans laquelle nous n'avons aucune compétence.
Une partie qui nous semble intéressante semble être celle-ci mais nous n'arrivons pas à réaliser cette méthode et à la traduire en blocs LEGO :
Après tout le capteur te donne une vitesse et une direction et tu envoie au moteur une vitesse et une direction donc c'est du même genre.
Pour simplifier il faut trouver un coefficient multiplicateur entre la valeur lue et la valeur à envoyer au moteur, tout ça dans une boucle rapide et sans te préoccuper de l'angle. Dans la pratique il faudra certainement ajouter une constante au final donc :
vitesse moteur = constante + coefficient x vitesse angulaire.
Il faut aussi certainement corriger en prenant en compte la vitesse du moteur (sinon cela oscille), cette vitesse doit être la même que la vitesse mesuré si le coef est bon :
vitesse moteur = constante + coefficient x (vitesse angulaire - vitesse angulaire précédente).
Tu peux aussi filmer tes expériences pour les regarder ensuite, à tête reposée.
dans un programme NXC:
old_v=0;
while (1)
{
v_ang= -lecture vitesse angulaire-;
v_mot=const + coef * ( v_ang - old_v );
old_v=v_ang;
moteur(v_ang);
}
Quant au gyroscope nous avons une chose qui fonctionne : le réglage du 0 deg/sec ou offset si nous ne nous trompons pas.
Nous avons lu la doc sur le site du constructeur hightechnic qui ne nous a point beaucoup aidé:
http://www.hitechnic.com/cgi-bin/commer ... ey=NGY1044
Sur d'autres forums français l'utilisation du gyroscope traite principalement du système segway et pour le reste c'est en anglais, et déjà que notre anglais n'est pas parfait en plus avec du vocabulaire technique c'est encore plus difficile de comprendre quelque chose.
Nous avons déjà testé plusieurs choses qui, bien sûr, ne fonctionnent pas dont nous pouvons vous faire des screens si cela peut vous aider à nous aider.
Voilà nous espérons nous être correctement et dans le détail expliqué.
Toute aide est la bienvenue, merci d'avance pour tous ceux qui y contribueront, bonne soirée à tous.