Mise à jour le 15/11/2020: Ce télémètre compatible Grove permet de mesurer la distance de 3cm à 4m avec une resolution de 1cm , sans contact à l’aide de transducteurs à ultrasons.
Sommaire :
- Présentation du télémètre à ultrasons
- Exemple de schéma de câblage de plusieurs capteurs sur une carte Arduino
- Programme de mesure de distance avec affichage sur l’écran de l’IDE arduino
- Application du télémètre mesure d’une distance et signalisation de limite
- Tutoriel vidéo sur le télémètre
- Programme pour l’application du tuto
- Présentation sous forme de photo des supports pour le capteur
- Fichier STL des supports pour le télémètre
- Retour au menu principal
Présentation |
Ce télémètre compatible Grove permet de mesurer la distance sans contact à l’aide de transducteurs à ultrasons fonctionnant à 40 KHz. Ce module se raccorde sur une entrée analogique du Grove Base Shield ou du Mega Shield via un câble 4 conducteurs .
Principe de fonctionnement du télémètre
Lorsque nous fournissons un signal de déclenchement d’impulsion avec plus de 10 µS via une broche simple, le Grove_Ultrasonic_Ranger émet 8 cycles de niveau de cycle de 40 kHz et détecte l’écho. La largeur d’impulsion du signal d’écho est proportionnelle à la distance mesurée. Voici la formule: Distance = temps haut du signal d’écho * Vitesse du son (340M / S) / 2. Grove_Ultrasonic_Ranger’s trig et echo singal partagent 1 broche SIG.
Description du télémètre à ultrasons Grove :
- Interface: compatible Grove
- Alimentation: 3,3 à 5 Vcc
- Consommation: 15 mA
- Fréquence: 42 kHz
- Portée de détection: 3 cm à 4 m
- Résolution: 1 cm
- Dimensions: 43 x 25 x 15 mm
- Référence Seeedstudio: 101020010 (remplace SEN10737P)
Information complementaire :
Par rapport aux modules à ultrasons traditionnels HC-SR04 , le capteur de distance à ultrasons Grove intègre un micro-ordinateur monopuce, et le signal de transmission et le signal de réception partagent une broche par multiplexage par répartition dans le temps, de sorte qu’une seule broche d’E / S est occupée. Une autre différence est que HC-SR04 ne prend en charge que la tension 5v, tandis que le capteur de distance à ultrasons Grove prend en charge le 5v et le 3,3v. Comme nous le savons, les E / S Raspberry pi ne prennent en charge que la tension de 3.3v. Par conséquent, Grove – Le capteur de distance à ultrasons peut être directement connecté aux E / S du Raspberry Pi, mais HC-SR04 doit utiliser un circuit de conversion de tension.
Exemple de schéma de câblage de plusieurs capteurs sur une carte Arduino
Programme de mesure de distance avec affichage sur l’écran de l’IDE arduino |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
/* * *BUT: Utilisation d'un capteur ultrasons Grove *pour mesurer une distance avec affichage sur *le moniteur Arduino * * le 06/03/2017 * Herve Mazelin * Olivier Guillaume * * Nom du programme : Mesure_ultrason_001 */ // je charge la librairie Ultrasonic // Cette bibliothèque permet à une carte Arduino de gerer // le capteur ultrason // A savoir : // Télécharger la Bibliothèque UltrasonicRanger de Github. // à installer dans la bibliothèque d'origine des fichiers // de l'IDE Arduino voir le lien sur le site redohm // Attention sur l'exemple fourni par Github il y a // une possibilité d 'erreur #include "Ultrasonic.h" // Declaration du nom du capteur et de la broche de raccordement // sur la carte Arduino Ultrasonic ultrasonic(4); // Un programme Arduino doit impérativement contenir la fonction "setup" // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties void setup() { //ouvre le port série et fixe le debit de communication à 9600 bauds Serial.begin(9600); } /* *Le programme principal s’exécute par une boucle infinie appelée Loop () * */ void loop() { // variable du type long // Declare la variable mesure_de_la_valeur_en_centimeters // Rappel sur la fonction d'une variable :On peut définir une variable comme // une boite ou l’on stock des balles .Une variable est une boite ou // l’on stock un nombre ,et comme il existe une multitude de nombres: // Exemple entiers ,décimaux etc …Il faut donc assigner un type à cette // variable . long mesure_de_la_valeur_en_centimeters; // Affichage d'un texte pour l'operateur sur l'ecran Serial.print("mesure du capteur -> "); // Lecture de la valeur de notre capteur mesure_de_la_valeur_en_centimeters = ultrasonic.MeasureInCentimeters(); // Affichage de la mesure Serial.print(mesure_de_la_valeur_en_centimeters ); Serial.println(" cm"); // Temporisation de lecture delay(250); // Creation d'un espace vide pour la lisibilité des lectures Serial.println(" "); } |
.
Retour au sommaire
Application du télémètre
|
Tutoriel vidéo sur le télémètre :
–
Programme pour l’application du tuto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
// // // //**************************************************************************** //* Tutoriel sur le telemetre * //* * //* Mesure d'une distance * //* et signalisation de limite * //* si la valeur est inferieure à 15 cm signalisation rouge * //* si la valeur est superieure à 16 cm et inferieure à 30 cm couleur orange * //* superieure à 30 cm couleur bleue * //* * //* * //* RedOhm * //* Mazelin-h le 05/11/2017 * //**************************************************************************** // je charge la librairie Ultrasonic // Cette bibliothèque permet à une carte Arduino de gerer // le capteur ultrason // A savoir : // Télécharger la Bibliothèque UltrasonicRanger de Github. // à installer dans la bibliothèque d'origine des fichiers // de l'IDE Arduino voir le lien sur le site redohm // Attention sur l'exemple fourni par Github il y a // une possibilité d 'erreur #include "Ultrasonic.h" //Cette bibliothèque vous permet de communiquer avec les led RGB de chez Grove #include <ChainableLED.h> // Declaration du nom du capteur et de la broche de raccordement // sur la carte Arduino Ultrasonic ultrasonic(6); // Definit le nombre de LED utilisées #define NUM_LEDS 1 // Definition des broches derriere la commande // ChainableLED leds ( e ,f , g ) // choisir de preference 2 pin qui se suivent // e = pin 6 // f = pin 7 // g = le nombre de led ChainableLED leds(8, 9, NUM_LEDS); // Un programme Arduino doit impérativement contenir la fonction "setup" // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties void setup() { // ouvre le port série et fixe le debit de communication à 9600 bauds Serial.begin(9600); } // ---------------------------------------------------------------------- // Le programme principal s’exécute par une boucle infinie appelée Loop () // ---------------------------------------------------------------------- void loop() { // declaration de la variable valeur_en_cm en type long long valeur_en_cm ; // transfert de la valeur contenue dans la fonction ultrasonic // dans la variable valeur_en_cm valeur_en_cm = ultrasonic.MeasureInCentimeters(); // Affichage a l'ecran de la valeur de la valeur_en_cm Serial.print(valeur_en_cm ); // Affichage de l'unite de longueur a l'ecran Serial.println(" cm"); // Arrete le programme durant le nombre de millisecondes entre parenthese soit // dans notre cas 150 millisecondes // temps de transfert delay(150); // L’instruction if permet d'exécuter une suite d’instructions en fonction // des conditions décrites dans les parenthèses if ( valeur_en_cm <= 15 ) { // bloc d'instruction exécuté si valeur_en_cm est strictement inferieure // à 15 cm // // Envoie des informations suivantes apres la commande // leds.setColorRGB ( a , b , c ,d ) // a = le numero de la led on commence toujours à l'adresse 0 // b = la valeur de la couleur rouge " 190 " // c = la valeur de la couleur verte " 22 " // d = la valeur de la couleur bleu " 3 " leds.setColorRGB(0, 190, 22,3); } // L’instruction else if permet d'exécuter une suite d’instructions en fonction // des conditions décrites dans les parenthèses else if (( valeur_en_cm >= 16 )&& ( valeur_en_cm <= 30)) { // bloc d'instruction exécuté si variable valeur_en_cm est strictement superieure // à 16 cm et inferieure 30 cm // // Envoie des informations suivantes apres la commande // leds.setColorRGB ( a , b , c ,d ) // a = le numero de la led on commence toujours à l'adresse 0 // b = la valeur de la couleur rouge " 255 " // c = la valeur de la couleur verte " 128 " // d = la valeur de la couleur bleu " 0 " leds.setColorRGB(0, 255, 128,0); } // Instruction realisée par defaut else { // Envoie des informations suivantes apres la commande // leds.setColorRGB ( a , b , c ,d ) // a = le numero de la led on commence toujours à l'adresse 0 // b = la valeur de la couleur rouge " 29 " // c = la valeur de la couleur verte " 211 " // d = la valeur de la couleur bleu " 226 " leds.setColorRGB(0, 29,211,226); } } |
–
Présentation sous forme de photo et de diaporama les différents supports pour le capteur ultrason
–
Fichier STL des supports pour le télémètre
Impression 3D des supports du Télémètre
–
Retour au menu système Grove |