~

Dependencies:   4DGL-uLCD-SE SDFileSystem

main.cpp

Committer:
fkhan39
Date:
2016-09-26
Revision:
6:708e878d4374
Parent:
5:151b0fa1fb44
Child:
7:1a21d8290cf1

File content as of revision 6:708e878d4374:

#include "mbed.h"
#include "uLCD_4DGL.h"
#include "LSM9DS1.h"

DigitalOut myled(LED1);
Serial pc(USBTX, USBRX);
uLCD_4DGL lcd(p13,p14,p12);
int main() {
    //imu9DS1 imu(p9, p10, 0x6B, 0x1E);
    LSM9DS1 imu(p9, p10, 0xD6, 0x3C);
    imu.begin();
    if (!imu.begin()) {
        lcd.printf("Failed to communicate with imu9DS1.\n");
    }
    imu.calibrate();
    while(1) {
        imu.readAccel();
        imu.readMag();
        imu.readGyro();
        
        //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);
        //lcd.printf("%d %d %d\n\r", imu.calcGyro(imu.gx), imu.calcGyro(imu.gy), imu.calcGyro(imu.gz));
        //lcd.printf("gyro: %d %d %d\n\r", imu.gx, imu.gy, imu.gz);
        lcd.printf("accel: %d %d %d\n\r", imu.calcAccel(imu.ax), imu.calcAccel(imu.ay), imu.calcAccel(imu.az));
        //lcd.printf("mag: %d %d %d\n\n\r", imu.mx, imu.my, imu.mz);
        lcd.circle(64, 64, 10, 0xD3D3D3);
        lcd.filled_circle(64, 64, 8, WHITE);
        wait(.05);
    }
}

// serial com, print statements sent to lcd now
/* part 1
AnalogOut aout(p18);
AnalogIn ain(p15);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
*/

/* part 8
BusOut myleds(LED1,LED2,LED3,LED4);

class microphone
{
public :
    microphone(PinName pin);
    float read();
    operator float ();
private :
    AnalogIn _pin;
};
microphone::microphone (PinName pin):
    _pin(pin)
{
}
float microphone::read()
{
    return _pin.read();
}
inline microphone::operator float ()
{
    return _pin.read();
}
 
microphone mymicrophone(p16);
*/

    /* part 1
    const double pi = 3.141592653589793238462;
    const double amplitude = 1.0f;
    const double offset = 65535/2; // 0xFFFF/2
    double rads = 0.0;
    uint16_t sample = 0;
    */

//    while(1) {
//        
//        /* part 1
//        
//        // analog out 
//        for (int i = 0; i < 720; i++) {
//            rads = (pi * i) / 180.0f;
//            sample = (uint16_t)(amplitude * (offset * (cos(rads + pi))) + offset);
//            aout.write_u16(sample);
//        }
//        
//        // analog in
//        led1 = (ain > 0.2f) ? 1 : 0;
//        led2 = (ain > 0.4f) ? 1 : 0;
    //        led3 = (ain > 0.6f) ? 1 : 0;
//        led4 = (ain > 0.8f) ? 1 : 0;
//        wait(.01);
//        */
//        
//        /* part 8
//        //read in, subtract 0.67 DC bias, take absolute value, and scale up .1Vpp to 15 for builtin LED display
//        myleds = int(abs((mymicrophone - (0.67/3.3)))*500.0);
//        //Use an 8kHz audio sample rate (phone quality audio);
//        wait(1.0/8000.0);
//        */
//    }