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@16:cd5666b8fa12, 2015-04-23 (annotated)
- Committer:
- kbhagat6
- Date:
- Thu Apr 23 16:06:18 2015 +0000
- Revision:
- 16:cd5666b8fa12
- Parent:
- 14:5e5994418e97
updated sd card functionalities
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kbhagat6 | 0:437ae08befe3 | 1 | #include "mbed.h" |
kbhagat6 | 0:437ae08befe3 | 2 | #include "glibr.h" |
kbhagat6 | 11:ea43b0b83222 | 3 | #include "SDFileSystem.h" |
kbhagat6 | 11:ea43b0b83222 | 4 | #include "wave_player.h" |
kbhagat6 | 10:e8adab2fb829 | 5 | |
kbhagat6 | 12:63c81930b5d9 | 6 | glibr GSensor(p9,p10); |
kbhagat6 | 11:ea43b0b83222 | 7 | SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card |
kbhagat6 | 11:ea43b0b83222 | 8 | AnalogOut DACout(p18); |
kbhagat6 | 11:ea43b0b83222 | 9 | wave_player waver(&DACout); |
kbhagat6 | 10:e8adab2fb829 | 10 | int isr_flag = 0; |
kbhagat6 | 10:e8adab2fb829 | 11 | DigitalOut myled(LED1); |
kbhagat6 | 10:e8adab2fb829 | 12 | //InterruptIn interrupt(p11); |
kbhagat6 | 0:437ae08befe3 | 13 | Serial pc(USBTX, USBRX); |
kbhagat6 | 10:e8adab2fb829 | 14 | bool ret; |
kbhagat6 | 10:e8adab2fb829 | 15 | int val; |
kbhagat6 | 0:437ae08befe3 | 16 | |
kbhagat6 | 10:e8adab2fb829 | 17 | int main() |
kbhagat6 | 10:e8adab2fb829 | 18 | { |
kbhagat6 | 10:e8adab2fb829 | 19 | myled = 0; |
kbhagat6 | 10:e8adab2fb829 | 20 | ret = 0; |
kbhagat6 | 10:e8adab2fb829 | 21 | val = 0; |
kbhagat6 | 12:63c81930b5d9 | 22 | if ( GSensor.ginit() ) { |
kbhagat6 | 10:e8adab2fb829 | 23 | pc.printf("APDS-9960 initialization complete\n\r"); |
kbhagat6 | 10:e8adab2fb829 | 24 | } else { |
kbhagat6 | 10:e8adab2fb829 | 25 | pc.printf("Something went wrong during APDS-9960 init\n\r"); |
kbhagat6 | 10:e8adab2fb829 | 26 | } |
kbhagat6 | 0:437ae08befe3 | 27 | |
kbhagat6 | 10:e8adab2fb829 | 28 | // Start running the APDS-9960 gesture sensor engine |
kbhagat6 | 12:63c81930b5d9 | 29 | if ( GSensor.enableGestureSensor(true) ) { |
kbhagat6 | 10:e8adab2fb829 | 30 | pc.printf("Gesture sensor is now running\n\r"); |
kbhagat6 | 10:e8adab2fb829 | 31 | } else { |
kbhagat6 | 10:e8adab2fb829 | 32 | pc.printf("Something went wrong during gesture sensor init!\n\r"); |
kbhagat6 | 10:e8adab2fb829 | 33 | } |
kbhagat6 | 0:437ae08befe3 | 34 | |
kbhagat6 | 11:ea43b0b83222 | 35 | FILE *Up; |
kbhagat6 | 11:ea43b0b83222 | 36 | FILE *Down; |
kbhagat6 | 11:ea43b0b83222 | 37 | FILE *Left; |
kbhagat6 | 11:ea43b0b83222 | 38 | FILE *Right; |
kbhagat6 | 11:ea43b0b83222 | 39 | FILE *Far; |
kbhagat6 | 11:ea43b0b83222 | 40 | FILE *Near; |
kbhagat6 | 11:ea43b0b83222 | 41 | |
kbhagat6 | 11:ea43b0b83222 | 42 | // waver.play(wave_file); |
kbhagat6 | 10:e8adab2fb829 | 43 | while(1) { |
kbhagat6 | 12:63c81930b5d9 | 44 | /* ret = GSensor.isGestureAvailable(); |
kbhagat6 | 10:e8adab2fb829 | 45 | pc.printf("Is Gesture Available?: %d\n", ret); |
kbhagat6 | 10:e8adab2fb829 | 46 | myled = ret; |
kbhagat6 | 12:63c81930b5d9 | 47 | val = GSensor.readGesture(); |
kbhagat6 | 10:e8adab2fb829 | 48 | */ |
kbhagat6 | 12:63c81930b5d9 | 49 | if ( GSensor.isGestureAvailable() ) { |
kbhagat6 | 12:63c81930b5d9 | 50 | switch ( GSensor.readGesture() ) { |
kbhagat6 | 10:e8adab2fb829 | 51 | case DIR_UP: |
kbhagat6 | 10:e8adab2fb829 | 52 | pc.printf("UP\n"); |
kbhagat6 | 14:5e5994418e97 | 53 | Up=fopen("/sd/up.wav","r"); |
kbhagat6 | 16:cd5666b8fa12 | 54 | if(Up!=NULL){ |
kbhagat6 | 11:ea43b0b83222 | 55 | waver.play(Up); |
kbhagat6 | 16:cd5666b8fa12 | 56 | }else{ pc.printf("Up not open");} |
kbhagat6 | 16:cd5666b8fa12 | 57 | fclose(Up); |
kbhagat6 | 10:e8adab2fb829 | 58 | break; |
kbhagat6 | 10:e8adab2fb829 | 59 | case DIR_DOWN: |
kbhagat6 | 10:e8adab2fb829 | 60 | pc.printf("DOWN\n"); |
kbhagat6 | 14:5e5994418e97 | 61 | Down=fopen("/sd/down.wav","r"); |
kbhagat6 | 16:cd5666b8fa12 | 62 | if(Down!=NULL){ |
kbhagat6 | 11:ea43b0b83222 | 63 | waver.play(Down); |
kbhagat6 | 16:cd5666b8fa12 | 64 | }else{ pc.printf("Down not open");} |
kbhagat6 | 16:cd5666b8fa12 | 65 | fclose(Down); |
kbhagat6 | 10:e8adab2fb829 | 66 | break; |
kbhagat6 | 10:e8adab2fb829 | 67 | case DIR_LEFT: |
kbhagat6 | 10:e8adab2fb829 | 68 | pc.printf("LEFT\n"); |
kbhagat6 | 14:5e5994418e97 | 69 | Left=fopen("/sd/left.wav","r"); |
kbhagat6 | 16:cd5666b8fa12 | 70 | if(Left!=NULL){ |
kbhagat6 | 11:ea43b0b83222 | 71 | waver.play(Left); |
kbhagat6 | 16:cd5666b8fa12 | 72 | }else{pc.printf("Left not open");} |
kbhagat6 | 16:cd5666b8fa12 | 73 | fclose(Left); |
kbhagat6 | 10:e8adab2fb829 | 74 | break; |
kbhagat6 | 10:e8adab2fb829 | 75 | case DIR_RIGHT: |
kbhagat6 | 10:e8adab2fb829 | 76 | pc.printf("RIGHT\n"); |
kbhagat6 | 14:5e5994418e97 | 77 | Right=fopen("/sd/right.wav","r"); |
kbhagat6 | 16:cd5666b8fa12 | 78 | if(Right!=NULL){ |
kbhagat6 | 11:ea43b0b83222 | 79 | waver.play(Right); |
kbhagat6 | 16:cd5666b8fa12 | 80 | }else{pc.printf("Right not open");} |
kbhagat6 | 16:cd5666b8fa12 | 81 | fclose(Right); |
kbhagat6 | 10:e8adab2fb829 | 82 | case DIR_NEAR: |
kbhagat6 | 10:e8adab2fb829 | 83 | pc.printf("NEAR\n"); |
kbhagat6 | 16:cd5666b8fa12 | 84 | Near=fopen("/sd/near.wav","r"); |
kbhagat6 | 16:cd5666b8fa12 | 85 | if(Near!=NULL){ |
kbhagat6 | 11:ea43b0b83222 | 86 | waver.play(Near); |
kbhagat6 | 16:cd5666b8fa12 | 87 | }else{pc.printf("Near not open");} |
kbhagat6 | 16:cd5666b8fa12 | 88 | fclose(Near); |
kbhagat6 | 10:e8adab2fb829 | 89 | break; |
kbhagat6 | 10:e8adab2fb829 | 90 | case DIR_FAR: |
kbhagat6 | 10:e8adab2fb829 | 91 | pc.printf("FAR\n"); |
kbhagat6 | 16:cd5666b8fa12 | 92 | Far=fopen("/sd/far.wav","r"); |
kbhagat6 | 16:cd5666b8fa12 | 93 | if(Far!=NULL){ |
kbhagat6 | 11:ea43b0b83222 | 94 | waver.play(Far); |
kbhagat6 | 16:cd5666b8fa12 | 95 | }else{pc.printf("Far not open");} |
kbhagat6 | 16:cd5666b8fa12 | 96 | fclose(Far); |
kbhagat6 | 10:e8adab2fb829 | 97 | break; |
kbhagat6 | 10:e8adab2fb829 | 98 | default: |
kbhagat6 | 10:e8adab2fb829 | 99 | pc.printf("NONE\n"); |
kbhagat6 | 10:e8adab2fb829 | 100 | } |
kbhagat6 | 10:e8adab2fb829 | 101 | } |
kbhagat6 | 0:437ae08befe3 | 102 | |
kbhagat6 | 11:ea43b0b83222 | 103 | |
kbhagat6 | 11:ea43b0b83222 | 104 | // wait(1); |
kbhagat6 | 10:e8adab2fb829 | 105 | |
kbhagat6 | 10:e8adab2fb829 | 106 | } |
kbhagat6 | 16:cd5666b8fa12 | 107 | |
kbhagat6 | 12:63c81930b5d9 | 108 | |
kbhagat6 | 11:ea43b0b83222 | 109 | |
kbhagat6 | 10:e8adab2fb829 | 110 | } |