Ajouter un commentaire

Lidar : le TF-Luna, un module Lidar idéal pour votre Arduino ou ESP32

Par:
francoistonic

ven, 03/04/2026 - 13:40

Le Lidar est une technologie répandue dans les smartphones, les voitures et divers IoT. L'un des usages les plus communs est la mesure des distances de haute précision. Nous avons opté pour le modèle TF-Luna. Il est vendu à un tarif abordable,de 25-30 €. Il s'agit d'un capteur Lidar de proximité. Il fonctionne jusqu'à 8 mètres. Il utilise, comme tout bon Lidar, un laser infrarouge et le principe du "temps de vol" (ToF). Il calcule le temps que met la lumière à se réfléchir. À partir de là, le capteur peut calculer la distance de manière précise et rapide.

Ce module pèse à peine 5 grammes et consomme très peu : 0,35 W. Sa plage de fonctionnement est comprise entre 0,2 et 8 mètres, avec une résolution d'un cm, avec une précision de +/- 6 cm entre 0,2 et 3 mètres. Pour le prix, le TF-Luna est relativement précis. Par défaut, l'unité de mesure est le centimètre. L'alimentation nécessaire est comprise entre 3,7 et 5,2 V. Il faut donc utiliser une broche d'alimentation 5 V et non 3,3 V. Votre carte doit donc fonctionner en 5 V, même si une carte 3,3 V fonctionnera.

Attention, le constructeur précise : si le faisceau détecte 2 objets situés à des distances différentes, la distance générée sera une valeur prenant en compte les différentes distances. Cela signifie que la mesure sera faussée et ne donnera pas une donnée correcte de la distance. 

Les 6 broches du connecteur (1 à 6) :

5V

SDA (RxD)

SCL (TxD)

GND (Ground)

CFG : configuration input

MUX : multiplexing output

Sur une Arduino, on connecte sur les broches 5V, SDA, SCL, GND, GND. La broche 6 n'est pas utilisée. Les broches 4 et 5 du Lidar sont à mettre sur la broche GND de l'Arduino. Sur un ESP32, il suffit de trouver les broches SDA et SCL. 

Le capteur peut communiquer en UART ou en I2C (notre préférence). On utilisera ici donc les broches SDA, SCL, GND, 5V. 

Pour utiliser le capteur, il faut au préalable installer une librairie supportant le module : par exemple TFLuna-I2C (anciennement TFC22C). Elle utilise par défaut I2C. Un exemple de code de base (makerguides.com) :

#include "Wire.h"    
#include "TFLI2C.h"  

TFLI2C sensor;

void setup() {
Serial.begin(9600);
Wire.begin();
}

void loop() {
int16_t dist;
if (sensor.getData(dist, 0x10)) {
Serial.print("dist:");
Serial.println(dist);
}
delay(100);
}

Un code très classique : 

1 - on déclare les différents include

2 - piuis  la classe 

3 - on initialise la communication série dans void.setup : Serial.begin (avec la vitesse de transfert) puis on ouvre le bus I2C (Wire.begin). Dans void loop, on trouve le code pour déclarer le type de valeur attendue puis on lit les données du capteur passant par le bus I2C :

sensor.getData -> pour récupérer les données

(dist, 0x10)) -> on lit la donnée distance sur l'adresse du bus I2C (0x10 est l'adresse du bus I2C par défaut). Dans le doute, lancer au préalable un scan des bus I2C. Puis, on affiche les données du capteur dans le Serial Monitor de l'IDE. Vous pouvez aussi afficher sur un OLED...

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  GGG   W     W  N   N  ZZZZZ  U   U 
G W W NN N Z U U
G GG W W W N N N Z U U
G G W W W N NN Z U U
GGG W W N N ZZZZZ UUU