• Première étape
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
    • Serveur Web
  • Arduino & ESP8266
  • Automatisation de la maison
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
  • Serveur Web
  • Première étape
  • Automatisation de la maison
  • Anglais
  • Allemand
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Matériel et accessoires ; GPIO»Mesure de la distance infrarouge avec Raspberry Pi (Sharp GP2Y0A02YK0F)

Mesure de la distance infrarouge avec Raspberry Pi (Sharp GP2Y0A02YK0F)

Facebook Twitter LinkedIn Tumblr Email Reddit
infrarot sharp distance senser
Share
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Il existe des capteurs de distance infrarouges du fabricant Sharp, qui peuvent être utilisés très simplement avec le Raspberry Pi. Il existe différents télémètres, qui couvrent différentes plages de distance. Ces modules fonctionnent de la même manière que les télémètres laser, mais avec de la lumière infrarouge. Dans ce cas, un émetteur émet un faisceau de lumière et un récepteur transmet une tension analogique en fonction de l’angle d’incidence, ce qui permet de calculer la distance.

Dans ce tutoriel, le capteur de distance GP2Y0A02YK0F montre comment on peut déterminer une distance. Cela peut être utile, par exemple dans la voiture comme PC de voiture (distance de la caméra de recul), comme voiture robot ou dans le contexte domotique.

 

Pièces de matériel nécessaires – Capteurs de distance

The IR transmitter is located on the "indented" side (right).
L’émetteur IR est situé sur le côté « indenté » (à droite).

Dans l’ensemble, Sharp propose plusieurs méthodes de mesure de distance dans son offre, où il convient de rechercher individuellement celle qui convient à la tâche. Ce tutoriel est conçu pour le Sharp GP2Y0A02YK0F, qui convient pour des portées de 20 cm à 150 cm. Les distances en dehors de cette plage ne sont pas mesurées correctement.
Les modules suivants sont disponibles:

  • GP2Y0A02YK0F (20 cm – 150 cm)
  • GP2Y0A41SK0F (4 cm – 30 cm)
  • GP2Y0A21 (10 cm – 80 cm)
  • GP2Y0A710K0F (100 cm – 550 cm)

En utilisant un capteur autre que le GP2Y0A02YK0F, il se peut que vous deviez ajuster les étapes. Les fiches techniques sont disponibles sur la page d’accueil de Sharp.

Vous aurez également besoin des éléments suivants:

  • MCP3008 ADC
  • Câble jumper femelle-femelle
  • Breadboard

 

Fonctionnement du capteur de distance infrarouge

Ce capteur IR a besoin d’une tension d’entrée comprise entre 4,5V et 5,5V, il peut donc parfaitement fonctionner avec les 5V du Raspberry Pi. Selon la fiche technique, une tension différente est appliquée à la broche de données, en fonction de la distance à laquelle se trouve l’objet mesuré par le capteur. Ceci est visible dans le graphique suivant:

gp2y0a02yk
Sur la base de la tension, la distance entre environ 15 cm et 150 cm peut être calculée de manière relativement précise.

 

 

Connexion du MCP3008

mcp3008-e1397762478714

Comme la tension de sortie est analogique, nous devons d’abord la  » convertir  » à l’aide d’un convertisseur analogique-numérique, afin de pouvoir l’évaluer avec le Raspberry Pi. Cela fonctionne mieux avec un MCP3008 ADC.

Cet appareil est commandé par le canal SPI du Pi et possède huit canaux sur lesquels les tensions analogiques peuvent être converties. Ceux-ci sont divisés en 2 ^ 20, soit 1024 zones (0-1023). Si le MCP3008 est connecté à 3,3V, un signal de 1 signifie 0,00322V (3,22mV). Comme la tension du port SPI du Raspberry Pi est de 3,3V, il ne faut plus appliquer de courant, sinon les GPIO peuvent être endommagés.

L’ensemble du circuit ressemble à ceci:

 

sharp_GP2Y0A02YK0F_breadboard

RaspberryPi MCP3008
Broche 1 (3.3V) Broche 16 (VDD)
Broche 1 (3.3V) Broche 15 (VREF)
Broche 6 (GND) Broche 14 (AGND)
Broche 23 (SCLK) Broche 13 (CLK)
Broche 21 (MISO) Broche 12 (DOUT)
Broche 19 (MOSI) Broche 11 (DIN)
Broche 24 (CE0) Broche 10 (CS/SHDN)
Broche 6 (GND) Broche 9 (DGND)

 

Le capteur de distance n’a que trois connexions : rouge (5V), noir (GND) et jaune, qui est la broche de données et qui est connectée au MCP3008 ADC. Pour certains, les cloches d’alarme peuvent sonner et demander pourquoi un module de 5V est connecté directement, bien que le SPI du Pi ne devrait pas recevoir plus de 3,3V d’entrée. La fiche technique indique que la tension de sortie du capteur ne dépasse jamais 3V (voir le graphique de la fiche technique). Quiconque a peur que quelque chose arrive au Pi peut mettre un diviseur de tension avec 2 résistances devant lui, mais cela réduit la précision et il faudrait aussi recalculer la formule que j’ai utilisée. Dans mes tests, il n’a jamais atteint des tensions supérieures à 2,7V (GP2Y0A02YK0F). Cela peut être différent pour les autres capteurs Sharp.

 

