Sends compass and accelerometer data, receives data and displays on LED matrix
main.cpp
- Committer:
- kinga
- Date:
- 2017-02-24
- Revision:
- 8:c0e98b2fc93a
- Parent:
- 7:e3d1f064894b
File content as of revision 8:c0e98b2fc93a:
#include "LedMatrix.h" MicroBit uBit; MicroBitSerial serial(USBTX, USBRX); MicroBitI2C i2c(I2C_SDA0, I2C_SCL0); MicroBitAccelerometer accelerometer(i2c); MicroBitStorage storage; MicroBitCompass compass(i2c, accelerometer, storage); ManagedString getCompassHeading() { int heading = compass.heading(); return (ManagedString)heading + ','; } ManagedString getAccelerometerVectors() { ManagedString accelerometerVectorsString = ""; vector<int> accelerometerVectors; accelerometerVectors.push_back(uBit.accelerometer.getX()); accelerometerVectors.push_back(uBit.accelerometer.getY()); accelerometerVectors.push_back(uBit.accelerometer.getZ()); for (int i = 0; i < accelerometerVectors.size(); ++i) { accelerometerVectorsString = accelerometerVectorsString + (ManagedString)accelerometerVectors[i] + ','; } return accelerometerVectorsString; } ManagedString getMessage() { return getCompassHeading() + getAccelerometerVectors(); } ManagedString readData() { int messageSize = 2; return serial.read(messageSize, ASYNC); } void sendData() { serial.send(getMessage(), ASYNC); } void switchLedMatrix(ManagedString buffer, LedMatrix& myLedMatrix) { int offsetToGetInt = 48; myLedMatrix.setLedMatrix((int)buffer.charAt(0) - offsetToGetInt, (int)buffer.charAt(1) - offsetToGetInt); uBit.display.print(myLedMatrix.getMatrixImage()); } int main() { uBit.init(); LedMatrix myLedMatrix; while(1) { ManagedString buffer = readData(); if (buffer.length() != 0) { switchLedMatrix(buffer, myLedMatrix); } sendData(); uBit.sleep(500); } release_fiber(); }