MicroPython-HC-SR04
Introduction
Le HC-SR04 est un module ultrason permettant l'évaluation d'une distance de 2cm à 400cm. La mesure est réalisée "sans contact" et dispose d'une précision de 3mm dans les conditions optimales. Le module inclus un émetteur et un récepteur ultrason ainsi qu'une électronique de contrôle. Le fonctionnement de ce module s'apparente à celui d'un sonar de sous marin et sa mise en oeuvre est relativement simple.
principe de fonctionnement
- Le module émet une onde sonar composée d'une série de 8 impulsions à 40 kHz.
Un son à 40 KHz est inaudible pour l'oreille humaine capable de percevoir des sons entre 16Hz et 16KHz (cfr Wikipédia). - En utilisant la broche Trig, vous envoyez un signal pour activer le déclenchement de l'impulsion sonar.
- Si le signal revient... la sortie passe au niveau haut durant toute la période où l'onde voyage vers l'objet et revient après avoir été réfléchit par se dernier.
Note: L'avantage d'utiliser un son plus aigu est qu'il est directionnel (se propage en ligne droite) alors que les basses fréquences transitent plutôt par la matière. C'est pour cette raison que l'on entend que les basses lorsques les voisins font la fiesta!
Brancher
Schéma
- Trigger - Le broche "trigger" du senseur est censé recevoir le signal d'activation (5v) lui indiquant qu'il doit effectuer une mesure de distance. La plupart du temps, l'utilisation d'un signal 5V ou ou signal 3.3V passe parfaitement bien. En logique 5V, le signal est considéré comme haut dès qu'il passe le seuil de tension de 2.0v (voyez ce bel article de sonelec-musique pour plus de détails).
- Echo - la broche "echo" reverra un signal 5V lorsque l'écho sera revenu vers le senseur. Nous utilisons ici un pont diviseur de tension pour ramener la tension en dessous des 3.3 Volts. Même si l'entrée était tolérante 5V, c'est l'occasion d'apprendre une petite technique très utile, compatible avec tous les microcontrôleurs 3.3v.
Tension sur la broche Y6:
Voici comment calculer la tension sur la broche Y6 lorsque le pont diviseur reçoit le signal "echo" (soit 5V).
V(y6) = 5V * ( 470 / (470 + 330) ) = 2.06 Volts.
2.06 volts est suffisant pour activer la broche Y6.
Montage
Classe Ultrason
Pour utiliser les senseur HC-SR04, nous allons utiliser le classe Ultrason écrite par skgsergio et disponible sur son dépôt GitHub.
Téléchargez y le fichier ultrasonic.py que vous placerez dans le répertoire racine de votre PyBoard.
Cela vous permettra d'importer la la classe Ultrason.
from ultrason import Ultrason
Avec la classe Ultrason vous pourrez mesurer une distance en cm.
Ce qu'il y a de bien avec cette classe, c'est que vous pouvez l'utiliser plusieurs fois si vous avez plusieurs senseurs HC-SR04 :-)
Programme de test
Voici un programme de test que vous pouvez saisir en mode REPL (ou en utilisant pyterm.py)
# Mesure de distance à l'aide d'un senseur HC-SR04 # http://shop.mchobby.be/product.php?id_product=561 # from pyb import delay # ultrasonic.py stocké sur votre PyBoard. # Vous pouvez trouver cette source sur GitHub # https://github.com/skgsergio/MicropythonLibs/blob/master/Ultrasonic/module/ultrasonic.py # dans le projet de skgsergio # https://github.com/skgsergio/MicropythonLibs # from ultrasonic import Ultrasonic # Broche pour déclencher le senseur TRIGGER_PIN = pyb.Pin.board.Y5 # Broche pour attendre le retour d'echo ECHO_PIN = pyb.Pin.board.Y6 def show_distance(): """ Cette fonction mesure la distance et affiche la valeur en centimètre. Effectue la mesure une 20 de fois.""" sr04 = Ultrasonic( TRIGGER_PIN, ECHO_PIN ) for i in range( 20 ): # Mesure la distance en cm distance = sr04.distance_in_cm() # Afficher la valeur print( "%i/20: Distance %s cm" % (i+1, distance) ) # Attendre un seconde delay( 500 ) show_distance()
Où Acheter
- senseur HC-SR04 est disponible chez MC Hobby.
- Une carte MicroPython
- Résistance 330 Ohms
- Résistance de 470 Ohms
- Breadboard
- Fils pour Breadboard
- Assortiment de fils multi-fonctionnel (bien pratique pour effectuer rapidement un montage de test)
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.