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

Dependencies:   microbit

Committer:
kinga
Date:
Mon Feb 20 15:26:27 2017 +0000
Revision:
3:5567512e8de7
Parent:
2:541a2fae2429
Child:
4:7f5e478f945c
working!!!

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 3:5567512e8de7 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 3:5567512e8de7 40 /*int convertData()
kinga 0:25e1d324df77 41 {
kinga 3:5567512e8de7 42 return atoi(readData());
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 2:541a2fae2429 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 3:5567512e8de7 68 ManagedString buffer = readData();
kinga 3:5567512e8de7 69 if (buffer.length() != 0)
kinga 3:5567512e8de7 70 {
kinga 3:5567512e8de7 71 myLedMatrix.setLedMatrix((int)buffer.charAt(0) - 48, (int)buffer.charAt(1) - 48);
kinga 3:5567512e8de7 72 uBit.display.print(myLedMatrix.getMatrixImage());
kinga 3:5567512e8de7 73 }
kinga 1:17905d919813 74 //readData();
kinga 0:25e1d324df77 75 sendData();
kinga 0:25e1d324df77 76 uBit.sleep(500);
kinga 0:25e1d324df77 77 }
kinga 0:25e1d324df77 78
kinga 0:25e1d324df77 79 release_fiber();
kinga 0:25e1d324df77 80 }