W R / Mbed 2 deprecated 4180_Final_Project_old

Dependencies:   mbed wave_player mbed-rtos 4180Final SDFileSystem

Committer:
William12
Date:
Mon Apr 27 19:30:53 2020 +0000
Revision:
4:8331c1239f6a
Parent:
3:927028389e55
Child:
5:1e8b48d6682b
new version

Who changed what in which revision?

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