Lab2_part2&3&4
Dependencies: 4DGL-uLCD-SE LSM9DS0 mbed
Fork of 4180_LSM9DS0_lab by
Diff: main.cpp
- Revision:
- 8:1fae20911dbc
- Parent:
- 7:8c458123a665
diff -r 8c458123a665 -r 1fae20911dbc main.cpp --- a/main.cpp Sat Sep 05 19:38:13 2015 +0000 +++ b/main.cpp Sat Nov 28 00:41:51 2015 +0000 @@ -6,22 +6,22 @@ #include "uLCD_4DGL.h" // uncomment this line to enable the uLCD for Part 4 of the lab -#define PART_4 +//#define PART_4 // SDO_XM and SDO_G are pulled up, so our addresses are: #define LSM9DS0_XM_ADDR 0x1D // Would be 0x1E if SDO_XM is LOW #define LSM9DS0_G_ADDR 0x6B // Would be 0x6A if SDO_G is LOW // refresh time. set to 500 for part 2 and 50 for part 4 -#define REFRESH_TIME_MS 50 +#define REFRESH_TIME_MS 500 // Verify that the pin assignments below match your breadboard -LSM9DS0 imu(p9, p10, LSM9DS0_G_ADDR, LSM9DS0_XM_ADDR); +LSM9DS0 imu(p28, p27, LSM9DS0_G_ADDR, LSM9DS0_XM_ADDR); Serial pc(USBTX, USBRX); -#ifdef PART_4 -uLCD_4DGL lcd(p28, p27, p30); -#endif +//#ifdef PART_4 +//uLCD_4DGL lcd(p28, p27, p30); +//#endif //Init Serial port and LSM9DS0 chip void setup() @@ -46,11 +46,11 @@ { setup(); //Setup sensor and Serial pc.printf("------ LSM0DS0 Demo -----------\n"); - lcd.cls(); - lcd.circle(64, 64, 63, WHITE); - float fx = 64.0, fy = 64.0; - int x = 64, y = 64, radius = 4; - float vx, vy; + //lcd.cls(); + + //float fx = 64.0, fy = 64.0; + //int x = 64, y = 64, radius = 4; + //float vx, vy; while (true) { @@ -63,32 +63,35 @@ // Part 2 read compass heading, accelerometer data, and temperature // and print it to the USB serial port - imu.readGyro(); - imu.readMag(); + //imu.readGyro(); + //imu.readMag(); imu.readAccel(); - float heading = imu.calcHeading(); //calculate compass heading - imu.readTemp(); + //float heading = imu.calcHeading(); //calculate compass heading + //imu.readTemp(); //pc.printf("Compass heading: %2f\n", heading); - //pc.printf("Accelerometer data: %2f, %2f, %2f\n", imu.ax, imu.ay, imu.az); + pc.printf("Accelerometer data: %2f, %2f, %2f\n", imu.ax, imu.ay, imu.az); //pc.printf("Temperature in Fahr: %3.2f\n", imu.temperature_f); //Part3 display through real serial COM //pc.printf("C: %2f\n", heading); - //pc.printf("A: %2f, %2f, %2f\n", imu.ax, imu.ay, imu.az); + // pc.printf("A: %2f, %2f, %2f\n", imu.ax, imu.ay, imu.az); //pc.printf("T: %3.2f\n", imu.temperature_f); //Part4 display bubble level on the uLCD - lcd.filled_circle(x, y, radius, RED); + /*lcd.filled_circle(x, y, radius, RED); wait(0.5); - vx = imu.ax * 58; - vy = imu.ay * 58; + vx = imu.ax * 64+60; + vy = imu.ay * (-64)+60; lcd.filled_circle(x, y, radius, BLACK); - fx = 64 - vx; - fy = 64 + vy; + //fx = 64 - vx; + //fy = 64 + vy; + fx = vx; + fy = vy; x = int(fx); y = int(fy); + lcd.circle(64, 64, 6, WHITE);*/ // wait_ms(REFRESH_TIME_MS);