Aller au contenu


Photo
- - - - -

Question sur les parasites d'un capteur ir sharp


19 réponses à ce sujet

#1 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 17 janvier 2013 - 05:10

Bonjour,

Voila j'ai un petit problème de parasites sur mes capteurs IR Sharp. je vous expose les faits:

je possède trois capteur IR à l'avant de mon robot (1 au centre, 1 à gauche et un autre à droite) couplés à mon arduino uno.

Pour info, j'ai soudé un condensateur comme recommandé dans la datasheet pour éviter les parasites. http://www.robotshop.com/eu/content/PDF/datasheet-gp2d120xj00f.pdf

Voir photo: http://darylrobotproject.wordpress.com/2012/12/09/daryl-et-son-chassie-finalise/p1020268/

J'ai l'algo suivant:

Je fais avancer mon robot, puis dans mon code j'ai:

rightSensorCm = getRightIRSensor();
   delay(50);
   centerSensorCm = getCenterIRSensor();
   delay(50);
   leftSensorCm = getLeftIRSensor();
   delay(50);
...
puis algo de comparaison...

avec

int getLeftIRSensor()
{
  int leftSensorValue;
  leftSensorValue = irValueToCm(analogRead(leftSensorIr));
  sendValue('X',leftSensorValue);
  return leftSensorValue;
}
...

Ça marche plutôt pas mal, mais entre le moment ou mon robot avance, et la détection d'un obstacle (et donc l'arrêt du robot) j'ai 150ms qui se sont écoulé (3*50ms), ce qui est assez conséquent pour mon robot qui avance relativement vite.

j'ai donc fait un petit test en réduisant mes delay(50) par des delay(5) pour voir.
La, j'ai constaté que ca partait complètement en cacahuète (mon robot s'arrête sans cesse car la mesure du capteur gauche tombe sous le seuil de sécurité que j'ai programmé).

Bon la je me dis bizarre. Je coupe les moteurs, idem toujours le problème, donc pas des parasites moteurs...

Je pense à un problème d’interférence entre les trois capteurs IR.
Pour en avoir le coeur net, je pose mon robot sur ma table (sans obstacle devant) Voir photo de mon robot plus haut.
Pour comprendre imaginez le robot devant vous la tête au dessus, (avant du robot vers l'avant).

Je met mon doigt sur le capteur IR se trouvant sur la droite du robot -> le capteur IR gauche déconne toujours à plein tube
Je met mon doigt sur le capteur IR se trouvant au milieu du robot (sous le capteur ultrason) -> le capteur IR gauche marche parfaitement! :black_eye:/>

Il s'agirait donc bien d'un problème d’interférence entre le capteur du milieu et gauche?
Ce problème n’apparaît pas lorsque j'ai mes delay à 50.
Est-ce le rayon du capteur du milieu qui arrive dans le capteur de gauche, car la prise de mesure du capteurs gauche se fait trop tôt?

Je pense qu'en mettant des delay de 50, la probabilité que de tomber sur une mesure parasite est vraiment réduite.
En supprimant le delay, je fais plus de mesures, j'ai donc plus de probabilité de tomber sur une mesure erroné.

Y'aurait-il une solution pour éviter ces parasites? je pense que j'aurais du inverser les capteur gauche et droite afin que les rayons se croisent et pour que les capteur du milieu et gauche ne soient pas dans le même "sens". Seulement ca m'embête d’apporter cette modification.

On m'a conseillé de mettre la pin à high avant de prendre la mesure puis de la remettre à low après la mesure (pour chacun des capteurs) afin de ne pas les parasiter entre eux. Est-ce la bonne solution?

Merci pour votre aide.

#2 Mgros

Mgros

    Membre occasionnel

  • Membres
  • Pip
  • 144 messages
  • Gender:Male
  • Location:Caissargues 30

Posté 17 janvier 2013 - 10:21

quand tu parles du condo de découplage plus haut ... tu en a 1 par capteur et placé au plus près du capteur ?

Ensuite je sais pas si j'ai bien capté le problème mais tu dis que quand tu réduit les délais tu as des valeurs bizarres ...

Si tu filtre le signal du capteur pour éviter les faux pics ou creux ça pourrai fonctionner mieux à ton avis ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.
Ma Chaîne youtube
------

#3 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 17 janvier 2013 - 10:53

quand tu parles du condo de découplage plus haut ... tu en a 1 par capteur et placé au plus près du capteur ?

Ensuite je sais pas si j'ai bien capté le problème mais tu dis que quand tu réduit les délais tu as des valeurs bizarres ...

Si tu filtre le signal du capteur pour éviter les faux pics ou creux ça pourrai fonctionner mieux à ton avis ?


Oui, un par capteur et soudé sur le pcb derrière le capteur donc je peux pas faire mieux :on_the_quiet: : voir photo http://darylrobotproject.wordpress.com/2012/12/11/utilisation-de-capteur-infrarouge-sharp/p1020259/

Pour les delais oui, quand j’enlève complément les trois delay(50) après chaque mesure, mon robot s'arrête constamment. Normal la valeur peut aller de 0 à 200 et j'ai programmé le robot pour s'arrêter lorsque la valeur passe sous les 100, et dans mon cas pour le capteur gauche je vois la valeur passer rapidement sous les 100 puis remonter. (J'ai 1 à 2 parasites par seconde)
Lorsque je remet les delay(50) je n'est quasiment plus de problème, ça arrive mais très rarement. Je pense que cela est du au fait que la probabilité de relever une valeur incorrecte est plus grande lorsque j'ai des délais de plus en plus court. Logique délais plus courts = plus de mesures donc plus de chance de tomber sur une mesure incorrecte.

