Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



[RESOLU]Comprendre la communication serie.


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
Guid0
Débutant

Hors ligne

Inscrit le: 29 Oct 2013
Messages: 16
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 4 Nov - 15:37 (2013)    Sujet du message: [RESOLU]Comprendre la communication serie. Répondre en citant

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 :

Citation:


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
Citation:


  //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
Citation:


   Serial.print("Left:");


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


Dernière édition par Guid0 le Lun 4 Nov - 18:28 (2013); édité 1 fois
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Lun 4 Nov - 17:13 (2013)    Sujet du message: [RESOLU]Comprendre la communication serie. Répondre en citant

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

Hors ligne

Inscrit le: 29 Oct 2013
Messages: 16
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 4 Nov - 18:28 (2013)    Sujet du message: [RESOLU]Comprendre la communication serie. Répondre en citant

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
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Lun 4 Nov - 19:38 (2013)    Sujet du message: [RESOLU]Comprendre la communication serie. Répondre en citant

De rien on est là pour ça !!
____________________________
http://simple-duino.com
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Lun 4 Nov - 19:41 (2013)    Sujet du message: [RESOLU]Comprendre la communication serie. Répondre en citant

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
Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Sam 9 Nov - 16:11 (2013)    Sujet du message: [RESOLU]Comprendre la communication serie. Répondre en citant

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
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 08:46 (2017)    Sujet du message: [RESOLU]Comprendre la communication serie.

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino