TP3 SEN Arduino rev.. - BAC PRO SEN

Download Report

Transcript TP3 SEN Arduino rev.. - BAC PRO SEN

Acquisition &Traitement
d’informations
TP3 SEN Rev00
ARDUINO UNO
EN RADAR DE RECUL
EMBARQUÉ
SRF05
Durée : 4heures
Binôme :
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
Bilan :
/40
1
Acquisition &Traitement
d’informations
TP3 SEN Rev00
1: MISE EN SITUATION
Dans de nombreux véhicules, on trouve des radars de recul situés dans les pare-chocs. Ils permettent d’alerter le
conducteur lors d’une manœuvre et éviter ainsi de toucher un obstacle ou une autre voiture.
Dans cette activité, il est question de mettre en œuvre un dispositif équivalent à l‘aide d’un module programmable
UNO et des capteurs utilisant une technologie à ultrasons.
Remarque : ces capteurs trouvent également leur place en robotique comme le drône Parrot.
2: PRINCIPE
Acquisition
Distance
Trigger Input
ARDUINO
UNO
Usonore
Haut-parleur
Alarme sonore
Echo Output
Affichage
Distance en cm
Raccordement du module « Capteur » et « Haut-parleur » :
Broche 8 UNO
GND
+5V
Broche 10 UNO
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
GND
Broche 9 UNO
2
Acquisition &Traitement
d’informations
TP3 SEN Rev00
3 : Câblage et tests
Question 1:
Raccorder l’Arduino UNO, la carte « capteur » et « haut-parleur » selon les indications précédentes.
Ouvrir l’environnement de développement Arduino et ouvrir le fichier programme
« MesuresDistanceUltrasons.ino ».
Attention : ce sketch a été réalisé avec une librairie particulière que vous trouverez sur le serveur ftp.
Il s’agit du fichier « HCSR04Ultrasonic.zip » ; suivez la procédure décrite ici pour l’installer :
http://arduino.cc/en/Guide/Libraries
/5
Téléverser le programme dans le UNO. Commenter les résultats obtenus en étant précis.
Question 2:
Vous allez visualiser à l’oscilloscope le signal Usonore envoyé au haut-parleur. Faire 2 relevés : l’un pour une
distance de 10cm, l’autre pour une distance de 25cm.
Pour 10cm
/4
Pour 25cm
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
3
Acquisition &Traitement
d’informations
TP3 SEN Rev00
Question 3 :
Noter la caractéristique du signal qui a changé selon la distance. Mesurer cette caractéristique pour les 2
distances.
/2
Question 4 :
Faire le relevé des 2 signaux « Echo Output » et « Trigger Input » (en utilisant les 2 canaux de l’oscilloscope)
pour les 2 distances précédentes (10 et 25cm).
Aidez-vous si besoin de la documentation « srf05.pdf » pour le brochage.
Pour 10cm
Voie 1 : Trigger Input
Voie 2 : Echo Output
/4
Pour 25cm
Question 5 :
Mesurer la durée de l’impulsion sur « Trigger Input », en modifiant la valeur de la base de temps de
l‘oscilloscope (sec/div).
/2
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
4
Acquisition &Traitement
d’informations
TP3 SEN Rev00
Question 6 :
Mesurer la durée de l’impulsion sur « Echo Output » pour chaque distance du tableau ; vous pourrez utiliser la
mesure automatique de l’oscilloscope (bouton MEASURE, puis TYPE =largeur pos)
Distance (cm)
Durée impulsion (µs)
5
10
15
20
25
30
/3
On constate donc que plus la distance de l’obstacle est importante, plus la ...........................................................
Question 7 :
En réglant à nouveau la base de temps de l’oscilloscope, déterminer la durée entre chaque impulsion
(réglage autour de 25ms/div par exemple).
/2
4 : Intervention logicielle:
L’objectif est de créer un nouveau sketch sans l’utilisation du fichier importé dans la librairie.
Pour cela, on s’appuiera sur les résultats obtenus précédemment pour compléter ce qui suit :
Question 1 :
- La broche 9 devra être programmée en ...................................
- La broche 10 devra être programmée en ...................................
/4
On nommera la broche 9 : trigger
et la broche 10 : echo
Ecrire les lignes (4) qui permettent de nommer les variables et de paramétrer les broches convenablement.
Question 2 :
Sur la broche «trigger », il faut générer une impulsion de 15µs ; cela revient à mettre la broche
correspondante de l’Arduino à l’état haut pendant 15µs (temporisation), puis de la mettre à l’état bas.
Ecrire ci-dessous les 3 lignes qui permettent de faire ceci.
/3
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
5
Acquisition &Traitement
d’informations
TP3 SEN Rev00
Question 3 :
Sur la broche « echo », on récupère un signal dont il faut calculer la durée à l’état haut qui est fonction de la
distance comme vu précédemment. Pour cela, on utilise une fonction : pulseIn().
L’exploitation de cette fonction est décrite ici : http://arduino.cc/en/Reference/pulseIn
Ecrire les 2 lignes qui permettront de stocker dans une variable « duree », la valeur de la durée à l’état haut du
signal « echo ».
Question 4 :
Pour calculer la distance en fonction de la durée, une opération et un coefficient sont à appliquer (voir doc
srf05.pdf). Ecrire les 2 lignes nécessaires pour convertir la durée en une variable « distance » avec le bon
calcul.
/2
/2
Question 5 :
Ecrire votre nouveau sketch Arduino, compiler, téléverser puis tester.
#include <LiquidCrystal.h>
// librairie pour l‘afficheur lcd
……………………………………
…………………………………….
.................................................
.................................................
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
// declaration variable echo avec n° broche
// declaration variable trigger avec n° broche
// declaration variable duree
// declaration variable distance
// déclaration des broches utilisées pour l’afficheur
//initialisation
void setup()
{
……………………………………….
………………………………………..
lcd.begin(16,2);
}
void afficher(String msg){
lcd.clear();
lcd.setCursor(4,0);
lcd.print("DISTANCE:");
lcd.setCursor(5,1);
lcd.print(msg);
lcd.setCursor(9,1);
lcd.print("cm");
}
// broches en entrée ou en sortie
/5
//procédure appelée pour afficher la distance sur l’afficheur lcd
//boucle
void loop()
{
……………………………………….. // Impulsion à créer de 15µs à l’état haut
………………………………………..
………………………………………
………………………………………..
// calcul de la distance en cm à partir de la durée
…………………………………………
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
6
Acquisition &Traitement
d’informations
afficher(String(distance));
if (distance >=50){
noTone(8);
}
else{
tone(8,10000/distance);
}
delay(100);
}
TP3 SEN Rev00
// affichage de la distance sur l’afficheur lcd.
// envoi d’un son de fréquence variable en fonction de la distance
// à condition que la distance ne dépasse pas 50cm
temporisation 100ms entre chaque impulsion de 15µs
Question 6 :
Faites des mesures et vérifier la précision en comparant avec une règle.
/1
Question 7 :
On souhaite apporter une modification au programme de manière à produire un son grave si la distance
devient faible et inversement, son aigu si la distance est importante.
/1
Pour ceux en avance.......
Une solution avec un bargraph à led pourrait apporter un intérêt supplémentaire.
A vous pour l’aspect logiciel.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
7