materiels:capteurs:distance:distus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
materiels:capteurs:distance:distus [2022/07/07 09:36] – [Capteurs - Distance - Ultrasons] philmateriels:capteurs:distance:distus [2024/05/03 12:39] (Version actuelle) – [2.1 HC-SR04 (GPIO)] phil
Ligne 1: Ligne 1:
-{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[materiels:accueilmateriels|{{ :iconemaison.jpg?nolink&30|Sommaire Matériels}}]]+[[materiels:accueilmateriels|{{ :iconemaison.jpg?nolink&30|Sommaire Matériels}}]]
  
 ===== Capteurs - Distance - Ultrasons ===== ===== Capteurs - Distance - Ultrasons =====
  
-[Mise à jour le 18/6/2021]+[Mise à jour le 3/5/2024]
  
   * **Lectures connexes**   * **Lectures connexes**
     * <html><a href="http://guide.directindustry.com/fr/bien-choisir-un-capteur-de-proximite/" target="_blank">Bien choisir un capteur de proximité</a></html>     * <html><a href="http://guide.directindustry.com/fr/bien-choisir-un-capteur-de-proximite/" target="_blank">Bien choisir un capteur de proximité</a></html>
-    * <html><a href="https://www.eeca.eu/meilleur-capteur-ultrason/" target="_blank">Comment choisir le meilleur capteur ultrason</a></html>+    * <html><a href="https://www.eeca.eu/meilleur-capteur-ultrason/" target="_blank">Comment choisir le meilleur capteur à ultrason</a></html>
     * Vidéo - <html><a href="https://www.youtube.com/watch?time_continue=143&v=Ht4lavMyy3E&feature=emb_logo" target="_blank">Exemples d'applications</a></html>     * Vidéo - <html><a href="https://www.youtube.com/watch?time_continue=143&v=Ht4lavMyy3E&feature=emb_logo" target="_blank">Exemples d'applications</a></html>
  
Ligne 18: Ligne 18:
 Les ultrasons sont utilisés dans l'industrie ainsi que dans le domaine médical. <html><a href="https://fr.wikipedia.org/wiki/Ultrason" target="_blank">Wikipédia</a></html> Les ultrasons sont utilisés dans l'industrie ainsi que dans le domaine médical. <html><a href="https://fr.wikipedia.org/wiki/Ultrason" target="_blank">Wikipédia</a></html>
  
 +{{ :materiels:capteurs:wikiversite.jpg?nolink&50|}}
 +  * // **Ressources** // 
 +    * <html><a href="https://fr.wikiversity.org/wiki/Rudiments_d%27acoustique/Quelques_d%C3%A9finitions" target="_blank">Rudiments d'acoustique : Quelques définitions</a></html>
 +
 +<callout type="tip" title="Principe de fonctionnement des capteurs HC-SR0x" icon="true">Voir l'article sur le "Carnet du maker" <html><a href="https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/" target="_blank"><b>ici</b></a></html> </callout>
 ==== 2. Capteurs numériques ==== ==== 2. Capteurs numériques ====
  
-=== 2.1 HC-SR04 ===+=== 2.1 HC-SR04 (GPIO) ===
 {{ :materiels:capteurs:hc-sr04.png?nolink&150|HC-SR04}} {{ :materiels:capteurs:hc-sr04.png?nolink&150|HC-SR04}}
-  * //**Source**// : <html><a href="https://www.carnetdumaker.net/articles/mesurer-une-distance-avec-un-capteur-ultrason-hc-sr04-et-une-carte-arduino-genuino/" target="_blank">wiki</a></html> 
  
-> Ce module permet d’évaluer les distances entre un objet mobile et les obstacles rencontrés. Il suffit d'envoyer une impulsion de 10 µs en entrée et le capteur renvoie une largeur d'impulsion proportionnelle à la distance.+== 2.1.1 Présentation == 
 +  * //**Source**// : <html><a href="https://www.gotronic.fr/pj2-hc-sr04-utilisation-avec-picaxe-1343.pdf" target="_blank">pdf</a></html> 
 + 
 +<callout type="info" icon="true">Ce module permet d’évaluer les distances entre un objet mobile et les obstacles rencontrés. Il suffit d'envoyer une impulsion de 10 µs en entrée et le capteur renvoie une largeur d'impulsion proportionnelle à la distance.</callout>
  
   * //**Distributeur**// : <html><a href="https://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm" target="_blank">Gotronic</a></html>   * //**Distributeur**// : <html><a href="https://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm" target="_blank">Gotronic</a></html>
