Construire un télémètre avec un microcontrôleur
Objectif
Il s'agit ici de déterminer une distance à partir de la mesure de la durée du trajet d'une onde ultrasonore, connaissant la vitesse du son.
L'élève peut éventuellement réutiliser la vitesse du son qu'il aurait déterminée dans la manipulation précédente.
MéthodePrincipe de la mesure
Pour obtenir la distance entre l'émetteur et l'obstacle, on utilise la fonction time_pulse_us()
qui permet de connaître la durée nécessaire à un aller-retour. En utilisant la valeur de la vitesse du son, on en déduit la distance qui sépare le dispositif de l'obstacle par la relation \(D=\dfrac{v_{son}\times \Delta t}{2}\).
Attention : time_pulse_us()
renvoie une durée en microsecondes.
1
# mesure de distance echo US
2
3
from microbit import *
4
from machine import time_pulse_us #gestion des µs
5
6
distance = 0 # mise à zero de la variable distance
7
8
while True:
9
if button_a.was_pressed():
10
"""creation de la salve de 10 µs avec 2µs à 0 au depart sur le pin2"""
11
pin2.write_digital(0)
12
sleep(0.002) # mise en attente sur 2 µs
13
pin2.write_digital(1)
14
sleep(0.010) # pour le sleep duree affichéee en ms
15
pin2.write_digital(0)
16
17
"""mesure de t, calcul de la distance, et affichage"""
18
pin2.read_digital() # configuration de pin2 en INPUT
19
duree_aller_retour = time_pulse_us(pin2, 1) # attend que pin2 passe à 1 puis renvoie la durée de parcours de la salve en µs
20
distance = duree_aller_retour / 58 # D (cm)=duree x 340 / 2 / 100
21
distance = round(distance)
22
print("la distance est de ",distance, " cm") # retour REPL dans la console de l'éditeur
23
display.scroll(str(distance)) # affichage de la distance
24