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
