test angle measurement LSM6DS3

Dependencies:   ESC IMUfilter LSM6DS3 mbed

Revision:
0:a606f47629c3
Child:
1:0e63617e1965
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jan 17 19:52:07 2018 +0000
@@ -0,0 +1,106 @@
+#include "mbed.h"
+#include "esc.h" 
+#include "LSM6DS3.h"
+#include "IMUfilter.h"
+
+// refresh time. set to 500 for part 2 and 50 for part 4
+#define REFRESH_TIME_MS 1000
+
+const int   LSM6DS3_ADDRESS = 0xD4;
+int PERIOD = 20;
+//
+//float       MOTOR_PRINT; 
+Serial      pc(SERIAL_TX, SERIAL_RX); 
+ESC         MOTOR(PA_8, PERIOD);
+AnalogIn    PRESSURE_SENSOR(PA_0);
+//Ticker      UpdateScreen;
+LSM6DS3     imu(PF_0, PF_1, LSM6DS3_ADDRESS);
+
+//void screenUpdate();
+
+//Init Serial port and LSM6DS3 chip
+void setup()
+{
+    // Use the begin() function to initialize the LSM9DS0 library.
+    // You can either call it with no parameters (the easy way):
+    // SLEEP
+//    uint16_t status = imu.begin(imu.G_SCALE_245DPS, imu.A_SCALE_2G,
+//                                imu.G_POWER_DOWN, imu.A_POWER_DOWN);
+    // LOWEST
+//    uint16_t status = imu.begin(imu.G_SCALE_245DPS, imu.A_SCALE_2G,
+//                                imu.G_ODR_13_BW_0, imu.A_ODR_13);
+    // HIGHEST
+//    uint16_t status = imu.begin(imu.G_SCALE_2000DPS, imu.A_SCALE_8G,
+//                                imu.G_ODR_1660, imu.A_ODR_6660);
+                                
+    uint16_t status = imu.begin(imu.G_SCALE_245DPS, imu.A_SCALE_2G,
+                                imu.G_ODR_1660, imu.A_ODR_6660);
+ 
+    //Make sure communication is working
+    pc.printf("LSM6DS3 WHO_AM_I's returned: 0x%X\r\n", status);
+    pc.printf("Should be 0x69\r\n");
+}
+ 
+int main()
+{
+    MOTOR.setThrottle(0.0); 
+    bool started = false;
+    
+    while (true){
+        
+        if(PRESSURE_SENSOR > 0.9){
+            
+            if (not started){
+                setup();  //Setup sensor and Serial
+                pc.printf("\r\n------ LSM6DS3 Demo -----------\r\n");
+                started=true;
+            }
+ 
+            imu.readTemp();
+            pc.printf("Temp:\r\n");
+            pc.printf("TC: %2f\r\n", imu.temperature_c);
+            pc.printf("TF: %2f\r\n", imu.temperature_f);
+            
+            imu.readAccel();
+            pc.printf("Accel:\r\n");
+            pc.printf("AX: %2f\r\n", imu.ax);
+            pc.printf("AY: %2f\r\n", imu.ay);
+            pc.printf("AZ: %2f\r\n", imu.az);
+     
+            imu.readGyro();
+            pc.printf("Gyro:\r\n");
+            pc.printf("GX: %2f\r\n", imu.gx);
+            pc.printf("GY: %2f\r\n", imu.gy);
+            pc.printf("GZ: %2f\r\n\r\n", imu.gz);
+           
+            wait_ms(REFRESH_TIME_MS);
+        }
+        else {
+            started=false;
+        }
+    }
+}
+
+
+//int main() {
+//    
+//    UpdateScreen.attach(&screenUpdate, 1);
+//    MOTOR.setThrottle(0.0); // motor PWM speed
+//    UpdateScreen.attach(&screenUpdate, 1);
+//    
+//    while(1) {
+//        
+//        
+//        float angle = 0.0;
+//        
+//        MOTOR.setThrottle(angle);
+//        MOTOR_PRINT = MOTOR.getThrottle();
+//        MOTOR.pulse();
+//        wait_ms(PERIOD);
+//
+//    }
+//}
+//
+//void screenUpdate(){
+//    PC.printf("PWM: %f \r\n\n", MOTOR_PRINT);
+//}
\ No newline at end of file