send microbit compass and accelerometer data

Dependencies:   microbit

Fork of compass_data_sender by Kinga Magyar

Committer:
kinga
Date:
Wed Feb 15 11:03:41 2017 +0000
Revision:
7:73fbd714530a
Parent:
6:77e0f7786398
refactor: getAccelerometerVectors to fix

Who changed what in which revision?

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