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