Pour le filtrage je ne sais pas du tout, je n'ai vraiment pas de grosses notions d'électronique. Mais je ne pense pas que ça soit un parasite électrique vu que, comme mentionné, le problème disparaît lorsque je cache le capteur du milieu. Je pense qu'il s'agit donc d'un parasitage niveau rayon émit du capteur du milieu vers le capteur de gauche.

#4 Mic*

Mic*

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male
  • Location:Sarthe

Posté 17 janvier 2013 - 11:32

Pourquoi tu n'utilise un seul capteur IR monté sur un mini servomoteur 9gr ou 3,7gr ça téviterai les interférence pour une détection convenable





Bonjour,

Voila j'ai un petit problème de parasites sur mes capteurs IR Sharp. je vous expose les faits:

je possède trois capteur IR à l'avant de mon robot (1 au centre, 1 à gauche et un autre à droite) couplés à mon arduino uno.

Pour info, j'ai soudé un condensateur comme recommandé dans la datasheet pour éviter les parasites. http://www.robotshop...p2d120xj00f.pdf

Voir photo: http://darylrobotpro...alise/p1020268/

J'ai l'algo suivant:

Je fais avancer mon robot, puis dans mon code j'ai:

rightSensorCm = getRightIRSensor();
   delay(50);
   centerSensorCm = getCenterIRSensor();
   delay(50);
   leftSensorCm = getLeftIRSensor();
   delay(50);
...
puis algo de comparaison...

avec

int getLeftIRSensor()
{
  int leftSensorValue;
  leftSensorValue = irValueToCm(analogRead(leftSensorIr));
  sendValue('X',leftSensorValue);
  return leftSensorValue;
}
...

Ça marche plutôt pas mal, mais entre le moment ou mon robot avance, et la détection d'un obstacle (et donc l'arrêt du robot) j'ai 150ms qui se sont écoulé (3*50ms), ce qui est assez conséquent pour mon robot qui avance relativement vite.

