Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



[RESOLU]Comprendre la communication serie.


 
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions
Previous topic :: Next topic  
Author Message
Guid0
Débutant

Offline

Joined: 29 Oct 2013
Posts: 16
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Mon 4 Nov - 15:37 (2013)    Post subject: [RESOLU]Comprendre la communication serie. Reply with quote

PublicitéSupprimer les publicités ?
Bonjour,
La présentation de mon projet ce trouve dans la rubrique projet.

J'ai noté dans le code fourni pour le robot des lignes qui ont étés commenté dans une fonction que j'étudie :

Quote:


void IReye()//===============================================================Read IR compound eye================================================
{
  digitalWrite(IRpin,HIGH);                                     // turn on IR LEDs to read TOTAL IR LIGHT (ambient + reflected)
  delayMicroseconds(100);                                        // Allow time for phototransistors to respond. (may not be needed)
  upIRvalue=analogRead(Uppin);                                  // TOTAL IR = AMBIENT IR + LED IR REFLECTED FROM OBJECT
  downIRvalue=analogRead(Downpin);                              // TOTAL IR = AMBIENT IR + LED IR REFLECTED FROM OBJECT
  leftIRvalue=analogRead(Leftpin);                              // TOTAL IR = AMBIENT IR + LED IR REFLECTED FROM OBJECT
  rightIRvalue=analogRead(Rightpin);                            // TOTAL IR = AMBIENT IR + LED IR REFLECTED FROM OBJECT
 

  digitalWrite(IRpin,LOW);                                      // turn off IR LEDs to read AMBIENT IR LIGHT (IR from indoor lighting and sunlight)
  delayMicroseconds(100);                                        // Allow time for phototransistors to respond. (may not be needed)
  upIRvalue=upIRvalue-analogRead(Uppin);                        // REFLECTED IR = TOTAL IR - AMBIENT IR
  downIRvalue=downIRvalue-analogRead(Downpin);                  // REFLECTED IR = TOTAL IR - AMBIENT IR
  leftIRvalue=leftIRvalue-analogRead(Leftpin);                  // REFLECTED IR = TOTAL IR - AMBIENT IR
  rightIRvalue=rightIRvalue-analogRead(Rightpin);               // REFLECTED IR = TOTAL IR - AMBIENT IR
 

  distance=(leftIRvalue+rightIRvalue+upIRvalue+downIRvalue)/4;  // distance of object is average of reflected IR
  //Serial.println(distance);
  if (distance>distancemax)                                     // object in range
  {
    int sound=1024-distance;                                    // generate sound to indicate distance
    for(int p=0;p<10;p++)
    {
      digitalWrite(Speakerpin,HIGH);
      delayMicroseconds(sound);
      digitalWrite(Speakerpin,LOW);
      delayMicroseconds(sound);
    }
  }
  else
  {
    Steer=0;
    Direction=0;
  }
  /*
   Serial.print("Left:");
   Serial.print(leftIRvalue);
   Serial.print("  Right:");
   Serial.print(rightIRvalue);
   Serial.print("  Up:");
   Serial.print(upIRvalue);
   Serial.print("  Down:");
   Serial.print(downIRvalue);
   Serial.print("  Up/down:");
   Serial.print(lookUD);
   Serial.print("  Left/right:");
   Serial.println(lookLR);
  */
}




Globalement, la fonction est bien commentée. Le capteur envoie un flash de lumière et mesure la totalité de la lumière IR, puis arrête son flash et mesure la lumière IR ambiante. La différence donne une interprétation de la distance d'un éventuel objet réflecteur.
La série d'instructions neutralisées par commentaire -Serial.print() et Serial.println()- ressemble à du code de mise au point. Après une rapide recherche sur la référence arduino, je suppose que les décommenter permet de lire directement les valeurs dans le moniteur série, ce qui permet d'étalonner les constantes du programme en fonction des retours analogiques du capteur.

Comme j'ai l'intention de reprendre ce code pour ma reécriture, j'ai testé le code décommenté. Il y a aussi bien sur plus haut dans le programme un
Quote:


  //Serial.begin(57600);



a décommenter.

Notez que j'ai du neutraliser les fonctions de mouvement du robot, car le simple fait de décommenter ces lignes saturait la mémoire de la carte (c'est tout de même un petit kit lowcost). Rolling Eyes

Mais à ma grande déception, le retour dans la console Moniteur série est constitué de symboles incompréhensibles à mon cerveau biologique.
Jusque là toutes mes lectures ne m'ont pas apporté de solution pour simplement faire que
Quote:


   Serial.print("Left:");


écrive Left dans le moniteur série.
Merci de tous vos avis et commentaires.
____________________________
Projet en cours :
Reécriture programme robot


Last edited by Guid0 on Mon 4 Nov - 18:28 (2013); edited 1 time in total
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Mon 4 Nov - 17:13 (2013)    Post subject: [RESOLU]Comprendre la communication serie. Reply with quote

essayes Serial.begin(9600) ; et n'oublie pas de placer le moniteur série sur le même débit !!
____________________________
http://simple-duino.com
Back to top
Guid0
Débutant

Offline

Joined: 29 Oct 2013
Posts: 16
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Mon 4 Nov - 18:28 (2013)    Post subject: [RESOLU]Comprendre la communication serie. Reply with quote

Bien sur ! Embarassed
Je n'avais pas remarqué la valeur 57600 bauds, j'avais bêtement décommenté. À 9600, ça fonctionne au poil. Du coup, je sais que mon oeil retourne des valeurs comprises entre 1000 (au plus près) à un peu moins de 100 lorsque il n'y a rien à moins de 25 cm environ.
Merci, je vais pouvoir commencer à travailler là dessus.
____________________________
Projet en cours :
Reécriture programme robot
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Mon 4 Nov - 19:38 (2013)    Post subject: [RESOLU]Comprendre la communication serie. Reply with quote

De rien on est là pour ça !!
____________________________
http://simple-duino.com
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Mon 4 Nov - 19:41 (2013)    Post subject: [RESOLU]Comprendre la communication serie. Reply with quote

tu sais je sais pas pourquoi j'ai jamais compris ça (si quelqu'un peut l'expliquer je suis preneur) mais si tu mets un autre débit dans le Serial.begin et le même dans le moniteur série alors la connexion série est foireuse c'est très bizarre


J'ai toujours appris en 9600 donc je reste la dessus et ça marche tout le temps pour le moment !!
Mais alors quelle utilité pour les autres débits à parts la communication avec d'autre système à interface Série ?
____________________________
http://simple-duino.com
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Sat 9 Nov - 16:11 (2013)    Post subject: [RESOLU]Comprendre la communication serie. Reply with quote

Moi pour le cube musical j'ai besoin d'une connection bien plus rapide, j'en ai du coup eu besoin en 56000 je crois enfin dans ces environs
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Index | Xooit.com free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino