Exploiter le télémètre pour simuler le fonctionnement d'un radar de recul
Objectif
On utilise la mesure de la distance qui sépare le dispositif d'un obstacle pour moduler l'émission d'un signal sonore : plus l'obstacle est proche, plus les bips sont émis de façon rapprochée.
Il est possible de proposer une variante avec avertissement lumineux : une DEL clignotant de plus en plus rapidement, une échelle de DEL vert, jaune et rouge s'allumant progressivement, etc...
Méthode : Montage et programme proposé
Le montage regroupe le capteur de distance et un buzzer du même type que celui utilisé dans la section Produire un son avec une carte mico:bit. Pour des raisons pratiques, on exploitera ici la fonction music.pitch
qui permet de générer simplement un son de fréquence et durée choisie.
Dans le programme ci-dessous, on a défini une fonction bip
prenant deux paramètres: la fréquence du son joué et la durée entre chaque bip (qui est la même que la durée du son).
"""radar de recul"""
from microbit import *
from machine import time_pulse_us #gestion des µs
import music
distance = 0 # mise à zero de la variable distance
def bip(freq,duree):
music.pitch(freq,duree)
sleep (duree)
while True:
"""creation de la salve de 10 µs avec 2µs à 0 au depart sur le pin2"""
pin2.write_digital(0)
sleep(0.002) # mise en attente sur 2 µs
pin2.write_digital(1)
sleep(0.010) # pour le sleep duree affichée en ms
pin2.write_digital(0)
"""mesure de t, calcul de la distance, et affichage"""
pin2.read_digital() # configuration de pin2 en INPUT
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
distance = duree_aller_retour / 58 # D (cm)=duree x 340 / 2 / 100
distance = int(distance)
if distance <= 10 :
music.pitch(440)
elif distance <= 15:
bip(440,50)
elif distance <= 20:
bip(440,100)
elif distance <=30:
bip (440,200)
elif distance <= 40:
bip(440,400)
else :
bip(0,0)