Télémètre à ultrasons
Objectif : réaliser un télémètre à l’aide d’un capteur à ultrasons avec un Arduino. Le télémètre doit émettre un son dont la fréquence augmente quand la distance mesurée diminue.
Matériel nécessaire :
- Microcontrôleur Arduino
- Ordinateur avec Python
- Capteur HC-SR04
- Buzzer HYDZ
Suite logicielle utilisée : FirmataExpress + pymata4
Travail demandé
Câbler sur la platine de prototypage un capteur HC-SR04 (voir capteur de distance à Ultrasons) et un Buzzer (voir Buzzer).
On se propose d’utiliser le programme suivant (incomplet) :
import sys import time from pymata4 import pymata4 TRIGGER_PIN = 12 ECHO_PIN = 13 # La fonction qui réalise l'action à faire à chaque mesure def action(data): """ Action à réaliser à chaque mesure """ print(f'Distance = {data[??????]} cm') def sonar(carte, trigger_pin, echo_pin, action): """ Fonction de démarrage des mesures """ carte.set_pin_mode_sonar(trigger_pin, echo_pin, action) # Boucle infinie ... while True: try: time.sleep(.1) except KeyboardInterrupt: carte.shutdown() sys.exit(0) carte = pymata4.Pymata4() try: sonar(carte, TRIGGER_PIN, ECHO_PIN, action) carte.shutdown() except (KeyboardInterrupt, RuntimeError): carte.shutdown() sys.exit(0)
Analyse du programme
Consulter l’API (Application Programming Interface : Interface de Programmation Applicative) de pymata4 sur les fonctions spécifiques à l’utilisation d’un capteur HC-SR04 :
Quel nom porte la constante qui contient le numéro de port associé à l’émetteur du capteur ?
Quelle est la résolution de ce capteur ?
Combien de capteurs de ce type peut-on utiliser simultanément ?
De quel type est la variable
data
?Par quelle valeur faut-il remplacer les
?????
pour afficher la distance mesurée en cm ?
Finalisation du télémètre
Câbler le buzzer (voir activité Buzzer) et modifier le programme pour le préparer à utiliser le buzzer.
Modifier la fonction
action
de sorte que le buzzer émette un son dont la fréquence augmente quand la distance diminue.
Résultat