ECE 4180 Lab 2 Part 3

Dependencies:   4DGL-uLCD-SE LSM9DS1_Library_cal mbed

Fork of uLCD144G2_demo by jim hamblen

Committer:
abraha2d
Date:
Tue Oct 09 00:47:15 2018 +0000
Revision:
10:bdf425b0e9fa
Parent:
8:31e63caf37e2
Save point

Who changed what in which revision?

UserRevisionLine numberNew contents of line
4180_1 0:cfcf73272647 1 #include "mbed.h"
abraha2d 10:bdf425b0e9fa 2 #include "LSM9DS1.h"
4180_1 2:75727e89a717 3 #include "uLCD_4DGL.h"
4180_1 0:cfcf73272647 4
abraha2d 10:bdf425b0e9fa 5 #define PI 3.14159
abraha2d 10:bdf425b0e9fa 6
abraha2d 10:bdf425b0e9fa 7 // Earth's magnetic field varies by location. Add or subtract
abraha2d 10:bdf425b0e9fa 8 // a declination to get a more accurate heading. Calculate
abraha2d 10:bdf425b0e9fa 9 // your's here:
abraha2d 10:bdf425b0e9fa 10 // http://www.ngdc.noaa.gov/geomag-web/#declination
abraha2d 10:bdf425b0e9fa 11 #define DECLINATION -4.94 // Declination (degrees) in Atlanta,GA.
abraha2d 10:bdf425b0e9fa 12
abraha2d 10:bdf425b0e9fa 13 Serial pc(USBTX, USBRX);
4180_1 2:75727e89a717 14 uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin;
4180_1 0:cfcf73272647 15
4180_1 2:75727e89a717 16 int main()
4180_1 2:75727e89a717 17 {
4180_1 3:454d1f4c8fd7 18 uLCD.cls();
abraha2d 10:bdf425b0e9fa 19 uLCD.printf("Baud rate: 3000000");
abraha2d 10:bdf425b0e9fa 20 uLCD.baudrate(3000000);
abraha2d 10:bdf425b0e9fa 21
abraha2d 10:bdf425b0e9fa 22 uLCD.printf("Calibrating IMU...\n");
abraha2d 10:bdf425b0e9fa 23 LSM9DS1 IMU(p28, p27, 0xD6, 0x3C);
abraha2d 10:bdf425b0e9fa 24 bool success = IMU.begin();
abraha2d 10:bdf425b0e9fa 25 if (!success) {
abraha2d 10:bdf425b0e9fa 26 uLCD.printf("Failed to communicate with LSM9DS1.\n");
4180_1 7:7bd7397ab89f 27 }
abraha2d 10:bdf425b0e9fa 28 IMU.calibrate(1);
4180_1 7:7bd7397ab89f 29
4180_1 7:7bd7397ab89f 30 wait(0.5);
4180_1 3:454d1f4c8fd7 31 uLCD.cls();
4180_1 7:7bd7397ab89f 32 while(1) {
abraha2d 10:bdf425b0e9fa 33 while(!IMU.accelAvailable());
abraha2d 10:bdf425b0e9fa 34 IMU.readAccel();
abraha2d 10:bdf425b0e9fa 35 uLCD.circle(64, 64, 48, GREEN);
abraha2d 10:bdf425b0e9fa 36 uLCD.circle(64, 64, 24, GREEN);
abraha2d 10:bdf425b0e9fa 37 uLCD.filled_circle(64 + IMU.calcAccel(IMU.ax) * -40, 64 + IMU.calcAccel(IMU.ay) * -40, 16, GREEN);
abraha2d 10:bdf425b0e9fa 38 wait(0.05);
abraha2d 10:bdf425b0e9fa 39 uLCD.filled_circle(64 + IMU.calcAccel(IMU.ax) * -40, 64 + IMU.calcAccel(IMU.ay) * -40, 16, BLACK);
4180_1 5:a1ef40ff0f78 40 }
4180_1 6:f752accd632c 41 }