Cours:InfoS1EvalTP1
Il s’agit d’une page protégée.
Programmation d'un radar de recul
L'objectif est de programmer un radar de recul en utilisant un télémètre ultrason (HC-SR04) et d'afficher sur la série de leds l'information de proximité d'un obstacle.
Sommaire
[masquer]marche arrière
pour détecter le passage de la marche arrière sur un véhicule, un bouton poussoir est installé sur le levier de vitesse. Cela permet également d'allumer le voyant signalant la marche arrière.
Nous utiliserons ici le bouton du haut qui est relié sur la broche 3 arduino, ainsi que la led L1 (broche 5) pour indiquer si on est en marche arrière.
(3 points) Réaliser le programme qui allume la led poour indiquer la marche arrière lorsqu'on appuie sur le bouton.
vérification de la liaison série
Vous allez montrer que vous savez utiliser la liaison série.
(3 points) écrire un programme qui :
- affiche au démarrage du programme : "start arduino"
- répète en permanence :
- affiche "boucle n°:"
- incrémente une variable à chaque boucle et affiche sa valeur
- attendre 500ms
exemple d'affichage au bout de 1,5s :
start arduino boucle n°:1 boucle n°:2 boucle n°:3
télémètre
Le module HC-SR04 est connecté de la façon suivante :
Fonction | Broche arduino |
---|---|
Echo | 6 |
Trig | 7 |
On utilisera la librairie hcsr04 créée par Martin Sosic.
Vous trouverez un exemple d'utilisation sur la page suivante : https://github.com/Martinsos/arduino-lib-hc-sr04
(3 points) Modifier votre programme pour faire une mesure de distance toutes les 250ms si on est en marche arrière
leds couleur
Vous allez utiliser les leds couleurs que vous avez utilisé pour le TP chenillard
On affichera une information de distance de la façon suivante sur les leds :
- si la distance est grande ( d > 1m ), on allume les 8 leds en vert
- si la distance est moyenne ( 0.6m < d < 1m ) on allumera des leds de la façon suivante :
- entre 0.95 et 1 : 7 en vert, 1 en orange
- entre 0.9 et 0.95 : 6 en vert, 2 en orange
- entre 0.85 et 0.9 : 5 en vert, 3 en orange
- entre 0.8 et 0.85 : 4 en vert, 4 en orange
- entre 0.75 et 0.8 : 3 en vert, 5 en orange
- entre 0.7 et 0.75 : 2 en vert, 6 en orange
- entre 0.65 et 0.7 : 1 en vert, 7 en orange
- entre 0.6 et 0.65 : 0 en vert, 8 en orange
- si la distance est courte ( d < 0.6m ) on allumera des leds de la façon suivante :
- entre 0.55 et 0.6 : 7 en orange, 1 en rouge
- entre 0.5 et 0.55 : 6 en orange, 2 en rouge
- entre 0.45 et 0.5 : 5 en orange, 3 en rouge
- entre 0.4 et 0.45 : 4 en orange, 4 en rouge
- entre 0.35 et 0.4 : 3 en orange, 5 en rouge
- entre 0.3 et 0.35 : 2 en orange, 6 en rouge
- entre 0.25 et 0.3 : 1 en orange, 7 en rouge
- moins de 0.25 : 0 en orange, 8 en rouge
(3 points) Ecrire un programme réalisant ce fonctionnement
Contrôle de la luminosité des leds
On utilisera dans cette partie l'axe vertical du joystick ou le potentiomètre P1 sur votre carte. Il correspond à la broche arduino A6.
(3 points) Modifier votre programme pour que le joystick ou le potentiomètre P1 permette de changer la luminosité des leds couleurs.
Amélioration de la précision de mesure : mesure de température
La vitesse de propagation du son dans l'air dépend de la température. L'équation suivante modélise cette relation :
c = 20,05 * sqrt(T) avec T en K, et c la vitesse du son.
(3 points) Modifier votre programme pour tenir compte de la température dans la mesure de distance :
- reprenez le TP sur la mesure de température pour mesurer la température en °C
- utiliser la fonction measureDistanceCm(temperature_en_degre_c) à la place de la fonction measureDistanceCm() pour tenir compte de la température dans la mesure de distance.
Système alive
Pour vérifier que le système est bien en fonctionnement, on souhaite que la led L2 (broche arduino 13) clignote.
Vous choisirez la vitesse de clignotement.
(3 points) Modifier votre programme pour faire clignoter cette led en permanence.
Remarque : Vous devez impérativement utiliser la librairie TimerOne utilisée notamment pour le TP horloge