Logiciels pour la lecture à distance

Pour contrôler le MCP3008, le port SPI doit être activé. Cela fonctionne comme suit:

sudo raspi-config

« 8 Options avancées » -> « A6 SPI » -> « Oui ».
Après cela, vous devez confirmer le redémarrage.

Dans certains cas, le module (spi-bcm2708) doit également être saisi dans le fichier / etc / modules. Pour cela, il suffit d’appeler

sudo nano /etc/modules

et ajoutez la ligne suivante à la fin (si elle n’existe pas) :

Shell
1
spi-bcm2807

La bibliothèque spidev peut maintenant être installée, si cela n’a pas encore été fait:

sudo apt-get install git python-dev
git clone git://github.com/doceme/py-spidev
cd py-spidev/
sudo python setup.py install

 

Maintenant que nous avons installé tous les paquets nécessaires, nous pouvons créer le script pour mesurer la distance.

sudo nano ir_distance.py

Voici le contenu du scénario :

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/python
import spidev
 
spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz=1000000
 
 
def readChannel(channel):
  val = spi.xfer2([1,(8+channel)<<4,0])
  data = ((val[1]&3) << 8) + val[2]
  return data
  
if __name__ == "__main__":
  v=(readChannel(0)/1023.0)*3.3
  dist = 16.2537 * v**4 - 129.893 * v**3 + 382.268 * v**2 - 512.611 * v + 301.439
  print "Distanz: %.2f cm" % dist

Nous pouvons le faire maintenant avec (sudo python ir_distance.py), après avoir visé un objet, la distance est sortie.

Que se passe-t-il exactement ici ? Tout d’abord, la valeur analogique (entre 0 et 1023) est lue (ligne 15). Cependant, comme nous voulons connaître le voltage, la valeur est divisée par 1023 et multipliée par 3,3 (volts).

Attention : Dans ce cas, nous savons (d’après la fiche technique) que la tension de sortie ne dépasse jamais 2,8V, bien que nous alimentions le capteur avec 5V. Les autres modules (analogiques et numériques) renvoient souvent des signaux avec des tensions aussi élevées que la tension appliquée. Si ce n’est pas le cas, le Raspberry Pi risque d’être endommagé.

 

À la ligne 16 du scénario, je calcule la tension en centimètres. J’ai trouvé la formule ici et je l’ai un peu adaptée. Pour cela, j’ai testé différentes distances et modifié un peu les facteurs afin que la distance calculée soit la plus précise possible. Comme je l’ai mentionné au début, cette formule ne concerne que le capteur Sharp GP2Y0A02YK0F. Comme les autres capteurs fournissent des signaux analogiques dans la même gamme, cette formule doit être ajustée pour les capteurs correspondants (si quelqu’un fait cela, je serais heureux qu’il l’affiche ci-dessous).
On peut aussi interpoler entre les zones (fiche technique) en stockant tous les indices (volts, distance) et en lisant la valeur spécifique et en calculant la distance par rapport à la tension mesurée par interpolation linéaire

Tôt ou tard, je devrai fixer un tel module à l’intérieur du pare-brise de ma voiture et disposer d’un compteur de distance en cas de stationnement en marche arrière – si quelqu’un ne sait pas encore ce qu’il peut en faire 😉

ADC barrière lumineuse infrarouge Capteur de distance infrarouge IR MCP3008 Mesure de distance Voiture PC
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous Article21 der nützlichsten Raspberry Pi Betriebssysteme – Übersicht
Next Article Comment utiliser les photorésistances (luminosité/capteur de lumière) avec un Raspberry Pi?

Related Posts

Connecter un clavier Raspberry Pi – Code Lock

Construire un capteur de porte / fenêtre Raspberry Pi avec Reed Relais

Utiliser Raspberry Pi comme récepteur radio (autoradio FM, PC de voiture)

MCP3008 : Lire des signaux analogiques sur le Raspberry Pi

Leave A Reply Cancel Reply

Communication sans fil entre les Raspberry Pi via le courtier/client MQTT

Mesure de la rotation et de l’accélération avec le Raspberry Pi

Raspberry Pi Autostart : Démarrez le programme automatiquement

Circuit lumineux Raspberry Pi avec GPIO Partie 1

Enregistrer les données des capteurs Raspberry Pi avec ThingSpeak et les analyser

Utilisation d’un capteur de distance Raspberry Pi (capteur ultrasonique HC-SR04)

ABONNEZ-VOUS MAINTENANT
Et recevez de nouveaux tutoriels dans votre boîte de réception.
Cliquez ici pour soumettre!

Merci!

Nous vous contacterons bientôt.

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Politique de confidentialité
  • Conditions de service & Politique sur les cookies

Type above and press Enter to search. Press Esc to cancel.