|
Déjà j'espère poster dans la bonne section !
Alors enfet je voudrais faire en sorte que le capteur ultrasonique passe en mode "chien de garde" c'est a dire qu'il faut qu'il soit capable de mesurer la distance à laquelle il se trouve du premier objet en face de lui, la retienne et exécute un petit programme dés que quelque chose passe entre lui et cette objet ! Dîtes le moi si ce n'est pas clair Merci d'avance ! Dernière édition par pieyo0 le Mer Nov 03, 2010 2:36 pm, édité 1 fois au total.
|
|
il n'y a pas de mode chien de garde il faut que tu mesure la distance au début du programme, que tu la stocke. puis tu fais une boucle qui lit la distance toutes les Xsecondes et tu compares ta lecture a la valeur stockée, si la valeur lue est inférieur à celle stockée au début alors tu exécute ton action spécifique.
J'espere que sa pourra t'aider |
|
Pas besoin de stocker les données. Il existe un bloc "Plage" qui résoud le problème. J'ai des difficultés à télécharger l'image du programme sur ImageShack. Pour télécharger le programme que j'ai appelé "Aboie", c'est ici. http://files.me.com/roboleo/5rutnj C'est un programme .rbtx compressé qui contient un fichier son que j'ai confectionné pour l'occasion. Le NXT aboie, et oui…! EDIT: voici le programme Dernière édition par roboleo le Mer Nov 03, 2010 3:41 pm, édité 1 fois au total.
A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
|
Un truc pour avoir une bonne image du programme: Utilise dans le logiciel NXT-G "Imprimer" et sélectionne le bouton "HTML". Enregistre sur le bureau. Il y a 2 fichiers dont un .pgn qu'il faut convertir en .jpg. C'est ce fichier que tu utiliseras comme image. Tu peux jeter l'autre. En ce qui concerne ton programme, teste-le. On ne sait jamais… Mais tout dépend de ce que tu comptes faire après. A première vue, il me paraît un peu compliqué. Je vais l'examiner. Pense toujours à faire simple. Mais il faut aussi connaître tous les blocs et apprendre à s'en servir. Edit: Attention, tu vas te faire remonter les bretelles par les Modos; surveille ton orthographe… A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
|
Qu'importe la valeur lue par le capteur US (qui est variable), elle est comparée à la plage fixée. Si cette valeur est dans la plage, alors le NXT "aboie", sinon il ne se passe rien. J'ai choisi ici comme limites 0 et 40. Si je ne fais pas confiance au capteur pour des distances proches de zéro, j'aurais pu choisir d'autres limites 15 et 40 par exemple. Le bloc Plage est plus précis. OK ? Je complète: les limites sont paramétrables, elles peuvent aussi provenir de variables… A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
|
dans ton idée la valeur 40 est alors prédéfinie, le programme peut être plus intérressant si cette valeur est lu une première fois par le capteur US. Auquel cas la plage n'est pas nécessaire car il suffira de savoir si ta valeur lue " est inférieur" et non pas "comprise entre ". En terme de programme ton bloc plage masque en fait deux tests, cela simplifie ton programme à la lecture mais pas à l'exécution puisqu'il faudra faire les deux tests. L'idée du programme est de savoir si quelquechose se trouve entre le robot et la distance lu initialement donc de savoir si c'est entre 0 et X, il est alors plus simple de savoir si c'est infèrieur à X. Enfin après il s'agit plus d'optimisation en terme d'exécution.
|
|
Se baser seulement sur une distance X pour faire agir le robot, implique un capteur US bigrement précis avec des relevés constants. La plage est plus souple (et non pas plus précise, je corrige); elle accepte une marge d'erreur. Maintenant, la valeur X qui est la valeur lue la 1ère fois pourrait être celle d'un obstacle fixe, et le robot à l'arrêt. Ensuite, le passage fortuit entre le robot et l'obstacle déclenche l'alerte. Si par contre tout le dispositif est en mouvement (un train roulant sur des rails avec un véhicule traversant), il faut quand même une distance fixe (qui se déplace avec le train) de sécurité pour faire agir la garde. On est donc toujours dans le cas d'une marge bornée. A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
|
certes mais si j'ai bien compris le sujet de notre ami son robot sera fixe je suis ok sur la précision du capteur us et la nécessité dans certains cas d'avoir une plage. Dans le sujet de base il s'agit juste de savoir si la distance a diminué. On pourrait cependant lire la valeur X de départ et créer la plage en fonction de cette première valeur (niveau bas de la plage la lecture -5 et le niveau haut la lecture + 5cm par exemple)
|
|
Tout à fait d'accord, avec une plage +/- 5 par exemple, on est à peu près sûr de tomber sur la valeur X. L'avantage du bloc Plage est dans l'économie des blocs (comparaisons successives pour la valeur basse et la valeur haute). Je constate à travers tout ce que j'ai lu, que ce bloc est peu employé. A+
Roboleo " Je ne cherche pas, je trouve…" P. Picasso |
Retourner vers De la théorie à la pratique
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 4 invités