1 Dernière modification par Bourriquet (17-02-2011 15:54)

Sujet : Robot suiveur de lignes + balayeur d'objets

Bonjour,
nous sommes élèves en maths sup au lycée Pierre de Fermat à Toulouse, et dans le cadre des concours nous devons préparer un projet à présenter à un jury dans 1 an et 2 mois. Nous avons, après avoir exploré divers forums dont le votre, décidé de nous lancer dans la conception d'un robot suiveur de ligne mais qui puisse repérer un objet sur son chemin, s'arrêter, déplier un bras mécanique, l'écarter, puis rentrer son bras, et reprendre sa route.
Nous commençons en robotique, aussi nous cherchons tout d'abord à apprendre, ce qui ne vous inquiétez pas ne pose pas de problème.
Après avoir exploré le net, nous avons décidé d'utiliser une carte Arduino Uno,
et divers capteurs :
-un capteur suiveur de ligne : http://www.robotshop.com/eu/capteur-sui … our-2.html
-un capteur de distance : http://www.robotshop.com/eu/capteur-dis … sharp.html

Nous sollicitons votre aide pour savoir si ces pièces vous parlent, et si vous pouviez allonger cette liste, rajoutant tout ce qui vous paraît indispensable pour la conception.
merci d'avance

2

Re : Robot suiveur de lignes + balayeur d'objets

Bonjour,

Ces deux capteurs conviennent. Il faudra faire un peu de réglage ("calibrage") pour le capteur de distance, mais rien de compliqué.

Pour la mécanique, vous avez déjà des pistes ?

Re : Robot suiveur de lignes + balayeur d'objets

Bonjour!
Depuis notre dernier message nous avons bien avancé. Les pièces sont arrivées, nous avons montés la structure du robot, fixés les différents composants.
Pour le capteur de distance (voir ci-dessus), aucun problème nous recevons les données.
Mais le capteur suiveur de ligne (cf ci dessus) est en I2C. Nous possédons une carte Arduino UNO et nous avons lu que les pins privilégiées pour le I2C étaient 4 pour SDA et 5 pour SCL.
Cependant, après, nous ne savons pas comment récupérer les données.
Nous avons essayer pas mal de trucs (librairie Wire,…) , mais rien de bien concluant.
Nous ne savons pas si le problème vient de notre programme ou de l'adresse du capteur (par défaut dans le manuel d'utilisation : 0x50)
Est ce que l'un d'entre vous pourrait-il nous proposer un morceau de code pour pouvoir récupérer les 5 bits nécessaires à la lecture des données? Je vous mets en lien les données dont nous disposons.
http://tronixstuff.wordpress.com/2010/1 … e-i2c-bus/
http://www.mon-club-elec.fr/pmwiki_refe … rairieWire

Merci d'avance

4

Re : Robot suiveur de lignes + balayeur d'objets

Un exemple très simple : http://www.pobot.org/Echange-maitre-esclave-en-I2C.html

    int valeur;  
  
    void init() { 
        Serial.begin(9600);
   }

   void loop() {
       Wire.begin(0x50); // on se connecte au bus en se déclarant l'esclave 0x50
       Wire.onReceive(maFonctionDeLecture); // on déclare une fonction à coder ci-dessous pour la réception  
       Serial.println(valeur);
       delay(500);
    }  
      
    void maFonctionDeLecture(int combien) // le paramètre est obligatoire, c'est la "signature" attendue par Arduino  
    {  
       if (combien == 1) {  
          valeur = Wire.receive(); // octet par octet  
      }  
    }

5

Re : Robot suiveur de lignes + balayeur d'objets

Faites un test et dites moi ce que vous obtenez. Je serai ce week-end connecté par chat.

Re : Robot suiveur de lignes + balayeur d'objets

On a lancé le programme et on obtient une série de 0 quelle que soit le manipulation effectuée avec le capteur.
On va donc essayer de le modifier afin qu'il nous renvoie les résultats attendus.

Re : Robot suiveur de lignes + balayeur d'objets

On ne trouve toujours rien. Serait-il possible que quelqu'un nous donne un début de code ?
Merci d'avance.

8

Re : Robot suiveur de lignes + balayeur d'objets

Bonjour.

Le code est inscrit plus haut. On ne peut pas tester pour vous.
Avez-vous vérifié si l'adresse est en 7 bits ou en 8 bits ?

++
Julien.