Programme de mesure de distance avec capteur ToF

Dependencies:   mbed VL53L0X

Committer:
JVAutran
Date:
Thu Apr 11 11:20:38 2019 +0000
Revision:
0:8da34e10e9f8
Programme de mesure de distance avec capteur ToF

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JVAutran 0:8da34e10e9f8 1 #include "VL53L0X.h"
JVAutran 0:8da34e10e9f8 2 #include "mbed.h"
JVAutran 0:8da34e10e9f8 3
JVAutran 0:8da34e10e9f8 4 DevI2C i2C(PB_9, PB_8);
JVAutran 0:8da34e10e9f8 5 DigitalOut Pin_Out(PB_9);
JVAutran 0:8da34e10e9f8 6 VL53L0X capteur(&i2C, &Pin_Out, PA_8, VL53L0X_DEFAULT_ADDRESS);
JVAutran 0:8da34e10e9f8 7 VL53L0X_Dev_t MyDevice;
JVAutran 0:8da34e10e9f8 8 VL53L0X_Dev_t *pMyDevice = &MyDevice;
JVAutran 0:8da34e10e9f8 9 int distance(uint32_t *p_data);
JVAutran 0:8da34e10e9f8 10
JVAutran 0:8da34e10e9f8 11 int main(){
JVAutran 0:8da34e10e9f8 12 uint32_t status = 0;
JVAutran 0:8da34e10e9f8 13 uint32_t *dist;
JVAutran 0:8da34e10e9f8 14
JVAutran 0:8da34e10e9f8 15 printf("\n\r");
JVAutran 0:8da34e10e9f8 16 printf("\n\r");
JVAutran 0:8da34e10e9f8 17 //pMyDevice->comms_type = 1;
JVAutran 0:8da34e10e9f8 18 //pMyDevice->comms_speed_khz = 400;
JVAutran 0:8da34e10e9f8 19
JVAutran 0:8da34e10e9f8 20 capteur.init_sensor(VL53L0X_DEFAULT_ADDRESS);
JVAutran 0:8da34e10e9f8 21 //capteur.disable_interrupt_measure_detection_irq();
JVAutran 0:8da34e10e9f8 22 while(1){
JVAutran 0:8da34e10e9f8 23 status = distance(dist);
JVAutran 0:8da34e10e9f8 24 printf("Distance : %d mm\n\r", *dist);
JVAutran 0:8da34e10e9f8 25 printf("Statut : %d \n\r", status);
JVAutran 0:8da34e10e9f8 26 printf("\n");
JVAutran 0:8da34e10e9f8 27 wait(0.2);
JVAutran 0:8da34e10e9f8 28 }
JVAutran 0:8da34e10e9f8 29 capteur.VL53L0X_off();
JVAutran 0:8da34e10e9f8 30 }
JVAutran 0:8da34e10e9f8 31
JVAutran 0:8da34e10e9f8 32 int distance(uint32_t *p_data){
JVAutran 0:8da34e10e9f8 33 int status = 0;
JVAutran 0:8da34e10e9f8 34 VL53L0X_RangingMeasurementData_t measurement_data;
JVAutran 0:8da34e10e9f8 35
JVAutran 0:8da34e10e9f8 36 status = capteur.start_measurement(range_single_shot_polling, NULL);
JVAutran 0:8da34e10e9f8 37 if (!status) {
JVAutran 0:8da34e10e9f8 38 status = capteur.get_measurement(range_single_shot_polling, &measurement_data);
JVAutran 0:8da34e10e9f8 39 }
JVAutran 0:8da34e10e9f8 40 if (measurement_data.RangeStatus == 0) {
JVAutran 0:8da34e10e9f8 41 *p_data = measurement_data.RangeMilliMeter;
JVAutran 0:8da34e10e9f8 42 } else {
JVAutran 0:8da34e10e9f8 43 *p_data = 0;
JVAutran 0:8da34e10e9f8 44 status = VL53L0X_ERROR_RANGE_ERROR;
JVAutran 0:8da34e10e9f8 45 }
JVAutran 0:8da34e10e9f8 46 capteur.stop_measurement(range_single_shot_polling);
JVAutran 0:8da34e10e9f8 47 return status;
JVAutran 0:8da34e10e9f8 48 }