j'ai donc fait un petit test en réduisant mes delay(50) par des delay(5) pour voir.
La, j'ai constaté que ca partait complètement en cacahuète (mon robot s'arrête sans cesse car la mesure du capteur gauche tombe sous le seuil de sécurité que j'ai programmé).

Bon la je me dis bizarre. Je coupe les moteurs, idem toujours le problème, donc pas des parasites moteurs...

Je pense à un problème d'interférence entre les trois capteurs IR.
Pour en avoir le coeur net, je pose mon robot sur ma table (sans obstacle devant) Voir photo de mon robot plus haut.
Pour comprendre imaginez le robot devant vous la tête au dessus, (avant du robot vers l'avant).

Je met mon doigt sur le capteur IR se trouvant sur la droite du robot -> le capteur IR gauche déconne toujours à plein tube
Je met mon doigt sur le capteur IR se trouvant au milieu du robot (sous le capteur ultrason) -> le capteur IR gauche marche parfaitement! :black_eye:/>/>

Il s'agirait donc bien d'un problème d'interférence entre le capteur du milieu et gauche?
Ce problème n'apparaît pas lorsque j'ai mes delay à 50.
Est-ce le rayon du capteur du milieu qui arrive dans le capteur de gauche, car la prise de mesure du capteurs gauche se fait trop tôt?

Je pense qu'en mettant des delay de 50, la probabilité que de tomber sur une mesure parasite est vraiment réduite.
En supprimant le delay, je fais plus de mesures, j'ai donc plus de probabilité de tomber sur une mesure erroné.

Y'aurait-il une solution pour éviter ces parasites? je pense que j'aurais du inverser les capteur gauche et droite afin que les rayons se croisent et pour que les capteur du milieu et gauche ne soient pas dans le même "sens". Seulement ca m'embête d'apporter cette modification.

On m'a conseillé de mettre la pin à high avant de prendre la mesure puis de la remettre à low après la mesure (pour chacun des capteurs) afin de ne pas les parasiter entre eux. Est-ce la bonne solution?

Merci pour votre aide.



#5 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 17 janvier 2013 - 11:47

Pourquoi tu n'utilise un seul capteur IR monté sur un mini servomoteur 9gr ou 3,7gr ça téviterai les interférence pour une détection convenable


En fait le capteur du milieu est monté sur la tourelle (voir photos) mais ça me semblais plus facile d'en mettre trois à des positions différentes. Car lorsque la tourelle regarde d'un côté, elle ne regarde pas de l'autre. Je ne pensais pas qu'il y aurait de telle parasites très franchement.
Mon idée est d'avoir 3 capteurs IR en appoint pour vérifier en permanence à droite, à gauche et directement devant le robot, stopper le robot si obstacle, le faire tourner en conséquence puis scanner l'environnement pour trouver une direction idéal avec le capteur ultrason... Ça marche plutôt bien mais avec des delay de 50.

Sinon une autre solution est de prendre 10 (ou plus) mesures sans delay pour chaque capteur, puis faire une moyenne ou une pondération... Il me semble que s'est une technique très utilisée justement avec ce type de capteur.

#6 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 972 messages
  • Gender:Male
  • Location:Anglet

Posté 18 janvier 2013 - 01:28

Je pense à un problème d’interférence entre les trois capteurs IR.
Pour en avoir le coeur net, je pose mon robot sur ma table (sans obstacle devant) Voir photo de mon robot plus haut.
Pour comprendre imaginez le robot devant vous la tête au dessus, (avant du robot vers l'avant).

Je met mon doigt sur le capteur IR se trouvant sur la droite du robot -> le capteur IR gauche déconne toujours à plein tube
Je met mon doigt sur le capteur IR se trouvant au milieu du robot (sous le capteur ultrason) -> le capteur IR gauche marche parfaitement! :black_eye:/>/>

Il s'agirait donc bien d'un problème d’interférence entre le capteur du milieu et gauche?
Ce problème n’apparaît pas lorsque j'ai mes delay à 50.
Est-ce le rayon du capteur du milieu qui arrive dans le capteur de gauche, car la prise de mesure du capteurs gauche se fait trop tôt?

Je pense qu'en mettant des delay de 50, la probabilité que de tomber sur une mesure parasite est vraiment réduite.
En supprimant le delay, je fais plus de mesures, j'ai donc plus de probabilité de tomber sur une mesure erroné.

Y'aurait-il une solution pour éviter ces parasites? je pense que j'aurais du inverser les capteur gauche et droite afin que les rayons se croisent et pour que les capteur du milieu et gauche ne soient pas dans le même "sens". Seulement ca m'embête d’apporter cette modification.

On m'a conseillé de mettre la pin à high avant de prendre la mesure puis de la remettre à low après la mesure (pour chacun des capteurs) afin de ne pas les parasiter entre eux. Est-ce la bonne solution?

Merci pour votre aide.


Tu as parfaitement bien identifié le problème et de la bonne façon... Il suffit de ne pas utiliser tout les capteurs au même moment si il sont aussi rapprocher les uns des autres ... Sinon il aurait fallu choisir des capteurs destiné à des distances plus courtes que celles auquels ils sont visiblement destiné ... Tu utilise des sharp qui vont de combien à combien ?

Sinon je n'ai malheureusement pas d'autres solutions pour toi ...

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#7 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 18 janvier 2013 - 10:32

Tu as parfaitement bien identifié le problème et de la bonne façon... Il suffit de ne pas utiliser tout les capteurs au même moment si il sont aussi rapprocher les uns des autres ... Sinon il aurait fallu choisir des capteurs destiné à des distances plus courtes que celles auquels ils sont visiblement destiné ... Tu utilise des sharp qui vont de combien à combien ?

Sinon je n'ai malheureusement pas d'autres solutions pour toi ...


Merci pour ton aide mike118.
J'utilise les capteurs IR sharp 4 à 30cm.

Du coup tu préconises quelle solution toi mike118?

De toute facon je pense que je vais essayer chacunes des solutions:

1/ Faire plusieurs mesures (10-20 à voir suivant les timing) sans delay, puis faire une moyenne ou un algo pour reconnaitre s'il y a un ou plusieurs parasites ou non.

2/ Mettre mes capteurs sur des pins digital de l'arduino puis faire un truc du genre?

pinMode(pinCapteur1, INPUT);
pinMode(pinCapteur2, INPUT);
pinMode(pinCapteur3, INPUT);
...


digitalWrite(pinCapteur1, HIGH); 
rightSensorCm = getRightIRSensor();
digitalWrite(pinCapteur1, LOW);
delay(5);

digitalWrite(pinCapteur2, HIGH); 
centerSensorCm = getCenterIRSensor();
digitalWrite(pinCapteur2, LOW);
delay(5);

digitalWrite(pinCapteur3, HIGH); 
leftSensorCm = getLeftIRSensor();
digitalWrite(pinCapteur3, LOW);
delay(5);

Pour avoir croisé les avis avec un autre forum, une personne m'a dit que cela pourrait coser des problèmes au niveau de la puissance de l'arduino. je cite:

Par contre le courant est limite pour un pin (d'après la datasheet 33mA en moyenne, 50 max) de l'Atmega, teste comme ça ça risque rien, mais dans le temps je te le déconseille, il faudra un transistor ou un relai pour faire l'interface de puissance.


Est-ce le cas?

3/ Essayer d'inverser le sens du capteur (connection vers le haut). Pour voir si le changement de position des recepteurs/émetteurs change quelque chose. Mais bon ca ne sera pas très esthétique.

4/ Laisser les delay(50) :Gigakach_01:

5/ Balancer mon robot par la fénêtre :diablo:

Merci

#8 FredoO

FredoO

    Membre

  • Membres
  • 39 messages
  • Gender:Male

Posté 18 janvier 2013 - 08:15

Si je puis me permettre ,et si s'était plutôt un problème de timing ?

Voir partie "3-4 timing chart" du datasheet

Je pense que tu en demande trop par rapport au timing interne du capteur ,ça balance pas en continu l'info ,y'a un petit traitement interne qui induit un délai . 5ms c'est carrément trop short je pense que ça ne peut pas marcher tout court ,et que ce ne sont pas des parasites.

D'après le graphe du datasheet ,tu ne pourras guère descendre sous la barre des 50ms ,chaque mesure prend apparemment 38,3ms +/- 9,6 auxquelles il faut rajouter 5ms de délai pour que Vout soit rafraîchit.

Peut-être une piste ? (en tout cas il est clairement inutile de lire la valeur de ce capteur à une fréquence trop élevé )

#9 Mic*

Mic*

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male
  • Location:Sarthe

Posté 18 janvier 2013 - 09:47

Bonjour,
as tu essayé de mettre un cache noir pour séparer la vision des capteurs ?
j'ai eu un problème avec une LED IR et un capteur IS471F le capteur affichait toujours une détection,
j'ai entouré la LED avec un scotch noir et tout est rentré dans l'ordre
attention certains caches noirs laissent passer les rayons infrarouge vérifier avant s'ils sont opaques

En fait le capteur du milieu est monté sur la tourelle (voir photos) mais ça me semblais plus facile d'en mettre trois à des positions différentes. Car lorsque la tourelle regarde d'un côté, elle ne regarde pas de l'autre. Je ne pensais pas qu'il y aurait de telle parasites très franchement.
Mon idée est d'avoir 3 capteurs IR en appoint pour vérifier en permanence à droite, à gauche et directement devant le robot, stopper le robot si obstacle, le faire tourner en conséquence puis scanner l'environnement pour trouver une direction idéal avec le capteur ultrason... Ça marche plutôt bien mais avec des delay de 50.

Sinon une autre solution est de prendre 10 (ou plus) mesures sans delay pour chaque capteur, puis faire une moyenne ou une pondération... Il me semble que s'est une technique très utilisée justement avec ce type de capteur.



#10 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 18 janvier 2013 - 11:40

Si je puis me permettre ,et si s'était plutôt un problème de timing ?

Voir partie "3-4 timing chart" du datasheet

Je pense que tu en demande trop par rapport au timing interne du capteur ,ça balance pas en continu l'info ,y'a un petit traitement interne qui induit un délai . 5ms c'est carrément trop short je pense que ça ne peut pas marcher tout court ,et que ce ne sont pas des parasites.

D'après le graphe du datasheet ,tu ne pourras guère descendre sous la barre des 50ms ,chaque mesure prend apparemment 38,3ms +/- 9,6 auxquelles il faut rajouter 5ms de délai pour que Vout soit rafraîchit.

Peut-être une piste ? (en tout cas il est clairement inutile de lire la valeur de ce capteur à une fréquence trop élevé )


Je ne pense pas pour deux raisons:
1/ On m'a dit que ce n'était pas grave de prendre beaucoup de mesures (je peux le faire mais ça ne sert à rien de descendre en dessous de 50ms évidement).
Comme tu l'as dit, la mesure est mise à jour toute les 38,3ms +/- 9,6. Mais il est tout à fait possible de demander deux fois la mesure pendant l'intervalle: le capteur retournera tout simplement deux fois la même valeur. Après, comme on ne sait pas quand va être la prochaine mise à jour (dans l'intervalle on peut très bien être au début comme à la fin), autant faire beaucoup de refresh (ou mettre un delay très courts comme 5 ou 10 par exemple).
2/ Comme je l'ai dit, même sans delay le capteur droit marche niquel mais il n'y a quelques parasites sur celui du milieu et beaucoup sur celui de gauche. Pour moi c'est clair qu'il s'agit de parasites entre le capteur du milieu et celui de gauche, car lorsque je met mon doigt devant le capteur du milieu, le capteur de gauche marche parfaitement (plus aucun parasite). Dés que j’enlève mon doigt, les parasites reviennent immédiatement.


Bonjour,
as tu essayé de mettre un cache noir pour séparer la vision des capteurs ?
j'ai eu un problème avec une LED IR et un capteur IS471F le capteur affichait toujours une détection,
j'ai entouré la LED avec un scotch noir et tout est rentré dans l'ordre
attention certains caches noirs laisse passer les rayons infrarouge vérifier avant s'ils sont opaques


Non je n'ai pas essayé mais ça peut être une solution. Tu aurais une photo?

-------

Je vais essayer une solution software avant de m'attaquer aux solutions "hardware".

Je vais faire un petit algo qui va:

Faire 15 tirs sur chacun des capteurs, mettre les mesures dans l'ordre croissant pour faire ressortir les 5 valeurs médianes puis faire une moyenne de ces 5 valeurs.

Par exemple:

Pour mon capteur qui mesure de 10 à 30 cm

Un obstacle se trouve à 20cm

Je fais 15 tirs pour le capteur droit et j'obtiens les valeurs suivantes:

20 21 19 05 20 24 15 02 02 20 12 21 21 30 20 (avec des parasites 05 02 02 24 par ex)

Je les tris dans l'ordre croissant:

02 02 05 12 15 19 20 20 20 20 21 21 21 24 30

Je prends les 5 valeurs du milieu:

19 20 20 20 20

puis je fais la moyenne:

19.8

Puis je fais ça pour les 2 autres capteurs.

Je pense que ça devrais être pas trop mal. Je vous tiens au courant.

Merci pour votre aide en tous les cas.

#11 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 19 janvier 2013 - 03:28

Re bonjour ou bonsoir!

Bon j'ai mis en place mon petit algo.

J'ai testé dans un premier temps en prenant 18 tirs, en triant puis en faisant la moyenne des 6 valeurs médianes (et en enlevant les delay) -> Résultats encore pire
J'ai essayé en augmentant le nombre de tirs -> Résultats encore pire qu'avant et avec plus de latence
J'ai essayé en réduisant le nombre de tirs mais en ajoutant des delay -> Un peu mieux qu'avant grâce au lissage de l'algo mais toujours de gros parasites et un peu de latence

N'arrivant pas à un résultat satisfaisant, j'ai débranché mon capteur du milieu, et la comme attendu les deux capteurs marchent à merveille et 0 parasites grâce à l'algo de lissage!

Je pense que je vais oublier ce capteur et plutôt utiliser le capteur ultrason sur la tourelle pour les obstacles directement devant le robot.

J'avoue ne pas comprendre le problème avec ce capteur.

#12 Mic*

Mic*

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male
  • Location:Sarthe

Posté 19 janvier 2013 - 10:36

voici une photo jointe on voit me scotch noir qui entoure la LED,
mon problème était qu'il y avait des réflexion IR par l'arrière de la LED

sinon un voici une petite vidéo en action:Mon lien
A+ Mic*

Image(s) jointe(s)

  • RR-IR.JPG


#13 Mic*

Mic*

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male
  • Location:Sarthe

Posté 19 janvier 2013 - 11:00

Ton système de moyenne est intéressant je pense construire un robot à 2 LED (droite gauche) à lecture alternée sur un IS471F avec cet algo :)

Je crois que tu ne devrai pas monter le capteur du milieu en balayage mais le monter en fixe avec un cache de chaque cotés pour éviter les IR parasites
sur les autres capteurs

#14 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 19 janvier 2013 - 12:31

voici une photo jointe on voit me scotch noir qui entoure la LED,
mon problème était qu'il y avait des réflexion IR par l'arrière de la LED

sinon un voici une petite vidéo en action:Mon lien
A+ Mic*


Excellent ton petit robot. J'aimerais bien me lancer aussi dans la construction d'un micro robot. Mais je crois que je vais finir Daryl avant lol

Sinon pour le cache sur le capteur, je vais essayé de mètre un genre d'oeillière dessus pour voir si ça change quelque chose, mais je n'y crois pas trop dans le sens ou les capteurs Sharp sont moulés dans un plastique. Voir photo http://darylrobotproject.wordpress.com/2012/12/11/utilisation-de-capteur-infrarouge-sharp/p1020273/

#15 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 972 messages
  • Gender:Male
  • Location:Anglet

Posté 19 janvier 2013 - 06:49

Merci pour ton aide mike118.
J'utilise les capteurs IR sharp 4 à 30cm.

Du coup tu préconises quelle solution toi mike118?



au vu de l'ensemble de tes observation il est évident que tes capteurs orianté à 45° reçoivent du bruit infrarouge provenant de ton capteur central. Je te demanderais bien une photo de ton robot vue de dessus où on voit bien l'emplacement de tes capteurs 'histoire de bien voir quel en serait la cause ) mais le solution pouvant être la plus pertinante dans ton cas serait peut être bien l'ajout d'un cache derrière le capteur suffisament large pour empêcher tout retour vers les capteur orienté à 45°. ( Donc je propose le même type de solution que Mic* =) )

Si cela ne convient pas, tu fais en sorte que ton capteur puisse être allumer et éteinds par ta arduino et tu ne l'allumes que de temps en temps pour faire une mesure. ( Et au moment où il est allumé tu ne prends plus de mesures sur tes autres capteurs) D'après la datasheet du capteur une arduino devrait pouvoir l'alimenter à partir d'un de ses port ( 33 mA en moyenne ) Cependant ce n'est pas sur à 100% ( valeur max de consomation spécifié à 50mA alors que si je ne me trompe pas la limite moyenne d'un port de arduino est de 40mA... ) Donc je dirais soit à tester met je prévient quand même que ça peut ne pas marcher. Sinon il faut intercaler un petit mosfet pour faire ça de manière plus propre.


Voilà !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#16 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 20 janvier 2013 - 08:53

Un petit mot en passant :
je ne sais pas si tu le fais (je ne crois pas d'après ce que j'ai lu) mais pour éviter les parasites d'un capteur par les autres le mieux serait de couper l'alim des capteurs non lus mais alors effectivement le délai mini avant lecture est de 38.3ms !
Donc si ce sont effectivement des parasites sur la tension analogique de sortie, alors un premier filtre RC pourrait déjà améliorer le signal mais lui aussi(on ne gagne pas sur tout les plans) va amener un retard. Si les angles sont respectés, les comportements des capteurs devraient quand même être identiques: as tu croisés les capteurs?
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#17 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 24 janvier 2013 - 09:11

Bonjour à tous,

J'ai finalement eu le temps de réaliser tous mes petits tests:

Rappel de mon problème:
J'ai de nombreux parasites, essentiellement sur mon capteur gauche. Voir photo du dessus: http://darylrobotproject.wordpress.com/?attachment_id=422
De plus j'avais constaté que positionner un obstacle loin mais un peu en décalé du capteur, ramenait le même résultat qu'avec un obstacle pile devant le capteur mais plus prés. (donc pas très précis si l'on passe prés d'un mur loin, mais sur le côté par ex) CE problème à l'air d'avoir lieu uniquement que le coté droit de chacun des capteurs :smiley-eek-blue:

Mon hypothèse:
Mon hypothèse est que le capteur du milieu parasite le capteur de gauche en envoyant probablement son rayon IR dans le récepteur du capteur gauche.
Hypothèse validée par la suite, car lorsque je pose mon doigt devant le capteur du milieu, je n'ai plus du tout de parasite sur le capteur gauche.
Pour le deuxième problème (précision) je ne sais pas.

Les différentes idées/solutions données par... vous ;)/>:

1/ Passer les pins en digital puis allumer le capteur (HIGH) puis prendre la mesure, puis le repasser en LOW pour le couper. Ainsi, à chaque mesure le capteur en cours de mesure n'est pas parasité par les autres.

Résultat: Une faible diminution des parasites j'ai l'impression, ou plutôt une réduction de leur amplitude. L'effet reste tout de même très faible. Je pense que tout va trop vite et que les rayon IR parasitent tout de même...

2/ Utiliser un algo de "lissage". J'ai mis en place un algo de lissage. Dans un premier temps j'effectue X tirs (12 dans mon cas). Je tri les valeurs retournées dans l'ordre croissant, puis je prend les X valeurs situées au milieu du tableau (4 dans mon cas) et je fais la moyenne.

Résultat: Un lissage des valeurs des capteurs serte, mais quand le capteur retourne 6/8 parasites sur 12, on tend forcement vers une valeur parasite lissée au final. Donc dans mon cas pas d'une très grand aide... ]:)/>

3/ Mettre des caches, ou cônes pour limiter les parasites. A l'aide de papier cartonné, j'ai réalisé des petits cônes que j'ai placé autour des capteurs.

Résultat: Et bien croyez le ou pas mais plus aucun parasites!! De plus les cônes améliorent considérablement la précision. J'ai testé en positionnant un obstacle loin et sur le coté du capteur (donc capteur m'indiquant que je suis à la limite de ma distance de sécurité) et j'ai placé le cône, et la la valeur est revenu à une valeur normale!

