J'ai déjà eu l'occasion de parler du télémètre laser VL53L1X il y a quelques mois: je l'avais alors utilisé avec une carte Arduino. Il s'agit d'un dispositif qui mesure avec une assez bonne précision la distance d'un obstacle situé à 4 mètres ou moins, grâce à un laser infrarouge de type VCEL.
Cette fois, je l'utilise avec un Raspberry Pi et un programme en Python.
Connexions au Rasbperry Pi
Mon module VL53L1X a été conçu par la compagnie Waveshare. Sparkfun et Pololu offrent également leur propre module à base de VL53L1X, j'imagine qu'ils se branchent de la même façon.
Le module comporte 6 connecteurs, mais je n'en ai utilisé que 4:- VCC: Branché à une sortie 3,3 V du Raspberry Pi (broche 1)
- GND: Branché à une broche GND du Raspberry Pi (broche 6)
- SDA: Branché à la broche SDA1 du Raspberry Pi (broche 3)
- SCL: Branché à la broche SCL1 du Raspberry Pi (broche 5)
- SHUT: "shutdown control". Je ne l'ai pas utilisée.
- INT: "interrupt output". Je ne l'ai pas utilisée.
Installation de la bibliothèque de Sparkfun
Sparkfun a mis au point un module Python; pour l'utiliser avec Python 3, il s'agit de taper cette commande dans le terminal:
sudo pip3 install sparkfun-qwiic-vl53l1x
Exemple de script #1
Voici un premier script qui affiche la distance en millimètres.
-
-
Exemple de script #2
Ce deuxième script utilise tkinter pour afficher la distance dans une fenêtre plus esthétique.
-
-
La précision est excellente pour un objet situé à quelques dizaines de centimètres (la mesure varie d'environ 5 mm pendant que l'objet demeure immobile). Pour des objets situés à 2 mètres, l'imprécision peut être de quelques centimètres.
Super !!!, merci Yves !!!
RépondreSupprimerPour augmenter la precision à longue distance tu pourrais éventuelement augmenter le temps d emmission de laser infra rouge avec la fonction set_timing_budget_in_ms(self, TimingBudgetInMs). Essaie avec 200 et 500.
def set_timing_budget_in_ms(self, TimingBudgetInMs):