library for m3Dpi robot, based on the Pololu 3pi and m3pi. m3Dpi has multiple distance sensors, gyroscope, compass and accelerometer sensor to be fully aware of its environment. With the addition of xbee or nrf24n01 module it has wireless communication capabilities.

Dependencies:   m3pi ADXL345_I2C HMC5583L ITG3200 PCA9547 TLC59116 VL6180x RGB-fun xbee

Dependents:   m3Dpi-helloworld

Committer:
sillevl
Date:
Thu Dec 03 16:34:59 2015 +0000
Revision:
4:b2fe3a2545bf
Parent:
0:9f02ae958e20
Child:
10:4200a8140b10
return data structures for sensor values instead of array pointers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sillevl 0:9f02ae958e20 1 #include "vl6180xManager.h"
sillevl 0:9f02ae958e20 2
sillevl 0:9f02ae958e20 3
sillevl 0:9f02ae958e20 4 VL6180xManager::VL6180xManager(PinName sda, PinName scl) : mux(sda, scl), i2c(sda, scl), sensor(sda, scl)
sillevl 0:9f02ae958e20 5 {
sillevl 0:9f02ae958e20 6 i2c.frequency(400000);
sillevl 0:9f02ae958e20 7 for(int i = 0; i < SENSOR_COUNT; i++) {
sillevl 0:9f02ae958e20 8 select(i);
sillevl 0:9f02ae958e20 9 sensor.initialize();
sillevl 0:9f02ae958e20 10 }
sillevl 0:9f02ae958e20 11 }
sillevl 0:9f02ae958e20 12
sillevl 0:9f02ae958e20 13 void VL6180xManager::select(int index)
sillevl 0:9f02ae958e20 14 {
sillevl 0:9f02ae958e20 15 mux.select(index);
sillevl 0:9f02ae958e20 16 }
sillevl 0:9f02ae958e20 17
sillevl 4:b2fe3a2545bf 18 m3dpi::Distance VL6180xManager::getAllDistance()
sillevl 0:9f02ae958e20 19 {
sillevl 4:b2fe3a2545bf 20 m3dpi::Distance distance;
sillevl 4:b2fe3a2545bf 21 distance.front = getDistance(0);
sillevl 4:b2fe3a2545bf 22 distance.front_right = getDistance(1);
sillevl 4:b2fe3a2545bf 23 distance.right = getDistance(2);
sillevl 4:b2fe3a2545bf 24 distance.back_right = getDistance(3);
sillevl 4:b2fe3a2545bf 25 distance.back = getDistance(4);
sillevl 4:b2fe3a2545bf 26 distance.back_left = getDistance(5);
sillevl 4:b2fe3a2545bf 27 distance.left = getDistance(6);
sillevl 4:b2fe3a2545bf 28 distance.front_left = getDistance(7);
sillevl 4:b2fe3a2545bf 29 return distance;
sillevl 4:b2fe3a2545bf 30 }
sillevl 4:b2fe3a2545bf 31
sillevl 4:b2fe3a2545bf 32 int VL6180xManager::getDistance(int index)
sillevl 4:b2fe3a2545bf 33 {
sillevl 4:b2fe3a2545bf 34 mux.select(index);
sillevl 4:b2fe3a2545bf 35 return sensor.getDistance();
sillevl 0:9f02ae958e20 36 }
sillevl 0:9f02ae958e20 37
sillevl 0:9f02ae958e20 38