Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CURRENT_CONTROL IIR LSM9DS0 MEDIAN_FILTER PID QEI RF24 SENSOR_FUSION mbed
main.cpp
- Committer:
- adam_z
- Date:
- 2016-04-21
- Revision:
- 0:150bb4605023
- Child:
- 1:ddc39900f9b8
File content as of revision 0:150bb4605023:
#include "mbed.h" #include "PID.h" #include "LSM9DS0.h" #include "QEI.h" #define Ts 0.001 LSM9DS0 sensor(SPI_MODE, D9, D6); Serial pc(SERIAL_TX, SERIAL_RX); Ticker WIPVTimer; void WIPVTimerInterrupt(); DigitalOut led1(LED1); int main() { //float abias[3], gbias[3]; pc.baud(115200); if( sensor.begin() != 0 ) { pc.printf("Problem starting the sensor with CS @ Pin D6.\r\n"); } else { pc.printf("Sensor with CS @ Pin D9&D6 started.\r\n"); } //sensor.calLSM9DS0(gbias, abias); sensor.setGyroOffset(38,-24,-106); sensor.setAccelOffset(-793,-511,300); WIPVTimer.attach_us(WIPVTimerInterrupt, 1000.0); while(true) {} } void WIPVTimerInterrupt() { /* int16_t data_array[6]; data_array[0] = sensor.readRawAccelX(); data_array[1] = sensor.readRawAccelY(); data_array[2] = sensor.readRawAccelZ(); data_array[3] = sensor.readRawGyroX(); data_array[4] = sensor.readRawGyroY(); data_array[5] = sensor.readRawGyroZ(); pc.printf("%d, ", data_array[0]); pc.printf("%d, ", data_array[1]); pc.printf("%d, ", data_array[2]); pc.printf("%d, ", data_array[3]); pc.printf("%d, ", data_array[4]); pc.printf("%d;\r\n ", data_array[5]); */ float data_array[6]; data_array[0] = sensor.readFloatAccelX(); data_array[1] = sensor.readFloatAccelY(); data_array[2] = sensor.readFloatAccelZ(); data_array[3] = sensor.readFloatGyroX(); data_array[4] = sensor.readFloatGyroY(); data_array[5] = sensor.readFloatGyroZ(); sensor.complementaryFilter(data_array, Ts); pc.printf("%5.4f, ", sensor.pitch); pc.printf("%5.4f ", sensor.roll); pc.printf("%5.4f, ", data_array[0]); pc.printf("%5.4f, ", data_array[1]); pc.printf("%5.4f ", data_array[2]); pc.printf("%5.4f, ", data_array[3]); pc.printf("%5.4f, ", data_array[4]); pc.printf("%5.4f;\r\n", data_array[5]); led1 = !led1; }