Publié par Laisser un commentaire

Capteur de distance ultrason HC-SR04 avec Raspberry Pi Pico

Raspberry Pi Pico HC-SR04 ultrasonic distance sensor

Le capteur de distance à ultrasons HC-SR04 fonctionne comme un sonar. Voyons dans ce tutoriel comment connecter le HC-SR04 à un Raspberry Pi Pico. Nous écrirons également un script en MicroPython pour calculer une distance mesurée en fonction des données d’entrée du capteur.

  1. Préparer le matériel

    – Vous avez d’abord besoin d’un ordinateur pour pouvoir utiliser Thonny. Dans ce tutoriel, nous utiliserons un Raspberry Pi 4 comme ordinateur. Et Thonny est un EDI Python convivial pour interagir avec la carte Raspberry Pi Pico. Si vous n’avez jamais utilisé Thonny pour programmer le Raspberry Pi Pico, avant de continuer, vous feriez mieux de jeter un œil à notre tutoriel “Commencer à programmer le Raspberry Pi Pico“.

    – Ensuite, vous avez besoin d’un câble USB avec prise micro-USB.

    – Vous avez également besoin d’un Raspberry Pi Pico bien sûr. Pour ce tutoriel, vous avez besoin d’avoir les broches soudés à votre carte.

    Et enfin, vous aurez besoin de quelques composants supplémentaires :
    – un breadboard (nous utilisons un breadboard de 400 points)
    – un capteur ultrason HC-SR04
    – un résistance de 1k Ohm et une résistance de 2k Ohm
    – des câbles Dupont

    Si vous manquez des pièces, n’hésitez pas à visiter notre boutique.Raspberry Pi Pico breadboard HC-SR04

  2. Apprenez à connaître le capteur ultrason HC-SR04

    Le capteur à ultrasons HC-SR04 utilise le principe du sonar pour déterminer la distance à un objet. Il offre une mesure sans contact avec une bonne précision et des lectures stables. Sur le module, nous trouvons un émetteur à ultrasons et un récepteur. Le capteur a une portée de 2 à 400 cm. La précision de la mesure est de +/- 0,5 cm.

    Le capteur utilise des signaux sonores ultrasoniques pour définir la distance:
    – L’émetteur envoie un signal ultrason dans la direction de l’objet.
    – Lorsque le signal atteint l’objet, il est renvoyé au capteur.
    – Le récepteur peut détecter le signal réfléchi.

    Nous pouvons calculer la différence de temps entre le moment où l’émetteur envoie le signal et le moment où le récepteur capte le signal. Puisque la vitesse du son est connue (343,3 m / s ou 34330 cm / s), nous pouvons maintenant calculer la distance comme ceci:

    distance = vitesse * temps , ou dans notre cas:
    distance = 34330 * temps / 2 , ou distance = 17165 * temps

    Remarque: le temps mesuré prend en compte la distance du capteur à l’objet et la distance de l’objet au capteur, il faut donc diviser ce temps par 2.
    HC-SR04 ultrasonic distance sensor
    Soyez prudent ! Avant de brancher des composants sur les broches GPIO de votre Raspberry Pi Pico, assurez-vous que celui-ci ne soit pas connecté à votre ordinateur.

  3. Mettez en place la partie matérielle

    Raspberry Pi Pico HC-SR04 pinout– placez le capteur HC-SR04 sur le breadboard, indiqué dans l’image ci-dessous
    – connectez la broche VCC du capteur avec une broche 5V (fil rouge)
    – connectez la broche Trig du capteur au GP17 (fil vert)
    – connectez la broche Echo du capteur à la résistance 1kOhm (fil jaune)
    – connectez l’autre extrémité de la résistance 1kOhm au GP16
    – connectez le GND du capteur à la rangée « – » sur le breadboard (fil noir)
    – connectez une broche GND du Pico à la rangée « – » sur le breadboard (fil noir)
    – insérez la résistance 2kOhm entre GP16 et la ligne « – »
    Raspberry Pi Pico HC-SR04 breadboard

  4. Ecrivez le code

    Le but ici est d’écrire un script MicroPython très basique qui calcule chaque seconde une distance en cm entre le capteur à ultrasons et un objet.

    Maintenant, ouvrez Thonny et écrivez ou collez le code suivant dans l’EDI :

    from machine import Pin
    import time
    trig = Pin(17, Pin.OUT)
    echo = Pin(16, Pin.IN, Pin.PULL_DOWN)
    while True:
         trig.value(0)
         time.sleep(0.1)
         trig.value(1)
         time.sleep_us(2)
         trig.value(0)
         while echo.value()==0:
              pulse_start = time.ticks_us()
         while echo.value()==1:
              pulse_end = time.ticks_us()
         pulse_duration = pulse_end - pulse_start
         distance = pulse_duration * 17165 / 1000000
         distance = round(distance, 0)
         print ('Distance:',"{:.0f}".format(distance),'cm')
         time.sleep(1)


    Attention, MicroPython est sensible aux espaces. Ne supprimez pas les “tabs”.

    MicroPython Pico HC-SR04 script
    Quelques explications à propos du code :
    from machine import Pin  : importer partiellement le module machine pour avoir accès aux pins GPIO.
    import time   : importer le module de temps. Cela nous permettra d’utiliser des tâches liées au temps.
    trig= Pin(17, Pin.OUT) : ici, nous déclarons la broche du capteur de déclenchement ou “trigger” (=GP17) comme broche de sortie.
    echo= Pin(16, Pin.IN, Pin.PULL_DOWN): : ici, nous définissons la broche du capteur (=GP16) comme une broche d’entrée. Pour éviter une entrée “flottante”, nous utilisons une résistance de tirage interne.
    while True:  est une boucle à l’infinie (jusqu’à ce que nous interrompons le programme).
    trig.value(0) : pour s’assurer que le capteur n’émet aucun son
    time.sleep(0.1) : on attend une courte période pour régler le capteur
    trig.value(1) : laisser le capteur émettre un son
    time.sleep_us(2) : émettre pendant un temps très court : 2 microsecondes
    trig.value(0) : arrêter d’émettre le son
    Le capteur produit alors une impulsion dont la durée est proportionnelle à la distance mesurée. Nous devons donc enregistrer les horodatages de début et de fin. Et puis on fait la différence pour calculer le temps écoulé.
    pulse_start = time.ticks_us() : ici nous enregistrons le temps, tant que le capteur ne produit pas d’impulsation.
    pulse_end = time.ticks_us() : ici nous enregistrons le temps, tant que le capteur produit une impulsation.
    pulse_duration = pulse_end - pulse_start nous calculons la différence de temps entre les deux horodatages
    distance = pulse_duration * 17165 / 1000000 : nous calculons la distance en fonction du temps et convertissons les microsecondes en secondes (voir explication dans le paragraphe précédent).
    Enfin, nous arrondissons le résultat et l’imprimons.

  5. Exécutez le programme

    Maintenant, il est temps de sauvegarder votre script. Vous pouvez l’enregistrer sur votre ordinateur ou sur votre carte Pico.

    Ensuite, cliquez sur le bouton Exécuter de l’IDE Thonny. Et pointez le capteur vers un objet avec une surface plane. Vous verrez apparaître à l’écran la distance entre le capteur et l’objet.

    HC-SR04 ultrasonic distance sensor
    Soyez prudent avec les autres objets à proximité. Ceux-ci pourraient également envoyer un écho. Ce qui vous donnerait alors des valeurs mesurées incorrectes.

Félicitations ! Avec ce tutorial, vous comprenez maintenant le principe de fonctionnement de certains télémètres. Vous pouvez également utiliser le script pour traiter le résultat dans une application où vous souhaitez mesurer ou surveiller vous-même une certaine distance. Encore beaucoup de plaisir avec votre prochain projet!

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 4 / 5. Nombre de voix : 2

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 4 / 5. Nombre de voix : 2

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

découvrez ici plus de produits

Soyez le premier informé de nos derniers tutoriels et produits en vous inscrivant à notre Newsletter

freva.com respecte votre vie privée. Lisez notre politique de protection de la vie privée sur la façon dont nous traitons vos informations personnelles.