W R / Mbed 2 deprecated 4180_Final_Project_old

Dependencies:   mbed wave_player mbed-rtos 4180Final SDFileSystem

Committer:
William12
Date:
Sun Apr 26 19:18:46 2020 +0000
Revision:
2:6a29bd55d023
Child:
3:927028389e55
included play code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
William12 2:6a29bd55d023 1 #include "mbed.h"
William12 2:6a29bd55d023 2 #include "uLCD_4DGL.h"
William12 2:6a29bd55d023 3 #include "Nav_Switch.h"
William12 2:6a29bd55d023 4 //#include "SDFileSystem.h"
William12 2:6a29bd55d023 5 #include "microphone.h"
William12 2:6a29bd55d023 6 //#include "rtos.h"
William12 2:6a29bd55d023 7
William12 2:6a29bd55d023 8 Nav_Switch myNav(p9, p6, p7, p5, p8); //pin order on Sparkfun breakout
William12 2:6a29bd55d023 9 uLCD_4DGL uLCD(p28, p27, p30); // serial tx, serial rx, reset pin;
William12 2:6a29bd55d023 10 PwmOut myled(LED1);
William12 2:6a29bd55d023 11 //SDFileSystem sd(p11, p12, p13, p10, "sd");
William12 2:6a29bd55d023 12 microphone mymic1(p15);
William12 2:6a29bd55d023 13 AnalogIn pot(p16);
William12 2:6a29bd55d023 14
William12 2:6a29bd55d023 15 int rounds = 3;
William12 2:6a29bd55d023 16 int round_time = 15; //seconds
William12 2:6a29bd55d023 17 int curRound = 1;
William12 2:6a29bd55d023 18 int score1 = 0;
William12 2:6a29bd55d023 19 int score2 = 0;
William12 2:6a29bd55d023 20 int scores1[7] = {0};
William12 2:6a29bd55d023 21 int scores2[7] = {0};
William12 2:6a29bd55d023 22 int curTime = 0;
William12 2:6a29bd55d023 23 int wonRnds1 = 0;
William12 2:6a29bd55d023 24 int wonRnds2 = 0;
William12 2:6a29bd55d023 25 int highScoresArr[10] = {100, 90, 83, 73, 64, 54, 44, 34, 24, 14};
William12 2:6a29bd55d023 26 int s = 0;
William12 2:6a29bd55d023 27 int timer = 0;
William12 2:6a29bd55d023 28 int tick = 0;
William12 2:6a29bd55d023 29
William12 2:6a29bd55d023 30 Timer play_time;
William12 2:6a29bd55d023 31
William12 2:6a29bd55d023 32
William12 2:6a29bd55d023 33 void play_draw(){
William12 2:6a29bd55d023 34 uLCD.background_color(GREEN);
William12 2:6a29bd55d023 35 uLCD.cls();
William12 2:6a29bd55d023 36 uLCD.filled_rectangle(0, 0, 200, 15, RED);
William12 2:6a29bd55d023 37 // header
William12 2:6a29bd55d023 38 uLCD.color(BLACK);
William12 2:6a29bd55d023 39 uLCD.locate(5,0);
William12 2:6a29bd55d023 40 uLCD.text_height(2);
William12 2:6a29bd55d023 41 uLCD.text_width(2);
William12 2:6a29bd55d023 42 uLCD.textbackground_color(RED);
William12 2:6a29bd55d023 43 uLCD.printf("PLAY");
William12 2:6a29bd55d023 44 uLCD.text_height(1);
William12 2:6a29bd55d023 45 uLCD.text_width(1);
William12 2:6a29bd55d023 46 uLCD.locate(14,1);
William12 2:6a29bd55d023 47 uLCD.printf("Rnd%1d", curRound);
William12 2:6a29bd55d023 48 // Scores headers
William12 2:6a29bd55d023 49 uLCD.textbackground_color(GREEN);
William12 2:6a29bd55d023 50 uLCD.color(BLUE);
William12 2:6a29bd55d023 51 uLCD.locate(5,3);
William12 2:6a29bd55d023 52 uLCD.printf("Player 1:");
William12 2:6a29bd55d023 53 uLCD.color(PURPLE);
William12 2:6a29bd55d023 54 uLCD.locate(5,11);
William12 2:6a29bd55d023 55 uLCD.printf("Player 2:");
William12 2:6a29bd55d023 56 // Scores
William12 2:6a29bd55d023 57 uLCD.text_height(4);
William12 2:6a29bd55d023 58 uLCD.text_width(4);
William12 2:6a29bd55d023 59
William12 2:6a29bd55d023 60 }
William12 2:6a29bd55d023 61
William12 2:6a29bd55d023 62 void update_LEDS
William12 2:6a29bd55d023 63
William12 2:6a29bd55d023 64 void play() {
William12 2:6a29bd55d023 65 play_draw();
William12 2:6a29bd55d023 66 play_time.reset();
William12 2:6a29bd55d023 67 play_time.start();
William12 2:6a29bd55d023 68 while (play_time.read() < round_time*1000) {
William12 2:6a29bd55d023 69 if (myNav.fire()) { //open pause menu
William12 2:6a29bd55d023 70 uLCD.filled_rectangle(60, 68, 65, 82, GREEN); //the pause draw functions shoudl be contained within pause
William12 2:6a29bd55d023 71 uLCD.filled_rectangle(70, 68, 75, 82, GREEN);
William12 2:6a29bd55d023 72 wait(.1);
William12 2:6a29bd55d023 73 //pause();
William12 2:6a29bd55d023 74 }
William12 2:6a29bd55d023 75
William12 2:6a29bd55d023 76 if (int(play_time.read()) % 8 == 0) { //Use an 8kHz audio sample rate (phone quality audio);
William12 2:6a29bd55d023 77 tick = get_sound(); // this should be added to every iter
William12 2:6a29bd55d023 78 score1 += tick;
William12 2:6a29bd55d023 79 //score2 = curTime+2000;
William12 2:6a29bd55d023 80
William12 2:6a29bd55d023 81 ///DRAWS SCORES ON SCREEN
William12 2:6a29bd55d023 82 uLCD.color(BLUE);
William12 2:6a29bd55d023 83 uLCD.locate(0,1);
William12 2:6a29bd55d023 84 uLCD.printf("%4d", tick);
William12 2:6a29bd55d023 85 uLCD.color(PURPLE);
William12 2:6a29bd55d023 86 uLCD.locate(0,3);
William12 2:6a29bd55d023 87 uLCD.printf("%4d", score1);
William12 2:6a29bd55d023 88
William12 2:6a29bd55d023 89 /*
William12 2:6a29bd55d023 90 // Time bar
William12 2:6a29bd55d023 91 double roundTime = 15.0; // in secs
William12 2:6a29bd55d023 92 int length = (int) ( (double)curTime / roundTime * 127.0);
William12 2:6a29bd55d023 93 uLCD.filled_rectangle(0, 65, length, 85, DGREEN);
William12 2:6a29bd55d023 94 if (length >= 127) {
William12 2:6a29bd55d023 95 nextRound();
William12 2:6a29bd55d023 96 }
William12 2:6a29bd55d023 97 curTime++;
William12 2:6a29bd55d023 98 */
William12 2:6a29bd55d023 99 }
William12 2:6a29bd55d023 100 timer++;
William12 2:6a29bd55d023 101 }
William12 2:6a29bd55d023 102 }
William12 2:6a29bd55d023 103
William12 2:6a29bd55d023 104 int main()
William12 2:6a29bd55d023 105 {
William12 2:6a29bd55d023 106 play();
William12 2:6a29bd55d023 107 }