Sends compass and accelerometer data, receives data and displays on LED matrix
main.cpp@8:c0e98b2fc93a, 2017-02-24 (annotated)
- Committer:
- kinga
- Date:
- Fri Feb 24 13:16:04 2017 +0000
- Revision:
- 8:c0e98b2fc93a
- Parent:
- 7:e3d1f064894b
little refactor: 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 | 8:c0e98b2fc93a | 46 | void switchLedMatrix(ManagedString buffer, LedMatrix& myLedMatrix) |
kinga | 6:e316416cae08 | 47 | { |
kinga | 6:e316416cae08 | 48 | int offsetToGetInt = 48; |
kinga | 8:c0e98b2fc93a | 49 | myLedMatrix.setLedMatrix((int)buffer.charAt(0) - offsetToGetInt, (int)buffer.charAt(1) - offsetToGetInt); |
kinga | 8:c0e98b2fc93a | 50 | uBit.display.print(myLedMatrix.getMatrixImage()); |
kinga | 0:25e1d324df77 | 51 | } |
kinga | 6:e316416cae08 | 52 | |
kinga | 0:25e1d324df77 | 53 | |
kinga | 0:25e1d324df77 | 54 | int main() |
kinga | 0:25e1d324df77 | 55 | { |
kinga | 0:25e1d324df77 | 56 | uBit.init(); |
kinga | 7:e3d1f064894b | 57 | LedMatrix myLedMatrix; |
kinga | 0:25e1d324df77 | 58 | while(1) |
kinga | 1:17905d919813 | 59 | { |
kinga | 8:c0e98b2fc93a | 60 | ManagedString buffer = readData(); |
kinga | 8:c0e98b2fc93a | 61 | if (buffer.length() != 0) |
kinga | 8:c0e98b2fc93a | 62 | { |
kinga | 8:c0e98b2fc93a | 63 | switchLedMatrix(buffer, myLedMatrix); |
kinga | 8:c0e98b2fc93a | 64 | } |
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 | } |