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 07:58:50 2015 +0000
Revision:
0:9f02ae958e20
Child:
4:b2fe3a2545bf
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sillevl 0:9f02ae958e20 1 #pragma once
sillevl 0:9f02ae958e20 2
sillevl 0:9f02ae958e20 3 #include "m3pi.h"
sillevl 0:9f02ae958e20 4
sillevl 0:9f02ae958e20 5 #include "StatusLed.h"
sillevl 0:9f02ae958e20 6 #include "Color.h"
sillevl 0:9f02ae958e20 7 #include "LedRing.h"
sillevl 0:9f02ae958e20 8 #include "hmc5583l.h"
sillevl 0:9f02ae958e20 9 #include "ITG3200.h"
sillevl 0:9f02ae958e20 10 #include "ADXL345_I2C.h"
sillevl 0:9f02ae958e20 11 #include "PCA9547.h"
sillevl 0:9f02ae958e20 12 //#include "vl6108x.h"
sillevl 0:9f02ae958e20 13 #include "vl6180xManager.h"
sillevl 0:9f02ae958e20 14 #include "xbee.h"
sillevl 0:9f02ae958e20 15
sillevl 0:9f02ae958e20 16 class M3Dpi : public m3pi{
sillevl 0:9f02ae958e20 17
sillevl 0:9f02ae958e20 18 public:
sillevl 0:9f02ae958e20 19 M3Dpi();
sillevl 0:9f02ae958e20 20
sillevl 0:9f02ae958e20 21 void setStatus(int color);
sillevl 0:9f02ae958e20 22 void setStatus(Color* color);
sillevl 0:9f02ae958e20 23
sillevl 0:9f02ae958e20 24 void setLeds(int* colors);
sillevl 0:9f02ae958e20 25 int* getDistance(int data[]);
sillevl 0:9f02ae958e20 26 int* getDirection(int data[]); // compass
sillevl 0:9f02ae958e20 27 int* getRotation(int data[]); // gyro
sillevl 0:9f02ae958e20 28 int* getAcceleration(int data[]);
sillevl 0:9f02ae958e20 29 char* getTime(char buffer[]);
sillevl 0:9f02ae958e20 30
sillevl 0:9f02ae958e20 31 // buttonhandler (interrupt based?)
sillevl 0:9f02ae958e20 32
sillevl 0:9f02ae958e20 33 //protected: // public for hardware testing only
sillevl 0:9f02ae958e20 34 StatusLed status;
sillevl 0:9f02ae958e20 35 LedRing leds;
sillevl 0:9f02ae958e20 36
sillevl 0:9f02ae958e20 37 HMC5583L compass;
sillevl 0:9f02ae958e20 38 ITG3200 gyro;
sillevl 0:9f02ae958e20 39 ADXL345_I2C accelerometer;
sillevl 0:9f02ae958e20 40 VL6180xManager distance;
sillevl 0:9f02ae958e20 41 Xbee xbee;
sillevl 0:9f02ae958e20 42
sillevl 0:9f02ae958e20 43 static const PinName SDA = p28;
sillevl 0:9f02ae958e20 44 static const PinName SCL = p27;
sillevl 0:9f02ae958e20 45 static const PinName XBEE_TX = p13;
sillevl 0:9f02ae958e20 46 static const PinName XBEE_RX = p14;
sillevl 0:9f02ae958e20 47 static const PinName XBEE_RESET = p12;
sillevl 0:9f02ae958e20 48 static const PinName STATUS_RED = p18;
sillevl 0:9f02ae958e20 49 static const PinName STATUS_GREEN = p19;
sillevl 0:9f02ae958e20 50 static const PinName STATUS_BLUE = p20;
sillevl 0:9f02ae958e20 51
sillevl 0:9f02ae958e20 52 static const int XBEE_BAUD = 115200;
sillevl 0:9f02ae958e20 53
sillevl 0:9f02ae958e20 54 virtual int _putc(int c);
sillevl 0:9f02ae958e20 55 virtual int _getc();
sillevl 0:9f02ae958e20 56
sillevl 0:9f02ae958e20 57 };