Ligne 18 : |
Ligne 18 : |
| | | |
| * '''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 ([http://www.sonelec-musique.com/electronique_bases_compatibilite_ttl_cmos.html voyez ce bel article de sonelec-musique] pour plus de détails). | | * '''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 ([http://www.sonelec-musique.com/electronique_bases_compatibilite_ttl_cmos.html 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. | + | * '''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. |
| | | |
| {{underline|Tension sur la broche Y6:}} | | {{underline|Tension sur la broche Y6:}} |
Ligne 30 : |
Ligne 30 : |
| === Montage === | | === Montage === |
| [[Fichier:MicroPython-HC-SR04-montage.jpg|800px]] | | [[Fichier:MicroPython-HC-SR04-montage.jpg|800px]] |
| + | |
| + | == Classe Ultrason == |
| + | Pour utiliser les senseur HC-SR04, nous allons utiliser le classe {{fname|Ultrason}} écrite par skgsergio et disponible sur son [https://github.com/skgsergio/MicropythonLibs dépôt GitHub]. |
| + | |
| + | Téléchargez y le fichier {{fname|ultrasonic.py}} que vous placerez dans le répertoire racine de votre PyBoard. |
| + | |
| + | [[Fichier:MicroPython-HC-SR04-Ultrason.jpg|800px]] |
| + | |
| + | Cela vous permettra d'importer la la classe {{fname|Ultrason}}. |
| + | |
| + | <nowiki>from ultrason import Ultrason</nowiki> |
| + | |
| + | Avec la classe {{fname|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 [[MicroPython-Hack-REPL|mode REPL]] (ou en utilisant [[MicroPython-Hack-Outil|pyterm.py]]) |
| + | |
| + | Ce programme mesure la distance et affiche la valeur en centimètre sur le terminal. |
| + | |
| + | Cette mesure est effectuée 20 de fois |
| + | |
| + | <nowiki># 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()</nowiki> |
| + | |
| + | == Plus, plus et encore plus == |
| + | * Soyez curieux et [https://github.com/skgsergio/MicropythonLibs explorez l'implémentation de la classe {{fname|Ultrason}}] (''GitHub''). C'est bigrement intéressant. |
| | | |
| == Où Acheter == | | == Où Acheter == |