Pmod_NAV SPI
Dependencies: mbed LSM9DS1 MadgwickAHRS
main.cpp
- Committer:
- 771_8bit
- Date:
- 2019-04-25
- Revision:
- 1:50b33bd88ea5
- Parent:
- 0:6c187b735281
File content as of revision 1:50b33bd88ea5:
#include "mbed.h" #include "LSM9DS1.h" #include "MadgwickAHRS.h" RawSerial pc(USBTX, USBRX); LSM9DS1 lsm = LSM9DS1(PB_5, PB_4, PB_3,PB_10,PA_8); //mosi,miso,sclk,cs_AG,cs_M Ticker AHRS; Ticker PRINT; DigitalOut myled(LED1); Madgwick filter = Madgwick(); void ahrs(){ filter.update(lsm.gyro_y, lsm.gyro_x, lsm.gyro_z, lsm.accel_y, lsm.accel_x, lsm.accel_z ,lsm.mag_y, lsm.mag_x, lsm.mag_z); } void print(){ printf("roll:%f,pitch:%f,yaw:%f,accel_z:%f,gyro_z:%f,mag_x:%f\r\n", filter.getRoll(),filter.getPitch(),filter.getYaw(),lsm.accel_z, lsm.gyro_z,lsm.mag_x); } int main() { lsm.initSPI(); lsm.initAccel(lsm.LSM9DS1_ACCELRANGE_8G); //2,4,8,16 lsm.initGyro(lsm.LSM9DS1_GYROSCALE_500DPS); //245,500,2000 lsm.initMag(lsm.LSM9DS1_MAGGAIN_4GAUSS); //4,8,12,16 filter.begin(100); // N Hz AHRS.attach_us(&ahrs, 10000); // N us周期 PRINT.attach(&print,1); while(1){ lsm.readGyro(); lsm.readAccel(); lsm.readMag(); wait(0.1); } }