NXT Community
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Le forum de la communauté WikiNXT.
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

 

 [PROG] Suiveur de ligne noire

Aller en bas 
3 participants
AuteurMessage
eldege
Expérimenté
Expérimenté
avatar


Nombre de messages : 76
Age : 41
Localisation : Paris
Date d'inscription : 13/04/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeVen 18 Avr - 14:18

Le robot :
- Deux servomoteur qui controle chacune une roue.
- Capteur de lumière.

On suppose que le robot est déjà sur la ligne noire, et que cette ligne ne tourne que dans un sens.

Code:
task main()
{
  SetSensor?(IN_4); // initialisation du capteur de lumière
  int i = 0;
  while (i<100000) {
     OnFwd(OUT_BC, 75); // mise en marche

     while(Sensor?(IN_4) > 40 ); //Tant que le capteur voit noir, tu boucles
      Off(OUT_C);
     while(Sensor?(IN_4) < 40 ); //Tant que le capteur ne voit pas noir, tu boucles
      i++;
  }
  Off(OUT_BC);
}

Ceci n'a pas été testé, mais je pense que ca marcherait parfaitement quand je mettrais les fonctions de capteur de lumière avec les bonnes variables :)

La variable i sert à lui dire tu marches pendant X ticks, le mieux serait de le remplacer par un temps. Mais ca me demanderait plus de code :)
Revenir en haut Aller en bas
http://clandragoon.free.fr
manawy
Grand Maître
Grand Maître
manawy


Nombre de messages : 243
Age : 36
Localisation : Morbihan(56)
Date d'inscription : 02/01/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeVen 18 Avr - 16:45

avec 100 000 il a de quoi en faire des tours Smile

sinon pour les ? je pense que c'est :
SetSensorLight
et Sensor(IN_4) ou alors SENSOR_4
Revenir en haut Aller en bas
eldege
Expérimenté
Expérimenté
avatar


Nombre de messages : 76
Age : 41
Localisation : Paris
Date d'inscription : 13/04/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeVen 18 Avr - 16:47

Je pense que c'est le bon sensor.

En effet, je pense que tu as tout à fait raison, je devrais mettre plutot 20. Langue
Revenir en haut Aller en bas
http://clandragoon.free.fr
gtkshroom
Admin
Admin
gtkshroom


Nombre de messages : 238
Age : 32
Localisation : France/Moselle(57)
Date d'inscription : 03/11/2007

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeVen 18 Avr - 16:54

Oui c'est SetSensorLight et Sensor(IN_4). Sinon pour les tours, on peut utiliser les RandomNumbers, non? Avec une valeur assez faible pour ne pas vider les piles. Very Smile
Revenir en haut Aller en bas
http://louis.scheidt.free.fr/wiki/
eldege
Expérimenté
Expérimenté
avatar


Nombre de messages : 76
Age : 41
Localisation : Paris
Date d'inscription : 13/04/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeMar 29 Avr - 23:14

Bon j'ai un petit problème....

Je fais :
Code:
nbc nxttest.txt -O=nxttest.rxe

J'obtiens :

Code:
# Error: Unknown or invalid statement
File "/var/www/html/NXT/utils/nxttest.txt" ; line 1
#  task main()
#----------------------------------------------------------
# Error: Unknown or invalid statement
File "/var/www/html/NXT/utils/nxttest.txt" ; line 2
#  {
#----------------------------------------------------------
# Error: Line type "Code" is not valid while in the "Code Segment" state
File "/var/www/html/NXT/utils/nxttest.txt" ; line 3
#  setin 5, 3, 0
#----------------------------------------------------------
# Error: Line type "Code" is not valid while in the "Code Segment" state
File "/var/www/html/NXT/utils/nxttest.txt" ; line 3
#  setin 128, 3, 1
#----------------------------------------------------------

J'ai peur que ca ne soit à cause du \r qu'il me met à chaque fois à la fin...
Revenir en haut Aller en bas
http://clandragoon.free.fr
eldege
Expérimenté
Expérimenté
avatar


Nombre de messages : 76
Age : 41
Localisation : Paris
Date d'inscription : 13/04/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeMer 30 Avr - 7:38

Enfin de compte c'est l'extension, il aime vraiment pas quand on ne met pas nxt à la fin !
Revenir en haut Aller en bas
http://clandragoon.free.fr
manawy
Grand Maître
Grand Maître
manawy


Nombre de messages : 243
Age : 36
Localisation : Morbihan(56)
Date d'inscription : 02/01/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeMer 30 Avr - 9:14

eldege a écrit:
Enfin de compte c'est l'extension, il aime vraiment pas quand on ne met pas nxt à la fin !

en effet il faut mettre en extension ".nxc" pour un fichier nxc et ".nbc" pour un fichier nbc sinon il ne reconnaît pas.
Revenir en haut Aller en bas
eldege
Expérimenté
Expérimenté
avatar


Nombre de messages : 76
Age : 41
Localisation : Paris
Date d'inscription : 13/04/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeDim 18 Mai - 18:03

Je vous présente Lunokhod Wink

Image 1
Image 2
Image 3

Voici le programme qui suit la ligne tant qu'elle ne tourne pas dans un angle trop important.

Code:
#define _TMP 5

task main()
{
SetSensorLight(IN_3); // initialisation du capteur de lumière
int i = 0;
int _lightsensor=0;
while (1) {
   OnFwd(OUT_BC, -100); // mise en marche
   while(Sensor(IN_3) < 40 ); //Tant que le capteur voit noir, tu boucles

   //On regarde à droite si il retrouve pendant 30 tick * X millisecondes
   i = 0;
   OnFwd(OUT_B, -100);
   OnFwd(OUT_C, 100);

   _lightsensor =    Sensor(IN_3);
   while (_lightsensor > 40) {
      Wait(_TMP);
      _lightsensor =    Sensor(IN_3);
      i++;   
      //Si i > 30, alors on va dans l'autre sens.
      if (i > 30) {
         OnFwd(OUT_B, 100);
         OnFwd(OUT_C, -100);
      }
      //Si i > 90, alors on arrete le robot perte du tracé.
      if (i>90) break;
   }
   if (i>90) break;
}
Off(OUT_BC);
}
Revenir en haut Aller en bas
http://clandragoon.free.fr
gtkshroom
Admin
Admin
gtkshroom


Nombre de messages : 238
Age : 32
Localisation : France/Moselle(57)
Date d'inscription : 03/11/2007

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeDim 18 Mai - 20:51

Wouaw, vraiment bien! Tu as une petite vidéo de ta création de prévue? LA construction est simple mais avec les chenilles, elle a l'air robuste.
Revenir en haut Aller en bas
http://louis.scheidt.free.fr/wiki/
eldege
Expérimenté
Expérimenté
avatar


Nombre de messages : 76
Age : 41
Localisation : Paris
Date d'inscription : 13/04/2008

[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitimeDim 18 Mai - 23:16

Vidéo ASF

Elle fait 20M mais ce n'est que la béta j'essaye de mettre la vidéo de 40M

Je devrais peut etre la comprimer la vidéo...

Sinon, on voit bien qu'il préfère les virages à gauche Wink
Revenir en haut Aller en bas
http://clandragoon.free.fr
Contenu sponsorisé





[PROG] Suiveur de ligne noire Empty
MessageSujet: Re: [PROG] Suiveur de ligne noire   [PROG] Suiveur de ligne noire Icon_minitime

Revenir en haut Aller en bas
 
[PROG] Suiveur de ligne noire
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NXT Community :: Robotique :: Lego® MindStorms® NXT :: Vos programmes-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser