Accueil > Arduino, NodeMCU > Utilisation du capteur de mesure de distance VL53L0X

Utilisation du capteur de mesure de distance VL53L0X

Aujourd’hui je vais tester l’utilisation du capteur de mesure de distance VL53L0X. Les caractéristiques principales de ce capteur sont les suivantes :

– Communication via le bus I2C.
– Alimentation 3.3v à 5v pour le module GY530 que je possède.
– Source laser invisible pour effectuer la mesure.
– Mesure de distance 50mm à 1.2m dans le mode par défaut.
– Mesure de distance 1.5 à 2m dans le mode longue distance.
Le module GY530 se présente comme suit :

Attention à ne pas oublier de retirer le minuscule film protecteur qui protège le capteur.
Le brochage est le suivant :
– Vin : tension d’entrée 3.3v à 5v.
– GND : masse.
– SDA et SCL : bus I2C.
– X : broche pour passer en mode shutdown du module. par défaut niveau haut. Permet entre autre de modifier l’adresse I2C du module 0x29.
– G : GPIO, cette broche peut être utilisée pour indiquer que la mesure est disponible.
En regardant le datasheet, on est déçu car le constructeur STmicro ne fournit pas de documentation sur la programmation de celui-ci mais une API (un ensemble de programmes en C) pour accéder au module. Moi qui voulais écrire une librairie pour ce module, j’ai abandonné l’idée car cela prendrait trop de temps à décortiquer l’API.
Donc pour l’utilisation de ce capteur je me suis tourné sur la librairie fournie par Adafruit. Il suffit dans l’IDE Arduino d’ajouter la librairie Adafruit pour le capteur Vl53L0X.
Le branchement du capteur sera le suivant :
Et le programme de test :
/*
 * Programme qui permet de calculer la distance en utilisant le capteur VL53L0X
 *
 * Matériel :
 *            Wemos D1 mini
 *            1 capteur VL53L0X
 *
 */
#include « Adafruit_VL53L0X.h »  // ajout de la librairie Adafruit
// Broches utilisées sur Wemos D1 mini pour la communication I2C
// sda = D2 –> GPIO4
// scl = D1 –> GPIO5
Adafruit_VL53L0X mesure_distance = Adafruit_VL53L0X();  // création d’une instance
void setup()
{
  Serial.begin(115200);
  if (!mesure_distance.begin())
  {
    Serial.println(« Erreur de démarrage du module VL53L0X »);
    while(true);
  }
}
void loop()
{
  VL53L0X_RangingMeasurementData_t mesure;  // déclaration du pointeur de mesure
  mesure_distance.rangingTest(&mesure, false);  // effectue la mesure; true pour passer en mode DEBUG
  if (mesure.RangeStatus != 4)  // mesure correcte
  {
    Serial.print(« Distance (cm): « );
    Serial.println(mesure.RangeMilliMeter / 10);  // affichage distance en cm (un entier)
  }
  else
  {
    Serial.println(« Distance > 120 cm »);
  }
  delay(100);
}
Bientôt à mettre en oeuvre dans un futur projet.
Publicités
Catégories :Arduino, NodeMCU Étiquettes : , , ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :