Aller au contenu


critok

Inscrit(e) (le) 26 sept. 2012
Déconnecté Dernière activité déc. 09 2019 08:33
-----

#53088 Question sur les parasites d'un capteur ir sharp

Posté par critok - 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

++


#52941 Question sur les parasites d'un capteur ir sharp

Posté par critok - 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.


#52046 Projet DRP Daryl Robot Project

Posté par critok - 09 décembre 2012 - 12:47

Bonjour à tous,

Je me suis lancé depuis peu dans un projet robotique (DRP pour Daryl Robot Project).
Pour faire rapide, je suis en train de construire un robot autonome, basé sur Arduino Uno, et ayant la particularité d'être piloté via un UMPC (viliv S5) depuis une application développée par mes soins en JAVA. (communication grâce à la lib Java RXTX)

J'ai choisi cette implémentation car je suis très à l'aise avec java et la prog en générale. Mais par contre je suis un newbie total en électronique.

Si mon projet vous intérésse, vous pouvez aller jeter un coup d'oeil sur mon blog: http://darylrobotproject.wordpress.com/

J'ai créé ce blog pour expliquer la démarche globale de mon projet, pour expliquer comment aborder certaines problématiques, mais également pour expliquer comment faire fonctionner certains éléments (arduino, contrôleur, modules, java...). En effet, j'ai parfois eu beaucoup de mal à trouver des tutos sur certains éléments.

J'essaye de mettre le blog réguliérement à jour, et de faire quelques vidéos.

N'hésitez pas à apporter vos critiques que ce soit sur le robot, ou bien le blog.

Côté robot, je pense avoir passé le plus dur désormais, même s'il me reste certaines problématiques à résoudre.

Merci aux personnes du forum qui m'ont conseillé.

@++ critok :ignat_02:/>