~

Dependencies:   4DGL-uLCD-SE SDFileSystem

Committer:
fkhan39
Date:
Mon Sep 26 15:17:41 2016 +0000
Revision:
6:708e878d4374
Parent:
5:151b0fa1fb44
Child:
7:1a21d8290cf1
added ulcd and imu code;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fkhan39 0:570683b2d0c9 1 #include "mbed.h"
fkhan39 6:708e878d4374 2 #include "uLCD_4DGL.h"
fkhan39 6:708e878d4374 3 #include "LSM9DS1.h"
fkhan39 0:570683b2d0c9 4
fkhan39 6:708e878d4374 5 DigitalOut myled(LED1);
kswanson31 5:151b0fa1fb44 6 Serial pc(USBTX, USBRX);
fkhan39 6:708e878d4374 7 uLCD_4DGL lcd(p13,p14,p12);
fkhan39 6:708e878d4374 8 int main() {
fkhan39 6:708e878d4374 9 //imu9DS1 imu(p9, p10, 0x6B, 0x1E);
fkhan39 6:708e878d4374 10 LSM9DS1 imu(p9, p10, 0xD6, 0x3C);
fkhan39 6:708e878d4374 11 imu.begin();
fkhan39 6:708e878d4374 12 if (!imu.begin()) {
fkhan39 6:708e878d4374 13 lcd.printf("Failed to communicate with imu9DS1.\n");
fkhan39 6:708e878d4374 14 }
fkhan39 6:708e878d4374 15 imu.calibrate();
fkhan39 6:708e878d4374 16 while(1) {
fkhan39 6:708e878d4374 17 imu.readAccel();
fkhan39 6:708e878d4374 18 imu.readMag();
fkhan39 6:708e878d4374 19 imu.readGyro();
fkhan39 6:708e878d4374 20
fkhan39 6:708e878d4374 21 //lcd.printf("%d %d %d %d %d %d %d %d %d\n\r", imu.calcGyro(imu.gx), imu.calcGyro(imu.gy), imu.calcGyro(imu.gz), imu.ax, imu.ay, imu.az, imu.mx, imu.my, imu.mz);
fkhan39 6:708e878d4374 22 //lcd.printf("%d %d %d\n\r", imu.calcGyro(imu.gx), imu.calcGyro(imu.gy), imu.calcGyro(imu.gz));
fkhan39 6:708e878d4374 23 //lcd.printf("gyro: %d %d %d\n\r", imu.gx, imu.gy, imu.gz);
fkhan39 6:708e878d4374 24 lcd.printf("accel: %d %d %d\n\r", imu.calcAccel(imu.ax), imu.calcAccel(imu.ay), imu.calcAccel(imu.az));
fkhan39 6:708e878d4374 25 //lcd.printf("mag: %d %d %d\n\n\r", imu.mx, imu.my, imu.mz);
fkhan39 6:708e878d4374 26 lcd.circle(64, 64, 10, 0xD3D3D3);
fkhan39 6:708e878d4374 27 lcd.filled_circle(64, 64, 8, WHITE);
fkhan39 6:708e878d4374 28 wait(.05);
fkhan39 6:708e878d4374 29 }
fkhan39 6:708e878d4374 30 }
kswanson31 5:151b0fa1fb44 31
fkhan39 6:708e878d4374 32 // serial com, print statements sent to lcd now
kswanson31 5:151b0fa1fb44 33 /* part 1
kswanson31 5:151b0fa1fb44 34 AnalogOut aout(p18);
kswanson31 5:151b0fa1fb44 35 AnalogIn ain(p15);
kswanson31 5:151b0fa1fb44 36 DigitalOut led1(LED1);
kswanson31 5:151b0fa1fb44 37 DigitalOut led2(LED2);
kswanson31 5:151b0fa1fb44 38 DigitalOut led3(LED3);
kswanson31 5:151b0fa1fb44 39 DigitalOut led4(LED4);
kswanson31 5:151b0fa1fb44 40 */
kswanson31 5:151b0fa1fb44 41
kswanson31 5:151b0fa1fb44 42 /* part 8
fkhan39 4:f5bc5d9a790b 43 BusOut myleds(LED1,LED2,LED3,LED4);
kswanson31 5:151b0fa1fb44 44
fkhan39 4:f5bc5d9a790b 45 class microphone
fkhan39 4:f5bc5d9a790b 46 {
fkhan39 4:f5bc5d9a790b 47 public :
fkhan39 4:f5bc5d9a790b 48 microphone(PinName pin);
fkhan39 4:f5bc5d9a790b 49 float read();
fkhan39 4:f5bc5d9a790b 50 operator float ();
fkhan39 4:f5bc5d9a790b 51 private :
fkhan39 4:f5bc5d9a790b 52 AnalogIn _pin;
fkhan39 4:f5bc5d9a790b 53 };
fkhan39 4:f5bc5d9a790b 54 microphone::microphone (PinName pin):
fkhan39 4:f5bc5d9a790b 55 _pin(pin)
fkhan39 4:f5bc5d9a790b 56 {
fkhan39 4:f5bc5d9a790b 57 }
fkhan39 4:f5bc5d9a790b 58 float microphone::read()
fkhan39 4:f5bc5d9a790b 59 {
fkhan39 4:f5bc5d9a790b 60 return _pin.read();
fkhan39 4:f5bc5d9a790b 61 }
fkhan39 4:f5bc5d9a790b 62 inline microphone::operator float ()
fkhan39 4:f5bc5d9a790b 63 {
fkhan39 4:f5bc5d9a790b 64 return _pin.read();
fkhan39 4:f5bc5d9a790b 65 }
fkhan39 4:f5bc5d9a790b 66
fkhan39 4:f5bc5d9a790b 67 microphone mymicrophone(p16);
kswanson31 5:151b0fa1fb44 68 */
fkhan39 0:570683b2d0c9 69
kswanson31 5:151b0fa1fb44 70 /* part 1
fkhan39 1:4ed94566512a 71 const double pi = 3.141592653589793238462;
fkhan39 1:4ed94566512a 72 const double amplitude = 1.0f;
fkhan39 1:4ed94566512a 73 const double offset = 65535/2; // 0xFFFF/2
fkhan39 1:4ed94566512a 74 double rads = 0.0;
fkhan39 1:4ed94566512a 75 uint16_t sample = 0;
kswanson31 5:151b0fa1fb44 76 */
kswanson31 3:99acbebbed6c 77
kswanson31 5:151b0fa1fb44 78 // while(1) {
kswanson31 5:151b0fa1fb44 79 //
kswanson31 5:151b0fa1fb44 80 // /* part 1
kswanson31 5:151b0fa1fb44 81 //
kswanson31 5:151b0fa1fb44 82 // // analog out
kswanson31 5:151b0fa1fb44 83 // for (int i = 0; i < 720; i++) {
kswanson31 5:151b0fa1fb44 84 // rads = (pi * i) / 180.0f;
kswanson31 5:151b0fa1fb44 85 // sample = (uint16_t)(amplitude * (offset * (cos(rads + pi))) + offset);
kswanson31 5:151b0fa1fb44 86 // aout.write_u16(sample);
kswanson31 5:151b0fa1fb44 87 // }
kswanson31 5:151b0fa1fb44 88 //
kswanson31 5:151b0fa1fb44 89 // // analog in
kswanson31 5:151b0fa1fb44 90 // led1 = (ain > 0.2f) ? 1 : 0;
kswanson31 5:151b0fa1fb44 91 // led2 = (ain > 0.4f) ? 1 : 0;
fkhan39 6:708e878d4374 92 // led3 = (ain > 0.6f) ? 1 : 0;
kswanson31 5:151b0fa1fb44 93 // led4 = (ain > 0.8f) ? 1 : 0;
kswanson31 5:151b0fa1fb44 94 // wait(.01);
kswanson31 5:151b0fa1fb44 95 // */
kswanson31 5:151b0fa1fb44 96 //
kswanson31 5:151b0fa1fb44 97 // /* part 8
kswanson31 5:151b0fa1fb44 98 // //read in, subtract 0.67 DC bias, take absolute value, and scale up .1Vpp to 15 for builtin LED display
kswanson31 5:151b0fa1fb44 99 // myleds = int(abs((mymicrophone - (0.67/3.3)))*500.0);
kswanson31 5:151b0fa1fb44 100 // //Use an 8kHz audio sample rate (phone quality audio);
kswanson31 5:151b0fa1fb44 101 // wait(1.0/8000.0);
kswanson31 5:151b0fa1fb44 102 // */
fkhan39 6:708e878d4374 103 // }