Verdict: La solution permettant une réduction totale des parasites et améliorant considérablement la précision est donc la mise en place de cône autour des capteurs. :P/>
L'adjonction des 2 autres solutions permet bien évidement de réduire les parasites (HIGH/LOW) puis de lisser la valeur (algo) pour obtenir un résultat parfait.

Je vais essayé de faire des cônes en plastique pour faire quelque chose de plus propre.

Les cônes en papier:
http://darylrobotproject.wordpress.com/?attachment_id=423
http://darylrobotproject.wordpress.com/?attachment_id=421

Merci pour votre aide.

Je vais faire un billet sur mon blog avec vidéos à l'appui dans quelques jours. http://darylrobotproject.wordpress.com

++

#18 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 24 janvier 2013 - 10:03

De plus j'avais constaté que positionner un obstacle loin mais un peu en décalé du capteur, ramenait le même résultat qu'avec un obstacle pile devant le capteur mais plus prés

ces capteurs sont connus pour : en regardant la courbe de sortie de la datasheet, par exemple une tension de 1.6V correspond à 2 distances d'obstacle 1 cm et 8cm; toute détection de moins de 3cm est à proscire
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#19 critok

critok

    Membre

  • Membres
  • 35 messages

Posté 24 janvier 2013 - 11:13

ces capteurs sont connus pour : en regardant la courbe de sortie de la datasheet, par exemple une tension de 1.6V correspond à 2 distances d'obstacle 1 cm et 8cm; toute détection de moins de 3cm est à proscire


Bonjour hmnrobots,

Oui je connaissais ce problème de "zone d'ombre". Mais comme indiqué dans ce cas il s'agit de distances longues. De plus, mon capteur est en retrait du robot donc pas ce pb normalement.
J'ai fais un petit schémas de mon cas: http://darylrobotproject.wordpress.com/?attachment_id=424

#20 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 25 janvier 2013 - 07:53

Bonjour hmnrobots,

Oui je connaissais ce problème de "zone d'ombre". Mais comme indiqué dans ce cas il s'agit de distances longues. De plus, mon capteur est en retrait du robot donc pas ce pb normalement.
J'ai fais un petit schémas de mon cas: http://darylrobotproject.wordpress.com/?attachment_id=424

ok, je n avais pas vu que tu l'avais déjà pris en compte.
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users