Sends compass and accelerometer data, receives data and displays on LED matrix

Dependencies:   microbit

Committer:
kinga
Date:
Mon Feb 20 09:12:41 2017 +0000
Revision:
1:17905d919813
Parent:
0:25e1d324df77
Child:
2:541a2fae2429
giving function as parameter in while loop to myLedMatrix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kinga 1:17905d919813 1 #include "LedMatrix.h"
kinga 0:25e1d324df77 2
kinga 0:25e1d324df77 3 MicroBit uBit;
kinga 0:25e1d324df77 4 MicroBitSerial serial(USBTX, USBRX);
kinga 0:25e1d324df77 5 MicroBitI2C i2c(I2C_SDA0, I2C_SCL0);
kinga 0:25e1d324df77 6 MicroBitAccelerometer accelerometer(i2c);
kinga 0:25e1d324df77 7 MicroBitStorage storage;
kinga 0:25e1d324df77 8 MicroBitCompass compass(i2c, accelerometer, storage);
kinga 0:25e1d324df77 9
kinga 0:25e1d324df77 10 ManagedString getCompassHeading()
kinga 0:25e1d324df77 11 {
kinga 0:25e1d324df77 12 int heading = compass.heading();
kinga 0:25e1d324df77 13 return (ManagedString)heading + ',';
kinga 0:25e1d324df77 14 }
kinga 0:25e1d324df77 15
kinga 0:25e1d324df77 16 ManagedString getAccelerometerVectors()
kinga 0:25e1d324df77 17 {
kinga 0:25e1d324df77 18 ManagedString accelerometerVectorsString = "";
kinga 0:25e1d324df77 19 vector<int> accelerometerVectors;
kinga 0:25e1d324df77 20 accelerometerVectors.push_back(uBit.accelerometer.getX());
kinga 0:25e1d324df77 21 accelerometerVectors.push_back(uBit.accelerometer.getY());
kinga 0:25e1d324df77 22 accelerometerVectors.push_back(uBit.accelerometer.getZ());
kinga 0:25e1d324df77 23 for (int i = 0; i < accelerometerVectors.size(); ++i)
kinga 0:25e1d324df77 24 {
kinga 0:25e1d324df77 25 accelerometerVectorsString = accelerometerVectorsString + (ManagedString)accelerometerVectors[i] + ',';
kinga 0:25e1d324df77 26 }
kinga 0:25e1d324df77 27 return accelerometerVectorsString;
kinga 0:25e1d324df77 28 }
kinga 0:25e1d324df77 29
kinga 0:25e1d324df77 30 ManagedString getMessage()
kinga 0:25e1d324df77 31 {
kinga 0:25e1d324df77 32 return getCompassHeading() + getAccelerometerVectors();
kinga 0:25e1d324df77 33 }
kinga 0:25e1d324df77 34
kinga 1:17905d919813 35 ManagedString readData()
kinga 1:17905d919813 36 {
kinga 1:17905d919813 37 return serial.read(2, ASYNC);
kinga 1:17905d919813 38 }
kinga 1:17905d919813 39
kinga 1:17905d919813 40 /*int convertData(int num);
kinga 0:25e1d324df77 41 {
kinga 1:17905d919813 42 return atoi(readData()[num]);
kinga 1:17905d919813 43 }*/
kinga 1:17905d919813 44
kinga 1:17905d919813 45 /*void readData()
kinga 1:17905d919813 46 {
kinga 1:17905d919813 47 uBit.display.print(serial.read(ASYNC));
kinga 1:17905d919813 48 }*/
kinga 0:25e1d324df77 49
kinga 0:25e1d324df77 50 void sendData()
kinga 0:25e1d324df77 51 {
kinga 0:25e1d324df77 52 serial.send(getMessage(), ASYNC);
kinga 0:25e1d324df77 53 }
kinga 0:25e1d324df77 54
kinga 0:25e1d324df77 55
kinga 0:25e1d324df77 56 int main()
kinga 0:25e1d324df77 57 {
kinga 0:25e1d324df77 58 uBit.init();
kinga 1:17905d919813 59 LedMatrix myLedMatrix;
kinga 1:17905d919813 60 //ManagedString buffer = "";
kinga 0:25e1d324df77 61 while(1)
kinga 1:17905d919813 62 {
kinga 1:17905d919813 63 const char* temp = readData();
kinga 1:17905d919813 64 //temp = readData();
kinga 1:17905d919813 65 //buffer = readData();
kinga 1:17905d919813 66 //myLedMatrix.setLedMatrix(temp / 10, temp % 10);
kinga 1:17905d919813 67 //int buffer = readData();
kinga 1:17905d919813 68 myLedMatrix.setLedMatrix((readData() /10), (readData() % 10));
kinga 1:17905d919813 69 uBit.display.print(myLedMatrix.getMatrixImage());
kinga 1:17905d919813 70 //readData();
kinga 0:25e1d324df77 71 sendData();
kinga 0:25e1d324df77 72 uBit.sleep(500);
kinga 0:25e1d324df77 73 }
kinga 0:25e1d324df77 74
kinga 0:25e1d324df77 75 release_fiber();
kinga 0:25e1d324df77 76 }