Lidar Ares

Dependencies:   mbed AX12 VL53L0X

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "main.h"
00002 
00003 /* VL53L0X */
00004 I2C i2c(D4, D5);
00005 VL53L0X vl_sensors[2] = {(&i2c),(&i2c)};
00006 BusOut vl_shutdown(D12,D13);
00007 
00008 /* PC */
00009 Serial pc(USBTX, USBRX, 9600);
00010 Serial ihm(PA_9, PA_10, 9600);
00011 
00012 int main(void)
00013 {
00014     pc.printf("23-03-21_Sensors_and_serial\n\r");
00015 
00016     /* Init VL53L0X */
00017     uint8_t expander_shutdown_mask = 1;
00018 
00019     for(uint8_t i = 0; i < 2 ; i++) {
00020         vl_shutdown = expander_shutdown_mask;
00021         expander_shutdown_mask = (expander_shutdown_mask << 1) + 1;
00022         vl_sensors[i].init();
00023         vl_sensors[i].setDeviceAddress(0x40 + i);
00024         vl_sensors[i].setModeContinuous();
00025         vl_sensors[i].startContinuous();
00026     }
00027 
00028     //uint16_t results[2];
00029     float results[2] = {0};
00030 
00031     /* Init AX-12 */
00032     AX12 myax12(PA_2, PA_3, 2, 250000); // ID = 2 pour le prototype de Lidar
00033 
00034     while(1) {
00035         for(float k = AX12_POS_MIN; k <= AX12_POS_MAX; k=k+AX12_POS_JUMP) {
00036             for(int i = 0; i < 2 ; i++) {
00037                 //wait(AX12_TIME_JUMP);
00038                 results[i] = (float)vl_sensors[i].getRangeMillimeters();
00039             }
00040             
00041             myax12.SetGoal(k);    // go to 0 degrees
00042             //pc.printf("k: %f 1: %fmm 2: %fmm \n\r", k, results[0], results[1]);
00043             ihm.printf("%f %f %f\n",k,results[0],results[1]);
00044             wait(AX12_TIME_JUMP);
00045         }
00046 
00047         for(float k = AX12_POS_MAX; k >= AX12_POS_MIN; k=k-AX12_POS_JUMP) {
00048             for(int i = 0; i < 2 ; i++) {
00049                 //wait(AX12_TIME_JUMP);
00050                 results[i] = (float)vl_sensors[i].getRangeMillimeters();
00051             }
00052             
00053             myax12.SetGoal(k);    // go to 0 degrees
00054             //pc.printf("k: %f 1: %fmm 2: %fmm \n\r", k, results[0], results[1]);
00055             ihm.printf("%f %f %f\n",k,results[0],results[1]);
00056             wait(AX12_TIME_JUMP);
00057         }
00058     }
00059 }
00060 
00061