Developers_of_anti_slip_compensator / Mbed 2 deprecated WIPV

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;
        
}