PmodNAV test

Dependencies:   mbed LPS25HB_I2C LSM9DS1 UsaPack

main.cpp

Committer:
osaka
Date:
2022-03-19
Revision:
7:4f8b27adc3d1
Parent:
6:26354853df61

File content as of revision 7:4f8b27adc3d1:

#include "mbed.h"
#include "LSM9DS1.h"
#include "LPS.h"

Serial pc(USBTX, USBRX);
//Serial twelite(PE_8, PE_7);

I2C i2c(PB_9, PB_8);
LSM9DS1 lsm(i2c);
LPS lps(i2c);

//test code

int main()
{
    pc.baud(38400);
    //enum gyro_scale gs;
    //gs245 = G_SCALE_245DPS;
    uint16_t reg = lsm.begin(lsm.G_SCALE_245DPS, lsm.A_SCALE_8G);
    //printf("%x\n", reg);
    if (!lps.init()){
        while (1)
        {
            pc.printf("Failed to autodetect pressure sensor!\r\n");
            wait(2);
        };
    }
    lps.enableDefault();
    wait_ms(100);
    while(true)
    {
        lsm.readAccel();
        lsm.readMag();
        lsm.readGyro();
        //printf("%f %f %f %f %f %f %f %f %f\n", lsm.ax, lsm.ay, lsm.az, lsm.gx, lsm.gy, lsm.gz, lsm.mx, lsm.my, lsm.mz);
        //printf("%f %f %f\n", lsm.gx, lsm.gy, lsm.gz);
        //printf("%f %f %f\n", lsm.mx, lsm.my, lsm.mz);
        float pressure = lps.readPressureMillibars();
        float altitude = lps.pressureToAltitudeMeters(pressure);
        float temperature = lps.readTemperatureC();
        //printf("p:%.2f\t mbar\ta:%.2f m\tt:%.2f deg C\r\n",pressure,altitude,temperature);
        pc.printf("%f %f %f %f %f %f %f %f %f %f\r\n", lsm.ax, lsm.ay, lsm.az, lsm.gx, lsm.gy, lsm.gz, lsm.mx, lsm.my, lsm.mz,altitude);
        wait(0.1);
    }
}