Vous êtes sur la page 1sur 10

Formation Académique Bordeaux 2018

INSTRUMENTER UN SYSTÈME MULTIPHYSIQUE


Mise en œuvre télémètre Ultrason
Animation 3 D

On désire mesurer une distance par un télémètre ultra son monté sur une carte
arduino, puis réaliser un traitement de ces mesures sur un PC.

Pour faire ces mesures, la carte Arduino doit embarquer de « l’intelligence », pour
réaliser un traitement informatique avant de renvoyer les données. On parle alors
d’un objet connecté.

Réception et traitement
de haut niveau des Mesure, traitement
données. simplifié et émission
des données.

Données émise par liaison série.

https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-
ultrason-hc-sr04-et-une-carte-arduino-genuino/

Mise en œuvre télémètre Ultrason Animation 3 D Page 1 sur 10


I. Programme Arduino
1. Principe du capteur

Le principe de fonctionnement du capteur est entièrement basé sur la vitesse du son.

Voilà comment se déroule une prise de mesure :

1. On envoie une impulsion HIGH de 10µs sur la broche TRIGGER du capteur.


2. Le capteur envoie alors une série de 8 impulsions ultrasoniques à 40KHz
(inaudible pour l'être humain, c'est quand plus agréable qu'un biiiiiiiip).
3. Les ultrasons se propagent dans l'air jusqu'à toucher un obstacle et retourne
dans l'autre sens vers le capteur.
4. Le capteur détecte l'écho et clôture la prise de mesure.

Le signal sur la broche ECHO du capteur reste à HIGH durant les étapes 3 et 4, ce
qui permet de mesurer la durée de l'aller-retour des ultrasons et donc de déterminer
la distance.

N.B. Il y a toujours un silence de durée fixe après l'émission des ultrasons pour éviter
de recevoir prématurément un écho en provenance directement du capteur.

2. Le montage

3. Le programme

Mise en œuvre télémètre Ultrason Animation 3 D Page 2 sur 10


Le programme est donné ci-dessous.

/* Utilisation du capteur Ultrason HC-SR04 */


// définition des broches utilisées
int trig = 2; // Broche 2 pour le déclanchement de la salve et son émission
int echo = 3; // Broche 3 pour le détection de retour de la salve
long lecture_echo;
long cm;

void setup()
{
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
// Vitesse de transmission de la liaison série. Elle peut être modifiée
Serial.begin(9600);
}

void loop()
{
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
cm = lecture_echo / 58;
// println permet de transmettre les caractères \r\n à chaque mot.
// c’est un séparateur de mot.
Serial.println(cm);
// Mesure faite toute les 1000 ms.
delay(1000);
}

Mise en œuvre télémètre Ultrason Animation 3 D Page 3 sur 10


II. Programme Labview

1. La communication série Arduino/ Labview


En vous aidant de l’annexe Liaison série sous Labview, réaliser un VI qui affiche la
distance mesurée et transmise par le l’objet connecté.

On utilisera une boucle while pour faire les mesures en


continu. C’est la programmation arduino qui donnera le
tempo (rappel dans le programme l’émission de
donnée se fait toute les secondes).

La configuration de la liaison série ne doit se faire


qu’une seule fois, avant le lancement de la boucle.
La lecture des données se faisant à chaque itération.

2. Pour aller plus loin


Dans cette partie on se propose de réaliser un système ludique, qui à partir de la
mesure d’une distance, permet de modifier la distance terre soleil dans une
animation 3D. Pour la mesure de la distance reprendre le principe de mesure réalisé
précédemment.

On partira du VI ci-dessous :

Modifier le VI en respectant le cahier des charges suivant :


 La taille de la terre et du soleil reste celle fixée par VI,
 La gamme de mesure de distance comprise entre 10 cm et 100cm, cette
mesure correspondra à une distance de 1 à 10 dans l’échelle de la scène.
 Dans un cas hors gamme la distance dans la scène sera contrainte.
 Le système doit être le plus rapide possible, en considérant la distance
maximale à mesurer.

Mise en œuvre télémètre Ultrason Animation 3 D Page 4 sur 10


Le diagramme du VI est le suivant :

Ce diagramme est constitué de deux parties :

 Une première partie où sont créés les objets (l’axe, le soleil, la terre)
 Une seconde partie où les objets sont transformés (déplacés), puis la scène
est affichée. Tous les objets de la scène, à chaque itération, sont affichés
dans « l’état » de translation et de rotation où ils se trouvent.

Création d’un objet: on prendra par exemple le soleil.

Le soleil est constitué d’une sphère de rayon 0,5 cet objet est nommé Soleil, on a
mappé sur sa surface une photo récupérée dans un fichier JPEG.
Puis cet objet est ajouté à la scène.

Mise en œuvre télémètre Ultrason Animation 3 D Page 5 sur 10


Transformation des objets

La transformation ne concerna pas la scène complète (le fils sort par le connecteur
du bas) , mais juste l’objet terre. Avant toute action il est au centre de la scène. La
translation permet de le déplacer de 1 sur l’axe de x.

Les deux rotations qu’il subit sont sur l’axe de z, une relative, ce qui permet associé à
la translation d’assurer la rotation autour de la terre.

La seconde rotation (absolue) permet une rotation sur lui-même de l’objet.

Mise en œuvre télémètre Ultrason Animation 3 D Page 6 sur 10


ANNEXE : Liaison série sous Labview.

Chemin pour accéder aux fonctions pour la liaison :

« Programming -> Instrument U/O ->Serial »

Exemple de diagramme d’une liaison série:

Mise en œuvre télémètre Ultrason Animation 3 D Page 7 sur 10


3 0

5
1

0 : Permet l’ouverture et la configuration d’une session de communication avec le


port série. On a possibilité de configurer beaucoup de paramètres, Dans le cas où ils
ne sont pas configurés, ils prennent des valeurs standards (communes à tous les
systèmes car la liaison RS 232 est normalisées).

1 : le numéro du port série est le même que celui qui figure dans l’éditeur pour
Arduino,

2 : Il faut configurer les bauds comme Arduino est configuré.

3 : A la fin de chaque message le programme Arduino envoie les caractères \r et \n.


A condition d’avoir utilisé la fonction Serial.println(). C’est indispensable pour pouvoir
séparer les données renvoyées. Cela marque la fin d’un message.

4 : La fonction Flush permet de vider la mémoire tampon de réception. Cela peut


entraîner une perte de données, mais cela assure, que celle reçues, sont correctes.

5 : Cette fonction permet de lire les données que reçoit le port série, Dans cet
exemple, la fonction lit des caractères jusqu’à que l’une de ces 3 conditions soit
remplie : 50 caractères lus, 10 secondes sans rien recevoir, caractère ‘\n’ reçut
(configuré en 3). Le premier de ces évènements met fin à la fonction de lecture.

Remarque : Le plus fréquemment la liaison série transmet des données en ASCII,


c’est-à-dire, ceux sont des chaines de caractères alphanumérique, On ne peut pas
faire de calcul sur du texte !!!

6 : Après avoir ouvert une session de communication, il faut la clôturer. A l’image


d’une communication téléphonique… Il ne faut pas oublier de raccrocher !!

Mise en œuvre télémètre Ultrason Animation 3 D Page 8 sur 10


ANNEXE 4 : Conversion d’une chaîne de caractères en nombre.

 Cas d’un seul nombre dans la chaîne.

La fonction Visa Read, permet de lire une


chaîne de caractères reçues sur le port
série.

Il faut donc convertir cette chaîne en


nombre pour pouvoir faire des opérations
arithmétiques avec.

C’est ce que montre l’exemple ci –contre

Le chemin pour la fonction est :


“Programming -> String -> Number/String Conversion”

Attention au cas d’un nombre décimal, il faut préciser si le séparateur est le


point ou la virgule.

Mise en œuvre télémètre Ultrason Animation 3 D Page 9 sur 10


 Cas de plusieurs nombres dans la chaîne (Chaîne au format tableur).

Le chemin pour la fonction SpreadsheetString To Array est : « Programming ->


String »

Le chemin pour la fonction Index Array est : « Programming -> Array»

Mise en œuvre télémètre Ultrason Animation 3 D Page 10 sur 10