Ligne 102: Ligne 109:
 } }
 </code> </code>
 +
  
 {{ :arduino:uc:platformioico.png?nolink&50|}} {{ :arduino:uc:platformioico.png?nolink&50|}}
-<note tip><html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_MEGA2560_HCSR04_.zip" target="_blank">Télécharger</a></html> le projet PlatformIO pour VSCode.</note> 
  
-{{ :materiels:csharp.png?nolink|}} +<callout type="tipicon="true"><html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_MEGA2560_HCSR04_.zip" target="_blank">Télécharger</a></htmlle projet PlatformIO pour VSCode.</callout
-  * <html><strong>Programmation d'une carte <a href="https://www.ghielectronics.com/sitcore/sbc/target="_blank">FEZ Duino</asous <a href="https://docs.ghielectronics.com/software/tinyclr/intro.html" target="_blank">TinyCLR OS</a> avec l'IDE Visual Studio Community</strong></html>  +
-A venir+
  
 ---- ----
    
-=== 2.2 Module VMA306 à capteur HC-SR05 ===+ 
 +=== 2.2 HC-SR05 (GPIO) ===
 {{ :materiels:capteurs:hc-scr05.png?nolink&150|VMA306}} {{ :materiels:capteurs:hc-scr05.png?nolink&150|VMA306}}
  
 +== 2.2.1 Présentation ==
   * //**Source**// : <html><a href="https://www.velleman.eu/downloads/29/vma306_a4v01.pdf" target="_blank">pdf</a></html>   * //**Source**// : <html><a href="https://www.velleman.eu/downloads/29/vma306_a4v01.pdf" target="_blank">pdf</a></html>
  
-> Ce module est basé sur un capteur à ultrasons HC-SR05 et permet d’évaluer les distances entre un objet mobile et les obstacles rencontrés.+<callout type="info" icon="true">Ce module est basé sur un capteur à ultrasons HC-SR05 et permet d’évaluer les distances entre un objet mobile et les obstacles rencontrés.</callout>
  
   * //**Distributeur**// : <html><a href="https://www.gotronic.fr/art-capteur-a-ultrasons-vma306-26096.htm" target="_blank">Gotronic</a></html>   * //**Distributeur**// : <html><a href="https://www.gotronic.fr/art-capteur-a-ultrasons-vma306-26096.htm" target="_blank">Gotronic</a></html>
Ligne 139: Ligne 147:
     * //Connexion à un shield// <html><a href="https://webge.fr/doc/wikis/pdf/TinkerkitV2.pdf" target="_blank">Tinkerkit v2</a></html>. {{ :materiels:capteurs:hcsr05.jpg?nolink&600 |}}     * //Connexion à un shield// <html><a href="https://webge.fr/doc/wikis/pdf/TinkerkitV2.pdf" target="_blank">Tinkerkit v2</a></html>. {{ :materiels:capteurs:hcsr05.jpg?nolink&600 |}}
     * // Un premier exemple // {{ :materiels:capteurs:distance:arduinoico.png?nolink&30|}}     * // Un premier exemple // {{ :materiels:capteurs:distance:arduinoico.png?nolink&30|}}
-<file cpp HCSR05.cpp>+<code cpp HCSR05.cpp>
 /////////////////////////////////////////////// ///////////////////////////////////////////////
-// Programme test pour capteur HC-SR05 // +// Programme test pour capteur HC-SR05       // 
-// Go Tronic 2017 //+// Go Tronic 2017                            //
 /////////////////////////////////////////////// ///////////////////////////////////////////////
 #define trigPin 10 // Tinkerkit O1 #define trigPin 10 // Tinkerkit O1
Ligne 181: Ligne 189:
     delay(500); // délai entre deux mesures     delay(500); // délai entre deux mesures
 } }
-</file>+</code>
  
  
 {{ :arduino:uc:platformioico.png?nolink&50|}} {{ :arduino:uc:platformioico.png?nolink&50|}}
-<note tip><html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_UNO_HCSR05.zip" target="_blank">Télécharger</a></html> le projet PlatformIO pour VSCode.</note>+<callout type="tip" icon="true"><html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_UNO_HCSR05.zip" target="_blank">Télécharger</a></html> le projet PlatformIO pour VSCode.</callout>
  
