- Capteur de télémètre à temps de vol (ToF) VL6180X
- Schéma
- Ajout des bibliothèques requises pour le capteur ToF VL6180
- Programmation et explication de travail
TOF ou temps de vol est une méthode couramment utilisée pour mesurer la distance d'objets éloignés par divers capteurs de mesure de distance comme un capteur à ultrasons. La mesure du temps mis par une particule, une onde ou un objet pour parcourir une distance à travers un milieu est appelée temps de vol (TOF). Cette mesure peut ensuite être utilisée pour calculer la vitesse ou la longueur du trajet. Il peut également être utilisé pour en savoir plus sur la particule ou les propriétés du milieu telles que la composition ou le débit. L'objet mobile peut être détecté directement ou indirectement.
Les appareils de mesure de distance à ultrasons sont l'un des premiers appareils utilisant le principe du temps de vol. Ces appareils émettent une impulsion ultrasonore et mesurent la distance à un matériau solide en fonction du temps mis par l'onde pour rebondir vers l'émetteur. Nous avons utilisé un capteur à ultrasons dans plusieurs de nos applications pour mesurer la distance:
- Mesure de distance basée sur Arduino et ultrasons
- Mesurer la distance à l'aide du Raspberry Pi et du capteur à ultrasons HCSR04
- Comment mesurer la distance entre deux capteurs à ultrasons
La méthode du temps de vol peut également être utilisée pour estimer la mobilité des électrons. En fait, il a été conçu pour la mesure de couches minces à faible conductivité, plus tard, il a été ajusté pour les semi-conducteurs courants. Cette technique est utilisée pour les transistors à effet de champ organique ainsi que pour les structures métal-diélectrique-métal. Par l'application du laser ou de l'impulsion de tension, les charges excédentaires sont générées.
Le principe TOF est utilisé pour mesurer la distance entre un capteur et un objet. Le temps mis par le signal pour atteindre le capteur après réflexion sur un objet est mesuré et il est utilisé pour calculer la distance. Différents types de signaux (porteurs) comme le son, la lumière peuvent être utilisés avec le principe TOF. Lorsque TOF est utilisé pour la télémétrie, il est très puissant lorsqu'il émet de la lumière plutôt que du son. Comparé aux ultrasons, il offre une lecture plus rapide, une précision plus élevée et une plus grande portée tout en conservant ses caractéristiques de faible poids, de petite taille et de faible consommation d'énergie.
Ici, dans ce didacticiel, nous utiliserons un capteur de télémètre VL6180X TOF avec Arduino pour calculer la distance entre le capteur et l'objet. Ce capteur indique également la valeur d'intensité lumineuse en LUX.
Capteur de télémètre à temps de vol (ToF) VL6180X
Le VL6180 diffère des autres capteurs de distance car il utilise une horloge précise pour mesurer le temps mis par la lumière pour se refléter sur n'importe quelle surface. Cela donne au VL6180 un avantage par rapport aux autres capteurs car il est plus précis et insensible au bruit.
Le VL6180 est un boîtier 3 en 1 qui comprend un émetteur infrarouge, un capteur de lumière ambiante et un capteur de portée. Il communique via une interface I 2 C. Il dispose d'un régulateur 2,8V intégré. Ainsi, même si nous branchons une tension supérieure à 2,8 V, elle sera automatiquement rétrogradée sans endommager la carte. Il mesure une portée allant jusqu'à 25 cm. Deux GPIO programmables y sont fournis.
Schéma
Ici, l' écran LCD du Nokia 5110 est utilisé pour afficher le niveau d'éclairage et la distance. L'écran LCD du Nokia 5110 fonctionne à 3,3 V, il ne peut donc pas être connecté directement aux broches numériques Arduino Nano. Ajoutez donc des résistances 10k en série avec les signaux de données pour protéger les lignes 3,3V des broches numériques 5V. En savoir plus sur l'utilisation de l' écran LCD du Nokia 5110 avec Arduino.
Le capteur VL6180 peut être directement connecté à l'Arduino. La communication entre le VL6180 et Arduino est I2C. En fait, le protocole de communication I2C combine les meilleures fonctionnalités de SPI et UART. Ici, nous pouvons connecter plusieurs esclaves à un seul maître et nous pouvons avoir plusieurs maîtres contrôlant un ou plusieurs esclaves. Comme la communication UART, I2C utilise deux fils pour la communication SDA (Serial Data) et SCL (Serial Clock), une ligne de données et une ligne d'horloge.
Le schéma de circuit pour connecter le capteur de télémètre VL6180 ToF avec Arduino est illustré ci-dessous:
- Connectez la broche RST de l'écran LCD à la broche 6 d'Arduino via la résistance 10K.
- Connectez la broche CE de l'écran LCD à la broche 7 d'Arduino via la résistance 10K.
- Connectez la broche CC de l'écran LCD à la broche 5 d'Arduino via la résistance 10K.
- Connectez la broche DIN de l'écran LCD à la broche 4 d'Arduino via la résistance 10K.
- Connectez la broche CLK de l'écran LCD à la broche 3 d'Arduino via la résistance 10K.
- Connectez la broche VCC de l'écran LCD à la broche 3,3 V d'Arduino.
- Connectez la broche GND de l'écran LCD au GND d'Arduino.
- Connectez la broche SCL du VL6180 à la broche A5 d'Arduino
- Connectez la broche SDA du VL6180 à la broche A4 d'Arduino
- Connectez la broche VCC du VL6180 à la broche 5V d'Arduino
- Connectez la broche GND du VL6180 à la broche GND d'Arduino
Ajout des bibliothèques requises pour le capteur ToF VL6180
Trois bibliothèques seront utilisées pour interfacer le capteur VL6180 avec Arduino.
1. Adafruit_PCD8544
Adafruit_PCD8544 est une bibliothèque pour les écrans LCD monochromes Nokia 5110. Ces écrans utilisent SPI pour la communication. Quatre ou cinq broches sont nécessaires pour interfacer cet écran LCD. Le lien pour télécharger cette bibliothèque est donné ci-dessous:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
La bibliothèque Adafruit_GFX pour Arduino est la bibliothèque graphique principale pour les écrans LCD, offrant une syntaxe commune et un ensemble de primitives graphiques (points, lignes, cercles, etc.) Il doit être associé à une bibliothèque spécifique au matériel pour chaque périphérique d'affichage que nous utilisons (pour gérer les fonctions de niveau inférieur). Le lien pour télécharger cette bibliothèque est donné ci-dessous:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
SparkFun_VL6180 est la bibliothèque Arduino avec les fonctionnalités de base du capteur VL6180. Le VL6180 se compose d'un émetteur infrarouge, d'un capteur de portée et d'un capteur de lumière ambiante qui communiquent via une interface I2C. Cette bibliothèque vous permet de lire la distance et les sorties de lumière du capteur, et émet les données via une connexion série. Le lien pour télécharger cette bibliothèque est donné ci-dessous:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Ajoutez toutes les bibliothèques une par une en allant dans Sketch >> Inclure la bibliothèque >> Ajouter la bibliothèque.ZIP dans Arduino IDE. Ensuite, téléchargez la bibliothèque que vous avez téléchargée à partir des liens ci-dessus.
Parfois, vous n'aurez pas besoin d'ajouter des bibliothèques filaires et SPI, mais si vous obtenez une erreur, veuillez les télécharger et les ajouter à votre IDE Arduino.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Programmation et explication de travail
Le code complet avec une vidéo de travail est donné à la fin de ce tutoriel, ici nous expliquons le programme complet pour comprendre le fonctionnement du projet.
Dans ce programme, la majorité des parties sont gérées par les bibliothèques que nous avons ajoutées, vous n'avez donc pas à vous en soucier.
Dans la partie de configuration, définissez la vitesse de transmission sur 115200 et initialisez la bibliothèque Wire pour I2C. Vérifiez ensuite si le capteur VL6180 fonctionne correctement ou non, s'il ne fonctionne pas, affichez un message d'erreur.
Dans la partie suivante, nous configurons l'affichage, vous pouvez modifier le contraste à la valeur souhaitée ici, je le règle à 50
void setup () { Serial.begin (115200); // Démarre la série à 115200bps Wire.begin (); // Démarrage du délai de bibliothèque I2C (100); // retard. if (sensor.VL6180xInit ()! = 0) { Serial.println ("FAILED TO INITALIZE"); // Initialise l'appareil et vérifie les erreurs }; sensor.VL6180xDefautSettings (); // Charger les paramètres par défaut pour commencer. retard (1000); // retarder 1s display.begin (); // init done // vous pouvez changer le contraste autour pour adapter l'affichage // pour une meilleure visualisation! display.setContrast (50); display.display (); // affiche l'affichage de l' écran de démarrage.clearDisplay (); }
Dans la configuration de la partie boucle vide , les instructions pour afficher les valeurs sur l'écran LCD. Ici, nous affichons deux valeurs, l'une est le «niveau de lumière ambiante en lux» (un lux équivaut en fait à un lumen par mètre carré), et la seconde est la «distance mesurée en mm». Pour afficher différentes valeurs sur un écran LCD, définissez la position de chaque texte à afficher sur l'écran LCD à l'aide de «display.setCursor (0,0);».
boucle void () { display.clearDisplay (); // Obtention du niveau de lumière ambiante et rapport dans LUX Serial.print ("Ambient Light Level (Lux) ="); Serial.println (sensor.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (NOIR); display.setCursor (0,0); display.println ("Niveau de lumière"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // Obtenir la distance et rapporter en mm Serial.print ("Distance mesurée (mm) ="); Serial.println (sensor.getDistance ()); display.setTextSize (1); display.setTextColor (NOIR); display.setCursor (0, 24); display.println ("Distance (mm) ="); display.setCursor (0, 36); b = capteur.getDistance (); display.println (b); display.display (); retard (500); }
Après avoir téléchargé le programme, ouvrez le moniteur série et il devrait afficher la sortie comme indiqué ci-dessous.
Les télémètres VL6180 TOF sont utilisés dans les smartphones, les appareils à écran tactile portables, les tablettes, les ordinateurs portables, les appareils de jeu et les appareils électroménagers / industriels.
Ici, nous affichons le niveau de lumière ambiante en Lux et la distance en mm.
Retrouvez le programme complet et la vidéo de démonstration ci-dessous. Vérifiez également comment mesurer la distance à l'aide du capteur à ultrasons et le niveau de lumière à l'aide du capteur de lumière ambiante BH1750.