Uses the APDS_9960 Digital Proximity, Ambient Light, RGB and Gesture Sensor library to play detected gesture sounds on a speaker from the SDcard

Dependencies:   mbed SDFileSystem wave_player

main.cpp

Committer:
kbhagat6
Date:
2015-03-11
Revision:
11:ea43b0b83222
Parent:
10:e8adab2fb829
Child:
12:63c81930b5d9

File content as of revision 11:ea43b0b83222:

#include "mbed.h"
#include "glibr.h"
#include "SDFileSystem.h"
#include "wave_player.h"

glibr test(p9,p10);
SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
AnalogOut DACout(p18);
wave_player waver(&DACout);
//SparkFun_APDS9960 apds = SparkFun_APDS9960();
int isr_flag = 0;
DigitalOut myled(LED1);
//InterruptIn interrupt(p11);
Serial pc(USBTX, USBRX);
bool ret;
int val;

int main()
{
    myled = 0;
    ret = 0;
    val = 0;
    if ( test.ginit() ) {
        pc.printf("APDS-9960 initialization complete\n\r");
    } else {
        pc.printf("Something went wrong during APDS-9960 init\n\r");
    }

    // Start running the APDS-9960 gesture sensor engine
    if ( test.enableGestureSensor(true) ) {
        pc.printf("Gesture sensor is now running\n\r");
    } else {
        pc.printf("Something went wrong during gesture sensor init!\n\r");
    }

    FILE *Up;
    FILE *Down;
    FILE *Left;
    FILE *Right;
    FILE *Far;
    FILE *Near;

    Up=fopen("/sd/myMusic/up.wav","r");
    Down=fopen("/sd/myMusic/down.wav","r");
    Left=fopen("/sd/myMusic/left.wav","r");
    Right=fopen("/sd/myMusic/right.wav","r");
    Far=fopen("/sd/myMusic/far.wav","r");
    Near=fopen("/sd/myMusic/near.wav","r");
    //   waver.play(wave_file);
    while(1) {
        /* ret = test.isGestureAvailable();
         pc.printf("Is Gesture Available?: %d\n", ret);
         myled = ret;
         val = test.readGesture();
         */
        if ( test.isGestureAvailable() ) {
            switch ( test.readGesture() ) {
                case DIR_UP:
                    pc.printf("UP\n");
                    waver.play(Up);
                    break;
                case DIR_DOWN:
                    pc.printf("DOWN\n");
                    waver.play(Down);
                    break;
                case DIR_LEFT:
                    pc.printf("LEFT\n");
                    waver.play(Left);
                    break;
                case DIR_RIGHT:
                    pc.printf("RIGHT\n");
                    waver.play(Right);
                    break;
                case DIR_NEAR:
                    pc.printf("NEAR\n");
                    waver.play(Near);
                    break;
                case DIR_FAR:
                    pc.printf("FAR\n");
                    waver.play(Far);
                    break;
                default:
                    pc.printf("NONE\n");
            }
        }


        //   wait(1);

    }
     fclose(Up);
     fclose(Down);
     fclose(Left);
     fclose(Right);
     fclose(Near);
     fclose(Far);
     fclose(Left);
     

}