NXT : Programmation d'un mobile

Pour expliquer certains fonctionnements, principes et fondements.
cliclac90
Level 1
Level 1
 
Messages: 7

Messagepar cliclac90 » Mar Jan 11, 2011 10:32 am

salut
j'arrive pas a faire un petit programme qui me paraissait simple a réaliser
Image
un mobile avec un moteur b se déplace en boucle entre les contacts 2 et 3 et je voudrais qu'il s'arrete si le capteur ultrason détecte un objet à 50cm.
avec le programme ci en haut il s'arrete seulement a la fin de la boucle.
comment faire?

merci d'avance

Thibaud
Level 6
Level 6
 
Messages: 333
Localisation: Paris
expertnxt

Messagepar Thibaud » Mar Jan 11, 2011 2:35 pm

dans ton programme tu regarde la valeur de l'US PUIS tu attends le contact alors qu'il faudrait que tant que tu n'as pas rencontre le contact tu vérifies la valeur du capteur US. Il faut donc faire 2 boucles dans ta boucle principale. La condition de fin de chaque boucle serait ton capteur de contact et dans la boucle tu mets les tests que tu as déjà.
Venez voir mes créations ;) NXTGEN
-----
La team BrickBot

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Mar Jan 11, 2011 5:02 pm

Essaie ce programme. Je ne l'ai pas testé mais il devrait fonctionner.
La boucle principale est réglée pour une distance SUPERIEURE à 50 cm. Le programme se termine quand la distance est inférieure à 50 cm.
Image
;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

cliclac90
Level 1
Level 1
 
Messages: 7

Messagepar cliclac90 » Mar Jan 11, 2011 11:34 pm

Thibaud a écrit:dans ton programme tu regarde la valeur de l'US PUIS tu attends le contact alors qu'il faudrait que tant que tu n'as pas rencontre le contact tu vérifies la valeur du capteur US. Il faut donc faire 2 boucles dans ta boucle principale. La condition de fin de chaque boucle serait ton capteur de contact et dans la boucle tu mets les tests que tu as déjà.

merci ton aide ca marche..... si tu peux encore me guider dans le futur ca me sera d'un grand secours

Thibaud
Level 6
Level 6
 
Messages: 333
Localisation: Paris
expertnxt

Messagepar Thibaud » Mer Jan 12, 2011 11:11 am

suffit de demander ;) mais le NXT-G n'est pas forcément ma tasse de thé . Moi c'est plutôt l'algorithme sur lequel je pourrais t'aider et pour le reste je pense que roboleo sera plus à l'aise ;) tu as lu la doc qu'il a fourni?
Venez voir mes créations ;) NXTGEN
-----
La team BrickBot

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Mer Jan 12, 2011 4:08 pm

Je constate que la plupart des difficultés rencontrées en programmation NXT-G se localisent sur la boucle principale, celle qui conditionne la continuité générale du processus d'actions. On a du mal à la définir. :think:
A mon sens cela provient d'une difficulté de raisonnement et d'une mauvaise connaissance du NXT-G; je rappelle que les BOUCLES et les COMMUTATEURS sont contrôlables par les capteurs. Peu de programmeurs utilisent cette particularité, surtout pour les boucles.

Tout réside dans la notion d'ATTENTE (d'un évènement).
Il va falloir que je réfléchisse sur une méthode… :reflechi:
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

cliclac90
Level 1
Level 1
 
Messages: 7

Messagepar cliclac90 » Ven Jan 14, 2011 2:48 am

Thibaud a écrit:) tu as lu la doc qu'il a fourni?


oui j'ai la doc qu'il fourni, ca m'est d'une grande utilité et merci à lui pour son travail.
voici le programme qui fonctionne
Image

comme je le voulais le mobile s'arrête bien lorsque il croise quelque chose , mais je voudrai aller plus loin : que le mobile reste à l'arret ou il est et qu'il parte sur un autre programme sans tenir compte du programme précedent .
j'essai de m'expliquer : dans l'etat actuel le mobile reste toujours en recherche d'un objet à moins de 50cm, une fois trouvé il s'arrete est reste en attentte, j'aimerai par exemple que le capteur us bouge pour detecter le haut de l'objet et provoque une action... dans l'état actuel si le capteur us bouge le mobile recommance sa recherche
je ne sais si je me fais bien comprendre

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Dim Jan 16, 2011 5:14 pm

En effet, ce n'est pas très clair, mais ne t'inquiète pas, tous ceux qui utilisent NXT-G sont passés par là!
Avant de programmer en NXT-G, il faut exprimer ce que le robot doit accomplir en termes "robotiques". Pour cela on utilise ce qu'on appelle un PSEUDO-CODE.
Cela consiste à écrire sur une feuille de papier tout ce que le robot doit accomplir, sachant qu'il faut une phrase par action. On aura donc au bout du compte une liste de phrases.
Tout cela est expliqué dans le Guide de Programmation NXT-G version 1.1 (pdf) page 9, parag. Structure et programme.

