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:   m3Dpi mbed-rtos mbed MbedJSONValue

Committer:
sillevl
Date:
Thu Dec 03 07:59:45 2015 +0000
Revision:
1:6f620263c9f8
Parent:
0:ab0ce9ab81bf
Child:
6:414e1fea64f3
initial code commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sillevl 0:ab0ce9ab81bf 1
sillevl 1:6f620263c9f8 2 #include "M3Dpi.h"
sillevl 1:6f620263c9f8 3
sillevl 1:6f620263c9f8 4 M3Dpi m3dpi;
sillevl 1:6f620263c9f8 5 Serial pc(USBTX,USBRX);
sillevl 1:6f620263c9f8 6
sillevl 1:6f620263c9f8 7 int colors[8] = {Color::RED, Color::GREEN, Color::BLUE, Color::MAGENTA, Color::CYAN, Color::YELLOW};
sillevl 1:6f620263c9f8 8 int distance[8] = {0};
sillevl 1:6f620263c9f8 9 int direction[3] = {0};
sillevl 1:6f620263c9f8 10 int rotation[3] = {0};
sillevl 1:6f620263c9f8 11 int acceleration[3] = {0};
sillevl 1:6f620263c9f8 12 char timeBuffer[32] = {0};
sillevl 0:ab0ce9ab81bf 13
sillevl 1:6f620263c9f8 14 int main()
sillevl 1:6f620263c9f8 15 {
sillevl 1:6f620263c9f8 16 pc.baud(115200);
sillevl 1:6f620263c9f8 17 m3dpi.setStatus(Color::GREEN);
sillevl 1:6f620263c9f8 18
sillevl 1:6f620263c9f8 19 pc.printf("Device ID is: 0x%02x\n", m3dpi.accelerometer.getDevId());
sillevl 1:6f620263c9f8 20 pc.printf("Gyro id: 0x%02x\n", m3dpi.gyro.getWhoAmI());
sillevl 0:ab0ce9ab81bf 21
sillevl 1:6f620263c9f8 22 while(1) {
sillevl 1:6f620263c9f8 23 m3dpi.getDistance(distance);
sillevl 1:6f620263c9f8 24 pc.printf("{\"id\":\"123456789\",\"distance\":[%d,%d,%d,%d,%d,%d,%d,%d]}\n",distance[0],distance[1],distance[2],distance[3],distance[4],distance[5],distance[6],distance[7]);
sillevl 1:6f620263c9f8 25
sillevl 1:6f620263c9f8 26 for(int i = 0; i < 8; i++){
sillevl 1:6f620263c9f8 27 colors[i] = distance[i] << 16;
sillevl 1:6f620263c9f8 28 }
sillevl 1:6f620263c9f8 29 m3dpi.setLeds(colors);
sillevl 1:6f620263c9f8 30
sillevl 1:6f620263c9f8 31 m3dpi.getDirection(direction);
sillevl 1:6f620263c9f8 32 pc.printf("{\"id\":\"123456789\",\"direction\":{\"x\":%d,\"y\":%d,\"z\":%d}}\n",direction[0], direction[1], direction[2]);
sillevl 1:6f620263c9f8 33
sillevl 1:6f620263c9f8 34 m3dpi.getRotation(rotation);
sillevl 1:6f620263c9f8 35 pc.printf("{\"id\":\"123456789\",\"rotation\":{\"x\":%d,\"y\":%d,\"z\":%d}}\n",rotation[0], rotation[1], rotation[2]);
sillevl 1:6f620263c9f8 36
sillevl 1:6f620263c9f8 37 m3dpi.getAcceleration(acceleration);
sillevl 1:6f620263c9f8 38 pc.printf("{\"id\":\"123456789\",\"acceleration\":{\"x\":%d,\"y\":%d,\"z\":%d}}\n",acceleration[0], acceleration[1], acceleration[2]);
sillevl 1:6f620263c9f8 39
sillevl 1:6f620263c9f8 40 m3dpi.getTime(timeBuffer);
sillevl 1:6f620263c9f8 41 pc.printf("{\"time\":\"%s\"}", timeBuffer);
sillevl 1:6f620263c9f8 42
sillevl 1:6f620263c9f8 43 wait(0.5);
sillevl 1:6f620263c9f8 44 }
sillevl 0:ab0ce9ab81bf 45 }