Sends compass and accelerometer data, receives data and displays on LED matrix
main.cpp@7:e3d1f064894b, 2017-02-23 (annotated)
- Committer:
- kinga
- Date:
- Thu Feb 23 15:37:20 2017 +0000
- Revision:
- 7:e3d1f064894b
- Parent:
- 6:e316416cae08
- Child:
- 8:c0e98b2fc93a
minimal refactor - not working
Who changed what in which revision?
User | Revision | Line number | New 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 | 6:e316416cae08 | 35 | ManagedString readData() |
kinga | 0:25e1d324df77 | 36 | { |
kinga | 6:e316416cae08 | 37 | int messageSize = 2; |
kinga | 6:e316416cae08 | 38 | return serial.read(messageSize, ASYNC); |
kinga | 6:e316416cae08 | 39 | } |
kinga | 0:25e1d324df77 | 40 | |
kinga | 0:25e1d324df77 | 41 | void sendData() |
kinga | 0:25e1d324df77 | 42 | { |
kinga | 0:25e1d324df77 | 43 | serial.send(getMessage(), ASYNC); |
kinga | 6:e316416cae08 | 44 | } |
kinga | 6:e316416cae08 | 45 | |
kinga | 7:e3d1f064894b | 46 | void switchLedMatrix(LedMatrix matrix) |
kinga | 6:e316416cae08 | 47 | { |
kinga | 6:e316416cae08 | 48 | ManagedString buffer = readData(); |
kinga | 6:e316416cae08 | 49 | int offsetToGetInt = 48; |
kinga | 6:e316416cae08 | 50 | if (buffer.length() != 0) |
kinga | 6:e316416cae08 | 51 | { |
kinga | 7:e3d1f064894b | 52 | matrix.setLedMatrix((int)buffer.charAt(0) - offsetToGetInt, (int)buffer.charAt(1) - offsetToGetInt); |
kinga | 7:e3d1f064894b | 53 | uBit.display.print(matrix.getMatrixImage()); |
kinga | 6:e316416cae08 | 54 | } |
kinga | 0:25e1d324df77 | 55 | } |
kinga | 6:e316416cae08 | 56 | |
kinga | 0:25e1d324df77 | 57 | |
kinga | 0:25e1d324df77 | 58 | int main() |
kinga | 0:25e1d324df77 | 59 | { |
kinga | 0:25e1d324df77 | 60 | uBit.init(); |
kinga | 7:e3d1f064894b | 61 | LedMatrix myLedMatrix; |
kinga | 0:25e1d324df77 | 62 | while(1) |
kinga | 1:17905d919813 | 63 | { |
kinga | 7:e3d1f064894b | 64 | switchLedMatrix(myLedMatrix); |
kinga | 0:25e1d324df77 | 65 | sendData(); |
kinga | 0:25e1d324df77 | 66 | uBit.sleep(500); |
kinga | 0:25e1d324df77 | 67 | } |
kinga | 0:25e1d324df77 | 68 | |
kinga | 0:25e1d324df77 | 69 | release_fiber(); |
kinga | 6:e316416cae08 | 70 | } |