Firmware for head gesture sensor
Dependencies: BLE_API MPU6050 mbed nRF51822
main.cpp@0:fde541752721, 2017-06-02 (annotated)
- Committer:
- jpalmows
- Date:
- Fri Jun 02 15:28:16 2017 +0000
- Revision:
- 0:fde541752721
initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jpalmows | 0:fde541752721 | 1 | #include "mbed.h" |
jpalmows | 0:fde541752721 | 2 | #include "MPU6050.h" |
jpalmows | 0:fde541752721 | 3 | #include "ble/BLE.h" |
jpalmows | 0:fde541752721 | 4 | |
jpalmows | 0:fde541752721 | 5 | |
jpalmows | 0:fde541752721 | 6 | DigitalOut myled(LED1); |
jpalmows | 0:fde541752721 | 7 | |
jpalmows | 0:fde541752721 | 8 | MPU6050 ark(I2C_SDA0, I2C_SCL0); |
jpalmows | 0:fde541752721 | 9 | |
jpalmows | 0:fde541752721 | 10 | BLE ble; |
jpalmows | 0:fde541752721 | 11 | |
jpalmows | 0:fde541752721 | 12 | uint8_t AdvData[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff}; |
jpalmows | 0:fde541752721 | 13 | void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params) |
jpalmows | 0:fde541752721 | 14 | { |
jpalmows | 0:fde541752721 | 15 | BLE::Instance().gap().startAdvertising(); |
jpalmows | 0:fde541752721 | 16 | } |
jpalmows | 0:fde541752721 | 17 | |
jpalmows | 0:fde541752721 | 18 | void periodicCallback(void) |
jpalmows | 0:fde541752721 | 19 | { |
jpalmows | 0:fde541752721 | 20 | } |
jpalmows | 0:fde541752721 | 21 | |
jpalmows | 0:fde541752721 | 22 | void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) // Mod |
jpalmows | 0:fde541752721 | 23 | { |
jpalmows | 0:fde541752721 | 24 | ble.startAdvertising(); |
jpalmows | 0:fde541752721 | 25 | } |
jpalmows | 0:fde541752721 | 26 | |
jpalmows | 0:fde541752721 | 27 | void timeoutCallback(const Gap::TimeoutSource_t source) |
jpalmows | 0:fde541752721 | 28 | { |
jpalmows | 0:fde541752721 | 29 | ble.startAdvertising(); |
jpalmows | 0:fde541752721 | 30 | } |
jpalmows | 0:fde541752721 | 31 | |
jpalmows | 0:fde541752721 | 32 | int main() |
jpalmows | 0:fde541752721 | 33 | { |
jpalmows | 0:fde541752721 | 34 | ble.init(); |
jpalmows | 0:fde541752721 | 35 | |
jpalmows | 0:fde541752721 | 36 | while(1) { |
jpalmows | 0:fde541752721 | 37 | //reading Temprature |
jpalmows | 0:fde541752721 | 38 | float temp = ark.getTemp(); |
jpalmows | 0:fde541752721 | 39 | // int tempData = floor(temp); |
jpalmows | 0:fde541752721 | 40 | // AdvData[1] = tempData; |
jpalmows | 0:fde541752721 | 41 | |
jpalmows | 0:fde541752721 | 42 | //reading Gyrometer readings |
jpalmows | 0:fde541752721 | 43 | float gyro[3]; |
jpalmows | 0:fde541752721 | 44 | ark.getGyro(gyro); |
jpalmows | 0:fde541752721 | 45 | |
jpalmows | 0:fde541752721 | 46 | |
jpalmows | 0:fde541752721 | 47 | float* inputAddress = &gyro[0]; |
jpalmows | 0:fde541752721 | 48 | float* inputAddress2 = &gyro[1]; |
jpalmows | 0:fde541752721 | 49 | float* inputAddress3 = &gyro[2]; |
jpalmows | 0:fde541752721 | 50 | // float* inputAddress = &input; |
jpalmows | 0:fde541752721 | 51 | long int* ptr = (long int*)inputAddress; |
jpalmows | 0:fde541752721 | 52 | long int* ptr2 = (long int*)inputAddress2; |
jpalmows | 0:fde541752721 | 53 | long int* ptr3 = (long int*)inputAddress3; |
jpalmows | 0:fde541752721 | 54 | |
jpalmows | 0:fde541752721 | 55 | // uint32_t typeCastedx = (uint32_t)x; |
jpalmows | 0:fde541752721 | 56 | //int gyroData1 = floor(gyro[0]*1000); |
jpalmows | 0:fde541752721 | 57 | AdvData[0] = *ptr >> 24; |
jpalmows | 0:fde541752721 | 58 | AdvData[1] = *ptr >> 16; |
jpalmows | 0:fde541752721 | 59 | AdvData[2] = *ptr >> 8; |
jpalmows | 0:fde541752721 | 60 | AdvData[3] = *ptr; |
jpalmows | 0:fde541752721 | 61 | |
jpalmows | 0:fde541752721 | 62 | AdvData[4] = *ptr2 >> 24; |
jpalmows | 0:fde541752721 | 63 | AdvData[5] = *ptr2 >> 16; |
jpalmows | 0:fde541752721 | 64 | AdvData[6] = *ptr2 >> 8; |
jpalmows | 0:fde541752721 | 65 | AdvData[7] = *ptr2; |
jpalmows | 0:fde541752721 | 66 | |
jpalmows | 0:fde541752721 | 67 | AdvData[8] = *ptr3 >> 24; |
jpalmows | 0:fde541752721 | 68 | AdvData[9] = *ptr3 >> 16; |
jpalmows | 0:fde541752721 | 69 | AdvData[10] = *ptr3 >> 8; |
jpalmows | 0:fde541752721 | 70 | AdvData[11] = *ptr3; |
jpalmows | 0:fde541752721 | 71 | // int gyroData2 = floor(gyro[1]*1000); |
jpalmows | 0:fde541752721 | 72 | // uint8_t gyroData2 = gyro[1]; |
jpalmows | 0:fde541752721 | 73 | // AdvData[2] = gyroData2; |
jpalmows | 0:fde541752721 | 74 | // int gyroData3 = floor(gyro[2]*1000); |
jpalmows | 0:fde541752721 | 75 | // uint8_t gyroData3 = gyro[2]; |
jpalmows | 0:fde541752721 | 76 | // AdvData[3] = gyroData3; |
jpalmows | 0:fde541752721 | 77 | |
jpalmows | 0:fde541752721 | 78 | //reading Acclerometer readings |
jpalmows | 0:fde541752721 | 79 | float acce[3]; |
jpalmows | 0:fde541752721 | 80 | ark.getAccelero(acce); |
jpalmows | 0:fde541752721 | 81 | int acceData1 = floor(acce[0]*1000); |
jpalmows | 0:fde541752721 | 82 | // AdvData[5] = acceData1; |
jpalmows | 0:fde541752721 | 83 | int acceData2 = floor(acce[1]*1000); |
jpalmows | 0:fde541752721 | 84 | // AdvData[6] = acceData2; |
jpalmows | 0:fde541752721 | 85 | int acceData3 = floor(acce[2]*1000); |
jpalmows | 0:fde541752721 | 86 | // AdvData[7] = acceData3; |
jpalmows | 0:fde541752721 | 87 | |
jpalmows | 0:fde541752721 | 88 | wait(0.1); |
jpalmows | 0:fde541752721 | 89 | |
jpalmows | 0:fde541752721 | 90 | ble.setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED); |
jpalmows | 0:fde541752721 | 91 | ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */ |
jpalmows | 0:fde541752721 | 92 | ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, AdvData, sizeof(AdvData)); |
jpalmows | 0:fde541752721 | 93 | ble.startAdvertising(); |
jpalmows | 0:fde541752721 | 94 | |
jpalmows | 0:fde541752721 | 95 | |
jpalmows | 0:fde541752721 | 96 | /* SpinWait for initialization to complete. This is necessary because the |
jpalmows | 0:fde541752721 | 97 | * BLE object is used in the main loop below. */ |
jpalmows | 0:fde541752721 | 98 | while (ble.hasInitialized() == false) { |
jpalmows | 0:fde541752721 | 99 | /* spin loop */ |
jpalmows | 0:fde541752721 | 100 | } |
jpalmows | 0:fde541752721 | 101 | |
jpalmows | 0:fde541752721 | 102 | |
jpalmows | 0:fde541752721 | 103 | } |
jpalmows | 0:fde541752721 | 104 | |
jpalmows | 0:fde541752721 | 105 | } |