Comment mesurer la distance avec Raspberry Pi

Comment mesurer la distance avec Raspberry Pi
Vous pouvez mesurer la distance à l'aide du capteur à ultrasons HC-SR04 avec Raspberry Pi. Le capteur HC-SR04 peut mesurer la distance de 2 mm (.02m) à 400 cm (4m). Il envoie 8 rafales de signaux de 40 kHz, puis attend qu'il frappe un objet et se reflète en arrière. Le temps nécessaire à l'onde sonore à ultrasons de 40 kHz pour voyager dans les deux sens est utilisée pour calculer la distance entre le capteur et l'objet sur son chemin. C'est essentiellement ainsi que fonctionne le capteur HC-SR04.

Dans cet article, je vais vous montrer comment utiliser un capteur à ultrasons HC-SR04 pour mesurer la distance entre votre capteur et un objet à sa manière en utilisant Raspberry Pi. Commençons.

Composants dont vous avez besoin:

Pour mesurer avec succès la distance avec Raspberry Pi et le capteur HC-SR04, vous avez besoin,

  • Un ordinateur à carte unique Raspberry Pi 2 ou 3 avec Raspbian installé.
  • Un module de capteur à ultrasons HC-SR04.
  • Résistances 3x10kΩ.
  • Une planche à pain.
  • Des connecteurs masculins à féminins.
  • Des connecteurs masculins à masculins.

J'ai écrit un article dédié sur l'installation de Raspbian sur Raspberry Pi, que vous pouvez vérifier sur https: // linuxhint.com / install_raspbian_raspberry_pi / si vous avez besoin.

Pinouts HC-SR04:

Le HC-SR04 a 4 broches. VCC, déclencheur, écho, groud.

Fig1: Pinouts HC-SR04 (https: // www.mousser.com / ds / 2/813 / hcsr04-1022824.pdf)

La broche VCC doit être connectée à la broche + 5V du framboise Pi, qui est la broche 2. La broche de terre doit être connectée à la broche GND du framboise Pi, qui est la broche 4.

Les broches de déclenchement et d'écho doivent être connectées aux broches GPIO du framboise PI. Alors que la broche de déclencheur peut être directement connectée à l'une des broches GPIO du framboise PI, la broche d'écho a besoin d'un circuit de diviseur de tension.

Schéma:

Connectez le capteur à ultrasons HC-SR04 à votre Raspberry Pi comme suit:

Fig2: capteur à ultrasons HC-SR04 connecté à Raspberry Pi.

Une fois que tout est connecté, c'est à quoi ça ressemble:

Fig3: Capteur à ultrasons HC-SR04 connecté à Raspberry Pi sur planche à pain.

Fig4: capteur à ultrasons HC-SR04 connecté à Raspberry Pi sur planche à pain.

Rédaction d'un programme Python pour mesurer la distance avec HC-SR04:

Tout d'abord, connectez-vous à votre Raspberry Pi à l'aide de VNC ou SSH. Ensuite, ouvrez un nouveau fichier (disons distance.py) et saisir les lignes de codes suivantes:

Ici, la ligne 1 importe la bibliothèque Raspberry Pi GPIO.

Ligne 2 importe la bibliothèque temporelle.

À l'intérieur de essayer Block, le code réellement pour mesurer la distance à l'aide de HC-SR04 est écrit.

Le enfin le bloc est utilisé pour nettoyer les broches GPIO avec GPIO.nettoyer() Méthode lorsque le programme sort.

À l'intérieur de essayer Block, sur la ligne 5, GPIO.setMode (gpio.CONSEIL) est utilisé pour faciliter la définition des broches. Maintenant, vous pouvez référencer les broches par des nombres physiques tels qu'il est sur la carte Raspberry PI.

En ligne 7 et 8, ponctifier est réglé sur 7 et puits est réglé sur 11. Le DÉCLENCHER La broche de HC-SR04 est connectée à la broche 7, et ÉCHO La broche de HC-SR04 est connectée à la broche 11 du Rapsberry Pi. Ce sont des broches GPIO.

Sur la ligne 10, ponctifier est une configuration pour la sortie en utilisant GPIO.installation() méthode.

Sur la ligne 11, puits est configuré pour la saisie en utilisant GPIO.installation() méthode.

Les lignes 13-17 sont utilisées pour la réinitialisation ponctifier (en le définissant sur logique 0) et en définissant le ponctifier à la logique 1 pour 10 ms puis à la logique 0. En 10 ms, le capteur HC-SR04 envoie 8 impulsions de 40 kHz.

Les lignes 19-24 sont utilisées pour mesurer le temps nécessaire pour que les impulsions de 40 kHz soient reflétées dans un objet et retour au capteur HC-SR04.

Sur la ligne 25, la distance est mesurée à l'aide de la formule,

Distance = Temps delta * Velocity (340m / s) / 2

=> Distance = Temps delta * (170m / s)

J'ai calculé la distance en centimètres au lieu de mètres, juste pour être précis. J'ai calculé la distance est également arrondie à 2 décimales.

Enfin, sur la ligne 27, le résultat est imprimé. C'est ça, très simple.

Maintenant, exécutez le script Python avec la commande suivante:

$ Python3 Distance.py

Comme vous pouvez le voir, la distance mesurée est 8.40 cm.

Fig5: Objet placé à environ 8.40 cm du capteur.

Je me suis déplacé pour m'opposer un peu plus loin, la distance mesurée est de 21.81 cm. Donc, cela fonctionne comme prévu.

Fig6: Objet placé à environ 21.81 cm du capteur.

C'est ainsi que vous mesurez la distance avec Raspberry Pi en utilisant le capteur à ultrasons HC-SR04. Voir le code pour la distance.Py ci-dessous:

Importer RPI.GPIO comme GPIO
heure d'importation
essayer:
GPIO.setMode (gpio.CONSEIL)
Pintrigger = 7
Pinecho = 11
GPIO.Configuration (Pintrigger, gpio.DEHORS)
GPIO.Configuration (Pinecho, GPIO.DANS)
GPIO.Sortie (Pintrigger, GPIO.FAIBLE)
GPIO.Sortie (Pintrigger, GPIO.HAUT)
temps.sommeil (0.00001)
GPIO.Sortie (Pintrigger, GPIO.FAIBLE)
Alors que GPIO.entrée (pinecho) == 0:
PulseStartTime = Time.temps()
Alors que GPIO.entrée (pinecho) == 1:
pulseendtime = heure.temps()
Pulsenting = PulseEndTime - Pulstarttime
Distance = ronde (puldenting * 17150, 2)
Imprimer ("Distance:%.2f cm "% (distance))
enfin:
GPIO.nettoyer()