Commence par écrire ton pseudo-code et tout s'éclaircira, pour toi et pour nous… ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

cliclac90
Level 1
Level 1
 
Messages: 7

Messagepar cliclac90 » Sam Jan 29, 2011 11:48 pm

roboleo a écrit:
Commence par écrire ton pseudo-code et tout s'éclaircira, pour toi et pour nous… ;)


ca y est j'ai écrit ce que j'avais en tete, mais rien a changé pour moi suis tjrs bloqué 2ème ligne du paragraphe B

voici le pseudo programme :

Réalisation d'un mobile qui se déplace en ligne droite entre 2 murs avec moteur B et capteur de contact avant 3 et arriere 2. Sur mobile une tourelle qui tourne de gauche à droite avec moteur A et se met à un point zéro quand capteur lumière4 détecte du blanc, et sur cette tourelle un appareil photo qui s'orriente de haut en bas avec le moteur C et cet appareil est solidaire du capteur ultason 1.
A
mobile recule av moteur B
capteur contact 2 appuyé
mobile avance
capteur contact 3 appuyé
mobile recule av moteur B etc ......

tourelle rotation inverse aiguile montre
capteur lumiere detecte blanc
tourelle s'arrete
tourelle rotation aiguille montre de 180°
tourelle rotation inverse aiguille montre 180°
tourelle rotation aiguille montre de 180° etc ...

app photo s'oriente vers le bas
capteur ultrason detecte surface – de 20 cm
app photo s'arrete
app photo s'oriente vers le haut de 120°
app photo s'oriente vers le bas de 90°
app photo s'oriente vers le haut de 90°
app photo s'oriente vers le bas de 90° etc.....

Ces 3 paragraphes s'éxécutent en meme temps.
B
capteur ultrason detecte surface – de 50 cm
les actions des 3 paragraphes en haut s'arretent toutes
le haut parleur dit « ne bougez plus »
app photo s'oriente vers le haut
capteur ultrason detecte surface + de 100 cm
app photo s'arrete
app photo s'oriente vers le bas de 60°
le haut parleur dit « photo »
le programme recommence au début
Dernière édition par cliclac90 le Mer Fév 02, 2011 3:01 am, édité 1 fois au total.

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Dim Jan 30, 2011 5:52 pm

Salut,
As-tu réalisé ton robot?
Si oui, j'aimerai voir à quoi il ressemble (moteur B propulsion, moteur A rotation de la tourelle avec capteur photosensible, moteur C inclinaison du couple capteur US et appareil de photos fixés sur la tourelle mobile)
As-tu vérifié le bon fonctionnement de chaque module, séparément, et as-tu écrit les programmes correspondants? Il faut s'assurer que chaque fonction est opérationnelle.
Comment et par quoi les capteurs de contact sont-ils activés? Attention à la vitesse de rotation de la tourelle et la distance capteur photosentible - surface blanche: la précision est fonction de la proximité de la surface à détecter. Je rappelle que la fonction "Lumière générée" permet au capteur photosensible de faire office de télémètre à courte portée (guide de programmation NXT-G vers. 1.1 page 51). Ce capteur est-il fixe ou mobile?
Comment est fixé l'appareil de photos sur la tourelle?
Qu'as-tu choisi comme boucle principale? Quel est le test déterminant qui commande la suite des actions?

Souhaites-tu une réalisation qui ressemble à ceci?

Pour comprendre, le programme est téléchargeable sur le site de l'auteur
http://www.nxtprograms.com/
(Dans ce cas, le capteur US balaye l'espace et se dirige vers la paroi la plus éloignée)

Beaucoup de questions, mais c'est comme cela qu'on avance… ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

cliclac90
Level 1
Level 1
 
Messages: 7

Messagepar cliclac90 » Mer Fév 02, 2011 2:58 am

bonjour

oui j'ai réalisé mon robot, mais on comprendra mieux avec le shéma qui suis :
Image
tous les modules fonctionnent
les capteurs de contact sont activés par des butées fixées sur le sol
le capteur photo sensible est fixe
roboleo a écrit:Qu'as-tu choisi comme boucle principale? Quel est le test déterminant qui commande la suite des actions?



la je nage un peu je ne sais pas comment stucturer mon programme

mon robot ne va pas du tout ressembler à celui de la vidéo puisqu'il se déplace en ligne droite entre 2 butées fixées au sol.

encore merci t'intéresser à mon cas roboléo


Retourner vers De la théorie à la pratique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité