Plusieur HC-SR04  [RESOLU]

Piloter un aspirateur autonome ou une tondeuse baladeuse... Pourquoi pas avec un Raspberry Pi ?

Modérateur : Francois

floflo2606
Messages : 19
Enregistré le : sam. 20 mai 2017 18:59

Plusieur HC-SR04

Message par floflo2606 » ven. 26 janv. 2018 17:47

Je suis sur la création d'un robot autonome, après avoir fait le concours d'Astropi.
J'ai donc un problème, chaque fois que j'essaye de mettre 2 capteur HC-SR04 , le premier march, mais le second donne des valeur random.
J'aimerais si possible en mettre environ 4.

Fournitures :
- 5 HC-SR04
- un pack de plusieurs centaines de résistances
- une breadboard
- un raspberry pi 3
- et des fils

Merci d'avance
Flo

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Plusieur HC-SR04

Message par spourre » ven. 26 janv. 2018 18:31

Bonjour,

Je ne possède pas ce capteur (mais j'ai lu le datas sheet) donc ma réponse est théorique.
AMHA le second capteur est parasité par le signal émis (ou par les échos) par le 1er capteur.
Si on regarde la chronologie des signaux, on constate que l'émission est déclenchée par le signal de 10 us, répété toutes les 60 ms.
Le capteur émet alors une série de 8 impulsions à 40 kHz (fréquence de résonance des capsules piézo-électriques).
Suite à ce train , il passe en réception et attend le retour du signal émis.
Le signal de sortie délivre un créneau dont la durée est proportionnelle à la distance.
Si mon analyse est exacte, il faut actionner ces capteurs l'un après l'autre pour éviter qu'ils soient dans l'état "écoute" en même temps ou, pire encore, un en écoute et l'autre qui émet..
Pour cela, il faut utiliser 2 GPIOs pour générer 2 pulses séparés de 60 ms.
Comme vous souhaitez utiliser 5 capteurs, ce qui ferait beaucoup de GPIOs consommés rien que pour générer ce signal de déclenchement (et autant pour la lecture) , vous pouvez utiliser un Circuit Intégré du type diviseur ou registre à décalage.

Nota: Je ne sais pas quel est votre langage de programmation mais je soupçonne déjà des problèmes de chronologie à tenir en interprété..

Sylvain

floflo2606
Messages : 19
Enregistré le : sam. 20 mai 2017 18:59

Re: Plusieur HC-SR04

Message par floflo2606 » ven. 2 févr. 2018 19:18

Merci @spourre
J'utilise le python, langage de base du raspberry.

pour l'instant j'essaye juste d'en mettre 2, ils ne seront pas parasités, car je vais les mettre dos à dos.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Plusieur HC-SR04

Message par spourre » sam. 3 févr. 2018 00:24

floflo2606 a écrit : ...
pour l'instant j'essaye juste d'en mettre 2, ils ne seront pas parasités, car je vais les mettre dos à dos.
J'espère que cela suffira mais les capsules piézo, bien que très directives, ne sont pas totalement sourdes vers l'arrière, surtout avec un niveau d'émission assez conséquent.
Si les capteurs se brouillent mutuellement, essayez de mettre une petite plaque de styropor entre les deux. Les dimensions de cette plaque n'ont pas besoin d'être très importantes car en ultrason, la longueur d'onde est millimétrique.
Si le brouillage persiste, il faudra envisager une commande retardée (cf. ma première réponse) afin que les échos multiples de l'un, ne tombent pas dans la fençtre de mesure de l'autre.

Sylvain

floflo2606
Messages : 19
Enregistré le : sam. 20 mai 2017 18:59

Re: Plusieur HC-SR04

Message par floflo2606 » lun. 5 févr. 2018 17:31

Merci beaucoup Sylvain.

Mon plus gros problème, c est le branchement de tout ça. Je ne sais pas comment faire.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Plusieur HC-SR04

Message par spourre » lun. 5 févr. 2018 19:09

floflo2606 a écrit : Mon plus gros problème, c est le branchement de tout ça. Je ne sais pas comment faire.
Dans ce cas, il faut y aller pas à pas et commencer par maîtriser UN capteur.
La datasheet est très claire et j'ai synthétisé le fonctionnement dans ma première réponse.
Le module , en plus de l'alimentation, comporte 2 broches:
Trigger
Echo
Il faut appliquer une impulsion de 10 micro-secondes sur la broche Trigger pour passer le module en émission.
Il émet alors 8 impulsions à 40 kHz et passe en écoute.
La broche Echo délivre un créneau dont la durée est proportionnelle à la distance de l'objet (temps à diviser par 2 car correspons à un aller-retour).

Il vous faut donc utiliser 2 pins GPIO (évitez celles dédiées à d'autres fonctions). Une sera dédiée à générer le pulse et l'autre à mesurer la durée de l'écho.

Une rapide recherche fait trouver de nombreux exemples dédiés à l’Arduino:
https://wiki.mchobby.be/index.php?title=HC-SR04

Sur le Raspberry, la bibliothèque wiringPi a pour vocation de présenter les mêmes fonctions de contrôle des GPIO que sur l'Arduino. Elle est utilisable depuis un programme Pyton mais il faudra certainement adapté le code.

ATTENTION: Les broches du GPIO du Raspberry sont en logique 3.3V alors que l'Arduino est en 5V.
Le module s'alimente en 5V (que l'on peut prendre sur le Raspberry) mais je ne suis pas certain qu'il fonctionne correctement en 3.3V (je n'ai pas de module pour vérifier).
Si vous alimentez le module en 5V, il faudra protéger les broches du Raspberry pour ne jamais risquer de dépasser 3.3V. Cela a fait l'objet de nombreuses discussions (en particulier avec Pinapple).

