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

Dependencies:   microbit

Committer:
kinga
Date:
Wed Feb 15 14:09:30 2017 +0000
Revision:
0:25e1d324df77
Child:
1:17905d919813
work data sending and receiving

Who changed what in which revision?

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