Use hexiwear as a GPSIMU-AHRS for Nikon DSLR cameras
Dependencies: FXOS8700CQ FXAS21000 MBed_Adafruit-GPS-Library Hexi_OLED_SSD1351 Hexi_KW40Z Madgwick
Fork of Hexi_Blinky_Example by
main.cpp@14:9885c8536437, 2016-08-13 (annotated)
- Committer:
- whatnick
- Date:
- Sat Aug 13 23:08:18 2016 +0000
- Revision:
- 14:9885c8536437
- Parent:
- 4:81cea7a352b0
- Child:
- 15:b5a3e22d706b
Read hexiwear ACC-MAG
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dan | 0:7dec7e9ac085 | 1 | #include "mbed.h" |
whatnick | 14:9885c8536437 | 2 | #include "FXOS8700Q.h" |
whatnick | 14:9885c8536437 | 3 | |
whatnick | 14:9885c8536437 | 4 | DigitalOut myled(LED3); |
whatnick | 14:9885c8536437 | 5 | Serial gps(PTD3,PTD2); |
whatnick | 14:9885c8536437 | 6 | Serial pc(USBTX, USBRX); |
dan | 0:7dec7e9ac085 | 7 | |
whatnick | 14:9885c8536437 | 8 | FXOS8700Q_acc acc( PTC11, PTC10, FXOS8700CQ_SLAVE_ADDR0); // Proper Ports and I2C Address for Hexiwear |
whatnick | 14:9885c8536437 | 9 | FXOS8700Q_mag mag( PTC11, PTC10, FXOS8700CQ_SLAVE_ADDR0); // Proper Ports and I2C Address for Hexiwear |
whatnick | 14:9885c8536437 | 10 | MotionSensorDataUnits mag_data; |
whatnick | 14:9885c8536437 | 11 | MotionSensorDataUnits acc_data; |
whatnick | 14:9885c8536437 | 12 | |
whatnick | 14:9885c8536437 | 13 | MotionSensorDataCounts mag_raw; |
whatnick | 14:9885c8536437 | 14 | MotionSensorDataCounts acc_raw; |
dan | 0:7dec7e9ac085 | 15 | |
dan | 0:7dec7e9ac085 | 16 | int main() { |
whatnick | 14:9885c8536437 | 17 | float faX, faY, faZ; |
whatnick | 14:9885c8536437 | 18 | float fmX, fmY, fmZ; |
whatnick | 14:9885c8536437 | 19 | int16_t raX, raY, raZ; |
whatnick | 14:9885c8536437 | 20 | int16_t rmX, rmY, rmZ; |
whatnick | 14:9885c8536437 | 21 | acc.enable(); |
whatnick | 14:9885c8536437 | 22 | pc.printf("\r\n\nFXOS8700Q Who Am I= %X\r\n", acc.whoAmI()); |
whatnick | 14:9885c8536437 | 23 | while (true) { |
whatnick | 14:9885c8536437 | 24 | acc.getAxis(acc_data); |
whatnick | 14:9885c8536437 | 25 | mag.getAxis(mag_data); |
whatnick | 14:9885c8536437 | 26 | pc.printf("FXOS8700Q ACC: X=%1.4f Y=%1.4f Z=%1.4f ", acc_data.x, acc_data.y, acc_data.z); |
whatnick | 14:9885c8536437 | 27 | pc.printf(" MAG: X=%4.1f Y=%4.1f Z=%4.1f\r\n", mag_data.x, mag_data.y, mag_data.z); |
whatnick | 14:9885c8536437 | 28 | acc.getX(&faX); |
whatnick | 14:9885c8536437 | 29 | acc.getY(&faY); |
whatnick | 14:9885c8536437 | 30 | acc.getZ(&faZ); |
whatnick | 14:9885c8536437 | 31 | mag.getX(&fmX); |
whatnick | 14:9885c8536437 | 32 | mag.getY(&fmY); |
whatnick | 14:9885c8536437 | 33 | mag.getZ(&fmZ); |
whatnick | 14:9885c8536437 | 34 | pc.printf("FXOS8700Q ACC: X=%1.4f Y=%1.4f Z=%1.4f ", faX, faY, faZ); |
whatnick | 14:9885c8536437 | 35 | pc.printf(" MAG: X=%4.1f Y=%4.1f Z=%4.1f\r\n", fmX, fmY, fmZ); |
whatnick | 14:9885c8536437 | 36 | acc.getAxis(acc_raw); |
whatnick | 14:9885c8536437 | 37 | mag.getAxis(mag_raw); |
whatnick | 14:9885c8536437 | 38 | pc.printf("FXOS8700Q ACC: X=%d Y=%d Z=%d ", acc_raw.x, acc_raw.y, acc_raw.z); |
whatnick | 14:9885c8536437 | 39 | pc.printf(" MAG: X=%d Y=%d Z=%d\r\n", mag_raw.x, mag_raw.y, mag_raw.z); |
whatnick | 14:9885c8536437 | 40 | acc.getX(&raX); |
whatnick | 14:9885c8536437 | 41 | acc.getY(&raY); |
whatnick | 14:9885c8536437 | 42 | acc.getZ(&raZ); |
whatnick | 14:9885c8536437 | 43 | mag.getX(&rmX); |
whatnick | 14:9885c8536437 | 44 | mag.getY(&rmY); |
whatnick | 14:9885c8536437 | 45 | mag.getZ(&rmZ); |
whatnick | 14:9885c8536437 | 46 | pc.printf("FXOS8700Q ACC: X=%d Y=%d Z=%d ", raX, raY, raZ); |
whatnick | 14:9885c8536437 | 47 | pc.printf(" MAG: X=%d Y=%d Z=%d\r\n\n", rmX, rmY, rmZ); |
whatnick | 14:9885c8536437 | 48 | wait(1.0); |
stevep | 4:81cea7a352b0 | 49 | } |
dan | 0:7dec7e9ac085 | 50 | } |