Developers_of_anti_slip_compensator / Mbed 2 deprecated WIPV

Dependencies:   CURRENT_CONTROL IIR LSM9DS0 MEDIAN_FILTER PID QEI RF24 SENSOR_FUSION mbed

Committer:
adam_z
Date:
Thu Apr 21 08:50:02 2016 +0000
Revision:
1:ddc39900f9b8
Parent:
0:150bb4605023
Child:
2:53a942d1b1e5
Pwm output ok;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adam_z 0:150bb4605023 1 #include "mbed.h"
adam_z 0:150bb4605023 2 #include "PID.h"
adam_z 0:150bb4605023 3 #include "LSM9DS0.h"
adam_z 0:150bb4605023 4 #include "QEI.h"
adam_z 0:150bb4605023 5
adam_z 0:150bb4605023 6 #define Ts 0.001
adam_z 0:150bb4605023 7
adam_z 0:150bb4605023 8 LSM9DS0 sensor(SPI_MODE, D9, D6);
adam_z 0:150bb4605023 9 Serial pc(SERIAL_TX, SERIAL_RX);
adam_z 0:150bb4605023 10
adam_z 0:150bb4605023 11 Ticker WIPVTimer;
adam_z 0:150bb4605023 12 void WIPVTimerInterrupt();
adam_z 0:150bb4605023 13
adam_z 1:ddc39900f9b8 14 PwmOut M1C1(D7);
adam_z 1:ddc39900f9b8 15 PwmOut M1C2(D11);
adam_z 1:ddc39900f9b8 16 PwmOut M2C1(D8);
adam_z 1:ddc39900f9b8 17 PwmOut M2C2(A3);
adam_z 1:ddc39900f9b8 18
adam_z 0:150bb4605023 19 DigitalOut led1(LED1);
adam_z 0:150bb4605023 20
adam_z 0:150bb4605023 21 int main()
adam_z 0:150bb4605023 22 {
adam_z 0:150bb4605023 23 //float abias[3], gbias[3];
adam_z 0:150bb4605023 24
adam_z 0:150bb4605023 25 pc.baud(115200);
adam_z 0:150bb4605023 26 if( sensor.begin() != 0 ) {
adam_z 0:150bb4605023 27 pc.printf("Problem starting the sensor with CS @ Pin D6.\r\n");
adam_z 0:150bb4605023 28 } else {
adam_z 0:150bb4605023 29 pc.printf("Sensor with CS @ Pin D9&D6 started.\r\n");
adam_z 0:150bb4605023 30 }
adam_z 0:150bb4605023 31 //sensor.calLSM9DS0(gbias, abias);
adam_z 0:150bb4605023 32 sensor.setGyroOffset(38,-24,-106);
adam_z 0:150bb4605023 33 sensor.setAccelOffset(-793,-511,300);
adam_z 0:150bb4605023 34
adam_z 1:ddc39900f9b8 35 M1C1.period_us(50);
adam_z 1:ddc39900f9b8 36 M1C1.write(0.7);
adam_z 1:ddc39900f9b8 37 M2C1.period_us(50);
adam_z 1:ddc39900f9b8 38 M2C1.write(0.7);
adam_z 1:ddc39900f9b8 39 TIM1->CCER |= 4; //enable ch1 complimentary output
adam_z 1:ddc39900f9b8 40 TIM1->CCER |= 64;//enable ch1 complimentary output
adam_z 1:ddc39900f9b8 41
adam_z 1:ddc39900f9b8 42
adam_z 0:150bb4605023 43 WIPVTimer.attach_us(WIPVTimerInterrupt, 1000.0);
adam_z 0:150bb4605023 44 while(true) {}
adam_z 0:150bb4605023 45 }
adam_z 0:150bb4605023 46
adam_z 0:150bb4605023 47
adam_z 0:150bb4605023 48 void WIPVTimerInterrupt()
adam_z 0:150bb4605023 49 {
adam_z 0:150bb4605023 50
adam_z 0:150bb4605023 51 /*
adam_z 0:150bb4605023 52 int16_t data_array[6];
adam_z 0:150bb4605023 53
adam_z 0:150bb4605023 54 data_array[0] = sensor.readRawAccelX();
adam_z 0:150bb4605023 55 data_array[1] = sensor.readRawAccelY();
adam_z 0:150bb4605023 56 data_array[2] = sensor.readRawAccelZ();
adam_z 0:150bb4605023 57 data_array[3] = sensor.readRawGyroX();
adam_z 0:150bb4605023 58 data_array[4] = sensor.readRawGyroY();
adam_z 0:150bb4605023 59 data_array[5] = sensor.readRawGyroZ();
adam_z 0:150bb4605023 60
adam_z 0:150bb4605023 61 pc.printf("%d, ", data_array[0]);
adam_z 0:150bb4605023 62 pc.printf("%d, ", data_array[1]);
adam_z 0:150bb4605023 63 pc.printf("%d, ", data_array[2]);
adam_z 0:150bb4605023 64 pc.printf("%d, ", data_array[3]);
adam_z 0:150bb4605023 65 pc.printf("%d, ", data_array[4]);
adam_z 0:150bb4605023 66 pc.printf("%d;\r\n ", data_array[5]);
adam_z 0:150bb4605023 67 */
adam_z 0:150bb4605023 68
adam_z 0:150bb4605023 69
adam_z 0:150bb4605023 70 float data_array[6];
adam_z 0:150bb4605023 71 data_array[0] = sensor.readFloatAccelX();
adam_z 0:150bb4605023 72 data_array[1] = sensor.readFloatAccelY();
adam_z 0:150bb4605023 73 data_array[2] = sensor.readFloatAccelZ();
adam_z 0:150bb4605023 74 data_array[3] = sensor.readFloatGyroX();
adam_z 0:150bb4605023 75 data_array[4] = sensor.readFloatGyroY();
adam_z 0:150bb4605023 76 data_array[5] = sensor.readFloatGyroZ();
adam_z 0:150bb4605023 77 sensor.complementaryFilter(data_array, Ts);
adam_z 0:150bb4605023 78
adam_z 0:150bb4605023 79 pc.printf("%5.4f, ", sensor.pitch);
adam_z 0:150bb4605023 80 pc.printf("%5.4f ", sensor.roll);
adam_z 0:150bb4605023 81 pc.printf("%5.4f, ", data_array[0]);
adam_z 0:150bb4605023 82 pc.printf("%5.4f, ", data_array[1]);
adam_z 0:150bb4605023 83 pc.printf("%5.4f ", data_array[2]);
adam_z 0:150bb4605023 84 pc.printf("%5.4f, ", data_array[3]);
adam_z 0:150bb4605023 85 pc.printf("%5.4f, ", data_array[4]);
adam_z 0:150bb4605023 86 pc.printf("%5.4f;\r\n", data_array[5]);
adam_z 0:150bb4605023 87
adam_z 0:150bb4605023 88
adam_z 0:150bb4605023 89
adam_z 0:150bb4605023 90 led1 = !led1;
adam_z 0:150bb4605023 91
adam_z 0:150bb4605023 92 }