Nota: Les défauts de Python ont fait l'objet d'analyses dans les mêmes discussions.

Sylvain

floflo2606
Messages : 19
Enregistré le : sam. 20 mai 2017 18:59

Re: Plusieur HC-SR04

Message par floflo2606 » mer. 7 févr. 2018 02:03

Pour l instant, j arrive a faire fonctionner qu un seul capteur, les autres me donnent des valeurs énormes.
J ai fait le branchement de base x2.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Plusieur HC-SR04

Message par spourre » mer. 7 févr. 2018 12:28

floflo2606 a écrit :Pour l instant, j arrive a faire fonctionner qu un seul capteur, les autres me donnent des valeurs énormes.
J ai fait le branchement de base x2.
Pouvez-vous décrire ce que vous appelez "branchement de base" ?
Côté logiciel, essayez-vous de piloter les 2 capteurs en même temps ou avez-vous suivi ma suggestion de le faire en décalé?

floflo2606
Messages : 19
Enregistré le : sam. 20 mai 2017 18:59

Re: Plusieur HC-SR04

Message par floflo2606 » jeu. 8 févr. 2018 17:13

Le modèle de base était sur un magazine raspberry.
J essaye en premier lieu de le faire en décalé, plu tard je verrai si on peut le faire en simultané.
Ou sinon je passe en arduino.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Plusieur HC-SR04

Message par spourre » jeu. 8 févr. 2018 17:59

OK mais il y a tellement de magazines dédiés entièrement (ou non) au Raspberry.
Pas le moindre petit lien vers le schéma et le code utilisé ?
Si les résultats du premier capteur sont cohérents, cela signifie que, globalement, le code est correct.
Avec 2, les problèmes peuvent venir:
- d'un brouillage, donc sera résolu par la commande en "décalé"
- d'un problème de ressources (limites du Raspberry ou/et du Python.
Le recours à un Arduino qui déchargera le Raspberry et livrera les mesures sur un port série (UART, I2C, SPI..) peut être une alternative intéressante.
Bon courage et tenez-nous au courant de vos essais.

Sylvain

Répondre

Retourner vers « Robots and Co »