-{{ :materiels:csharp.png?nolink|}} 
-  * <html><strong>Programmation d'une carte <a href="https://www.ghielectronics.com/sitcore/sbc/" target="_blank">FEZ Duino</a> sous <a href="https://docs.ghielectronics.com/software/tinyclr/intro.html" target="_blank">TinyCLR OS</a> avec l'IDE Visual Studio Community</strong></html>  
-A venir 
  
 ---- ----
 +
 +=== 2.3 HC-SR04P (GPIO - I2C - UART) ===
 +{{ :materiels:capteurs:distance:hc-sr04p.png?nolink&150|JOY-IT HC-SR04P}}
 +
 +== 2.3.1 Présentation ==
 +<callout type="info" icon="true">Ce transducteur ultrason à base de HC-SR04P délivre un signal proportionnel à la distance qui le sépare d'un obstacle. Le signal pourra être récupérer directement via des **GPIO**, une interface **UART** ou **I2C**. Ce qui le rend compatible avec la plupart des microcontrôleurs (Arduino® ou compatible, Raspberry Pi, etc...).</callout>
 +
 +  * //**Distributeur**// : <html><a href="https://www.lextronic.fr/capteur-ultrasons-hc-sr04p-64393.html" target="_blank">Lextronic</a></html>
 +
 +  * //**Caractéristiques**//
 +    * Capteurs: <html><a href="https://www.gotronic.fr/pj2-hc-sr04-utilisation-avec-picaxe-1343.pdf" target="_blank" title="pdf">HC-SR04</a></html>
 +    * Tension d'alimentation: 3 Vcc à 5,5 Vcc
 +    * Interface: GPIO / UART / I2C (**SLA** = **0x57**)
 +    * Niveau logique: 3,3 Vcc / 5Vcc
 +    * Consommation: 15 mA (< 3mA au repos)
 +    * Angle de mesure: < 15°
 +    * Portée de détection: 2 à 450 cm
 +    * Précision: 0,3 cm
 +    * Connecteur mâle 4 broches coudé pré-soudé (pas 2,54 mm): Vcc/Trig/Echo/GND
 +    * Dimensions: 45,5 x 20,3 x 15,5 mm
 +
 +  * //**Configuration**// de M1 et M2 sur le CI (1 : R10k à ajouter) \\ **M1 M2** \\ 0 0 : GPIO \\ 1 0 : I2C \\ 1 1 : 1-wire \\ 0 1 : UART \\
 +
 +{{ :materiels:capteurs:acrobate.gif?nolink&30|}}
 +  * //**Documentation**// 
 +    * Fichier Acrobat Reader à télécharger <html><a href="https://webge.fr/doc/projets/datasheets/SEN-US01.pdf" target="_blank">ici</a></html>
 +
 +\\
 +
 +
 +{{ :materiels:capteurs:environnement:code.png?nolink|}}
 +== 2.3.2 Exemples de code == 
 +<tabs>
 +  * [[#tab-hcsr04pduinogpio_1|Arduino UNO (GPIO)]]
 +  * [[#tab-hcsr04pduinoi2c_1|Arduino UNO (I2C)]]
 +  * [[#tab-hcsr04pduinouart_1|Arduino UNO (UART)]]
 +  * [[#tab-hcsr04pico_1|Rpi Pico (µPython)]]
 +
 +<pane id="tab-hcsr04pduinogpio_1">
 +  * //**Ressources**// : <html><a href="https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/" target="_blank">pinMode()</a></html> | <html><a href="https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/" target="_blank">pulseIn()</a></html> | <html><a href="https://www.arduino.cc/reference/en/language/functions/communication/serial/" target="_blank">serial</a></html>
 +
 +  * //**Exemple** utilisant les **GPIO** pour tester le capteur//
 +<code cpp *.cpp>
 +// Arduino MKR sur Arduino MKR Connector
 +// Connexion sur le connecteur D5 D6B
 +const int echo = 6;
 +const int trigger = 5;
 +
 +float distance, duration;
 +
 +void setup() {
 +  Serial.begin(9600);
 +  pinMode(echo, INPUT);
 +  pinMode(trigger, OUTPUT);
 +}
 +
 +void loop() {
 +  digitalWrite(trigger, HIGH);  // Mesure de la distance en utilisant une impulsion de 10us
 +  delayMicroseconds(10);
 +  digitalWrite(trigger, LOW);
 +  duration = pulseIn(echo, HIGH);
 +  distance = duration * 340 / 2 / 10000;
 +  if (distance < 2 || distance > 450) {  // On vérifie si la valeur mesurée se situe dans l'intervalle prévu
 +    Serial.println("Distance en dehors de l'intervalle de mesure");
 +  } else {
 +    Serial.println("distance: " + String(distance) + " cm");  // Affichage dans la console
 +  }
 +  delay(3000);  // Attente entre 2 mesures
 +}
 +</code>
 +</pane>
 +
 +<pane id="tab-hcsr04pduinoi2c_1">
 +  * //**Ressource**// : <html><a href="https://www.arduino.cc/reference/en/language/functions/communication/wire/" target="_blank">Wire</a></html>
 +
 +  * //**Exemple** utilisant l'**I2C** pour tester le capteur//
 +<code cpp *.cpp>
 +// Arduino MKR sur Arduino MKR Connector
 +// Connexion sur le connecteur TWI
 +#include <Wire.h> 
 +
 +int     address = 0x57;     // i2c address of SEN-US01
 +float   distance;
 +long int     bytes[3];
 +
 +void setup(){
 +    Serial.begin(9600);
 +    Wire.begin();
 +}
 +
 +void loop(){
 +    Wire.beginTransmission(0x57);   // Start measurement
 +    Wire.write(0x01);
 +    Wire.endTransmission();
 +
 +    delay(200); // Wait 200 ms 
 +
 +    Wire.requestFrom(0x57,3);       // Read 3 bytes from sensor
 +    int i = 0;
 +    while(Wire.available()){
 +        bytes[i++] = Wire.read();
 +    } 
 +    
 +    distance = ((bytes[0] << 16) + (bytes[1] << 8) + bytes[2]) / 10000;     // Calculate distance based on received bytes
 +
 +    if (false){        // Checking whether measured value is within the permissible distance
 +        Serial.println("distance is outside of the measuring range");   // If not, an error message is output
 +    }
 +    else{
 +        Serial.println("distance: " + String(distance) + " cm");    // The calculated distance is output to the console
 +    }
 +    delay(3000);    // Pause between the individual measurements
 +}
 +</code>
 +</pane>
 +
 +<pane id="tab-hcsr04pduinouart_1">
 +  * //**Ressource**// : <html><a href="https://docs.arduino.cc/learn/built-in-libraries/software-serial/" target="_blank">SoftwareSerial Library</a></html>
 +
 +  * //**Exemple** utilisant l'**UART** pour tester le capteur//
 +<code cpp *.cpp>
 +// Arduino MKR sur Arduino MKR Connector
 +// Connexion sur le connecteur SERIAL
 +
 +#include <SoftwareSerial.h>
 +
 +SoftwareSerial ser(A4,A5); // initialize a serial connection (software)
 +float   distance;
 +long int     bytes[3];
 +
 +void setup(){
 +    Serial.begin(9600);     // start serial connection to computer
 +    ser.begin(9600);        // start serial connection to sensor
 +}
 +
 +void loop(){
 +    ser.flush();    // clear communication
 +    ser.write(0xA0);    // start measurement 
 +    delay(200); // Wait 200 ms 
 +    
 +    for (int i = 0; i < 3; i++) bytes[i] = ser.read();  // Read 3 bytes from sensor
 +
 +    distance = ((bytes[0] << 16) + (bytes[1] << 8) + bytes[2]) / 10000;     // Calculate distance based on received bytes
 +
 +    if (false){        // Checking whether measured value is within the permissible distance
 +        Serial.println("distance is outside of the measuring range");   // If not, an error message is output
 +    }
 +    else{
 +        Serial.println("distance: " + String(distance) + " cm");    // The calculated distance is output to the console
 +    }
 +    delay(3000);    // Pause between the individual measurements
 +}
 +</code>
 +</pane>
 +
 +<pane id="tab-hcsr04pico_1">
 +A venir
 +</pane>
 +</tabs>
 +
  • materiels/capteurs/distance/distus.1657179384.txt.gz
  • Dernière modification : 2022/07/07 09:36
  • de phil