Lab 2 Part 3
Dependencies: mbed 4DGL-uLCD-SE LSM9DS1_Library_cal
Revision 2:3d9e0b74f24d, committed 2021-02-11
- Comitter:
- glanier9
- Date:
- Thu Feb 11 16:03:03 2021 +0000
- Parent:
- 1:de9832e45f61
- Commit message:
- Final version
Changed in this revision
4DGL-uLCD-SE.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r de9832e45f61 -r 3d9e0b74f24d 4DGL-uLCD-SE.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/4DGL-uLCD-SE.lib Thu Feb 11 16:03:03 2021 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/4180_1/code/4DGL-uLCD-SE/#2cb1845d7681
diff -r de9832e45f61 -r 3d9e0b74f24d main.cpp --- a/main.cpp Mon Feb 01 21:21:21 2021 +0000 +++ b/main.cpp Thu Feb 11 16:03:03 2021 +0000 @@ -1,5 +1,6 @@ #include "mbed.h" #include "LSM9DS1.h" +#include "uLCD_4DGL.h" #define PI 3.14159 // Earth's magnetic field varies by location. Add or subtract // a declination to get a more accurate heading. Calculate @@ -8,7 +9,9 @@ #define DECLINATION -4.94 // Declination (degrees) in Atlanta,GA. DigitalOut myled(LED1); -Serial pc(p27,p28); +Serial pc(USBTX, USBRX); +uLCD_4DGL uLCD(p28,p27,p30); // serial tx, serial rx, reset pin; + // Calculate pitch, roll, and heading. // Pitch/roll calculations taken from this app note: // http://cache.freescale.com/files/sensors/doc/app_note/AN3461.pdf?fpsp=1 @@ -48,13 +51,24 @@ { //LSM9DS1 lol(p9, p10, 0x6B, 0x1E); LSM9DS1 IMU(p9, p10, 0xD6, 0x3C); + uLCD.baudrate(3000000); IMU.begin(); if (!IMU.begin()) { pc.printf("Failed to communicate with LSM9DS1.\n"); } IMU.calibrate(1); IMU.calibrateMag(0); - while(1) { + + uLCD.circle(64,64,62,WHITE); + + while(1) + { + while(!IMU.accelAvailable()); + IMU.readAccel(); + uLCD.filled_circle(64 + 64*IMU.calcAccel(IMU.ax),64 + 64*IMU.calcAccel(IMU.ay),3,RED); + wait(0.1); + uLCD.filled_circle(64 + 64*IMU.calcAccel(IMU.ax),64 + 64*IMU.calcAccel(IMU.ay),3,BLACK); + while(!IMU.tempAvailable()); IMU.readTemp(); while(!IMU.magAvailable(X_AXIS)); @@ -74,6 +88,29 @@ wait(0.5); myled = 0; wait(0.5); + } + +// while(1) { +// while(!IMU.tempAvailable()); +// IMU.readTemp(); +// while(!IMU.magAvailable(X_AXIS)); +// IMU.readMag(); +// while(!IMU.accelAvailable()); +// IMU.readAccel(); +// while(!IMU.gyroAvailable()); +// IMU.readGyro(); +// pc.printf("\nIMU Temperature = %f C\n\r",25.0 + IMU.temperature/16.0); +// pc.printf(" X axis Y axis Z axis\n\r"); +// pc.printf("gyro: %9f %9f %9f in deg/s\n\r", IMU.calcGyro(IMU.gx), IMU.calcGyro(IMU.gy), IMU.calcGyro(IMU.gz)); +// pc.printf("accel: %9f %9f %9f in Gs\n\r", IMU.calcAccel(IMU.ax), IMU.calcAccel(IMU.ay), IMU.calcAccel(IMU.az)); +// pc.printf("mag: %9f %9f %9f in gauss\n\r", IMU.calcMag(IMU.mx), IMU.calcMag(IMU.my), IMU.calcMag(IMU.mz)); +// printAttitude(IMU.calcAccel(IMU.ax), IMU.calcAccel(IMU.ay), IMU.calcAccel(IMU.az), IMU.calcMag(IMU.mx), +// IMU.calcMag(IMU.my), IMU.calcMag(IMU.mz)); +// myled = 1; +// wait(0.5); +// myled = 0; +// wait(0.5); +// } }