An m3pi demo program utilizing a LIDAR sensor.
Dependencies: X_NUCLEO_53L0A1 m3pi mbed
main.cpp
- Committer:
- alexsaadfalcon
- Date:
- 2017-04-30
- Revision:
- 0:b7ef99889b44
File content as of revision 0:b7ef99889b44:
#include "mbed.h"
#include "m3pi.h"
#include "x_nucleo_53l0a1.h"
#include <stdio.h>
/* This VL53L0X Expansion board test application performs a range measurement in polling mode
on the onboard embedded top sensor. */
#define VL53L0_I2C_SDA D14
#define VL53L0_I2C_SCL D15
static X_NUCLEO_53L0A1 *board=NULL;
//VIN -- VOUT
//GND -- GND
//SDA -- p9
//SCA -- p10
m3pi m3pi;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
int main() {
//LIDAR setup
int status;
uint32_t distance;
DevI2C *device_i2c =new DevI2C(p28, p27);
/* creates the 53L0A1 expansion board singleton obj */
board = X_NUCLEO_53L0A1::Instance(device_i2c,p21,p21,p21);
/* init the 53L0A1 expansion board with default values */
status=board->InitBoard();
if(status) { led1 = 1; return 0; }
m3pi.locate(0,1);
m3pi.printf("YO");
while(1) {
status = board->sensor_centre->GetDistance(&distance);
if (status == VL53L0X_ERROR_NONE) {
m3pi.locate(0,1);
m3pi.printf("%u", distance);
printf("%u\r\n", distance);
if (distance > 50) {
m3pi.forward(.1);
led2 = 1;
} else {
m3pi.stop();
led2 = 0;
}
}
}
}