Interactive Alarm Clock Code

Dependencies:   4DGL-uLCD-SE mbed

Committer:
tshin7
Date:
Thu Dec 10 08:59:55 2015 +0000
Revision:
0:68a3851de2ee
Alarm Clock

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tshin7 0:68a3851de2ee 1 #include "mbed.h"
tshin7 0:68a3851de2ee 2 #include "timeDisplay.h"
tshin7 0:68a3851de2ee 3 #include "uLCD_4DGL.h"
tshin7 0:68a3851de2ee 4 #include "setAlarm.h"
tshin7 0:68a3851de2ee 5 #include "ledColorSequence.h"
tshin7 0:68a3851de2ee 6 #include "mathProblem.h"
tshin7 0:68a3851de2ee 7 #include "speaker.h"
tshin7 0:68a3851de2ee 8 #include "alarmChoice.h"
tshin7 0:68a3851de2ee 9 #include <string>
tshin7 0:68a3851de2ee 10
tshin7 0:68a3851de2ee 11 DigitalIn hourSet(p5);
tshin7 0:68a3851de2ee 12 DigitalIn minSet(p6);
tshin7 0:68a3851de2ee 13 DigitalIn gameChoice(p7);
tshin7 0:68a3851de2ee 14 DigitalIn missionControlWin(p28);
tshin7 0:68a3851de2ee 15 DigitalOut missionControlReset(p29);
tshin7 0:68a3851de2ee 16 DigitalOut missionControlStart(p30);
tshin7 0:68a3851de2ee 17 Serial device(USBTX,USBRX);
tshin7 0:68a3851de2ee 18 Serial bluetooth(p13,p14);
tshin7 0:68a3851de2ee 19 timeDisplay timeLCD;
tshin7 0:68a3851de2ee 20 setAlarm alarmSet;
tshin7 0:68a3851de2ee 21 ledColorSequence LedGame;
tshin7 0:68a3851de2ee 22 mathProblem mathProblemGame;
tshin7 0:68a3851de2ee 23 alarmChoice alarmGameChoice;
tshin7 0:68a3851de2ee 24 speaker speakerPlay;
tshin7 0:68a3851de2ee 25 Timer tSpeaker;
tshin7 0:68a3851de2ee 26 Timer tLED;
tshin7 0:68a3851de2ee 27
tshin7 0:68a3851de2ee 28 string currentTime;
tshin7 0:68a3851de2ee 29 string currentAlarmTime;
tshin7 0:68a3851de2ee 30 string chosenGameName = "LED Color Sequence";
tshin7 0:68a3851de2ee 31 char mathProblemAnswerStr [5];
tshin7 0:68a3851de2ee 32 string ledColorSeq = " ";
tshin7 0:68a3851de2ee 33 char input;
tshin7 0:68a3851de2ee 34 int chosenGame = 0;
tshin7 0:68a3851de2ee 35 int mathProblemAnswer=0;
tshin7 0:68a3851de2ee 36 int mathProblemAnswerLength;
tshin7 0:68a3851de2ee 37 int charCount = 0;
tshin7 0:68a3851de2ee 38 int matched = 0;
tshin7 0:68a3851de2ee 39 int score;
tshin7 0:68a3851de2ee 40
tshin7 0:68a3851de2ee 41 int main()
tshin7 0:68a3851de2ee 42 {
tshin7 0:68a3851de2ee 43 hourSet.mode(PullDown);
tshin7 0:68a3851de2ee 44 minSet.mode(PullDown);
tshin7 0:68a3851de2ee 45 gameChoice.mode(PullDown);
tshin7 0:68a3851de2ee 46 timeLCD.setTime();
tshin7 0:68a3851de2ee 47 bluetooth.baud(115200);
tshin7 0:68a3851de2ee 48 tSpeaker.start();
tshin7 0:68a3851de2ee 49 tLED.start();
tshin7 0:68a3851de2ee 50 while(1) {
tshin7 0:68a3851de2ee 51 printf("%s", missionControlWin ? "true" : "false");
tshin7 0:68a3851de2ee 52 currentTime = timeLCD.displayTime();
tshin7 0:68a3851de2ee 53 currentAlarmTime = alarmSet.displayAlarmTime();
tshin7 0:68a3851de2ee 54 alarmGameChoice.displayChoice();
tshin7 0:68a3851de2ee 55 if(hourSet==1) {
tshin7 0:68a3851de2ee 56 alarmSet.setHour();
tshin7 0:68a3851de2ee 57 } else if (minSet==1) {
tshin7 0:68a3851de2ee 58 alarmSet.setMinute();
tshin7 0:68a3851de2ee 59 }
tshin7 0:68a3851de2ee 60 if (gameChoice == 1) {
tshin7 0:68a3851de2ee 61 chosenGameName = alarmGameChoice.setGameName();
tshin7 0:68a3851de2ee 62 chosenGame = alarmGameChoice.setGame();
tshin7 0:68a3851de2ee 63 }
tshin7 0:68a3851de2ee 64 if (currentAlarmTime.compare(currentTime)==0) {
tshin7 0:68a3851de2ee 65 speakerPlay.playSpeaker();
tshin7 0:68a3851de2ee 66 if (chosenGame == 0) {
tshin7 0:68a3851de2ee 67 ledColorSeq=LedGame.chooseColor();
tshin7 0:68a3851de2ee 68 tLED.stop();
tshin7 0:68a3851de2ee 69 tLED.reset();
tshin7 0:68a3851de2ee 70 tLED.start();
tshin7 0:68a3851de2ee 71 wait(.9);
tshin7 0:68a3851de2ee 72 } else if (chosenGame == 1) {
tshin7 0:68a3851de2ee 73 mathProblemAnswer = mathProblemGame.displayMathProblem();
tshin7 0:68a3851de2ee 74 mathProblemAnswerLength = sprintf(mathProblemAnswerStr,"%d",mathProblemAnswer);
tshin7 0:68a3851de2ee 75 wait(.9);
tshin7 0:68a3851de2ee 76 } else if (chosenGame ==2) {
tshin7 0:68a3851de2ee 77 missionControlReset=1;
tshin7 0:68a3851de2ee 78 missionControlStart=1;
tshin7 0:68a3851de2ee 79 wait(.9);
tshin7 0:68a3851de2ee 80 }
tshin7 0:68a3851de2ee 81 }
tshin7 0:68a3851de2ee 82 if (ledColorSeq!=" ") {
tshin7 0:68a3851de2ee 83 if(tSpeaker.read()>=7.65){
tshin7 0:68a3851de2ee 84 tSpeaker.stop();
tshin7 0:68a3851de2ee 85 tSpeaker.reset();
tshin7 0:68a3851de2ee 86 tSpeaker.start();
tshin7 0:68a3851de2ee 87 speakerPlay.playSpeaker();
tshin7 0:68a3851de2ee 88 }
tshin7 0:68a3851de2ee 89 if(tLED.read()>=5){
tshin7 0:68a3851de2ee 90 tLED.stop();
tshin7 0:68a3851de2ee 91 tLED.reset();
tshin7 0:68a3851de2ee 92 tLED.start();
tshin7 0:68a3851de2ee 93 LedGame.repeatColorSequence(ledColorSeq);
tshin7 0:68a3851de2ee 94 }
tshin7 0:68a3851de2ee 95 while(bluetooth.readable()) {
tshin7 0:68a3851de2ee 96 while(charCount<ledColorSeq.length()) {
tshin7 0:68a3851de2ee 97 if (bluetooth.getc()==ledColorSeq[charCount]) {
tshin7 0:68a3851de2ee 98 matched++;
tshin7 0:68a3851de2ee 99 charCount++;
tshin7 0:68a3851de2ee 100 }
tshin7 0:68a3851de2ee 101 }
tshin7 0:68a3851de2ee 102 if (matched==ledColorSeq.length()) {
tshin7 0:68a3851de2ee 103 speakerPlay.turnOffSpeaker();
tshin7 0:68a3851de2ee 104 LedGame.turnOffColor();
tshin7 0:68a3851de2ee 105 ledColorSeq=" ";
tshin7 0:68a3851de2ee 106 }
tshin7 0:68a3851de2ee 107 charCount=0;
tshin7 0:68a3851de2ee 108 matched=0;
tshin7 0:68a3851de2ee 109 }
tshin7 0:68a3851de2ee 110 } else if (mathProblemAnswer != 0) {
tshin7 0:68a3851de2ee 111 if(tSpeaker.read()>=7.65){
tshin7 0:68a3851de2ee 112 tSpeaker.stop();
tshin7 0:68a3851de2ee 113 tSpeaker.reset();
tshin7 0:68a3851de2ee 114 tSpeaker.start();
tshin7 0:68a3851de2ee 115 speakerPlay.playSpeaker();
tshin7 0:68a3851de2ee 116 }
tshin7 0:68a3851de2ee 117 while(bluetooth.readable()) {
tshin7 0:68a3851de2ee 118 while(charCount<mathProblemAnswerLength) {
tshin7 0:68a3851de2ee 119 if (bluetooth.getc()==mathProblemAnswerStr[charCount]) {
tshin7 0:68a3851de2ee 120 matched++;
tshin7 0:68a3851de2ee 121 charCount++;
tshin7 0:68a3851de2ee 122 }
tshin7 0:68a3851de2ee 123 }
tshin7 0:68a3851de2ee 124 if (matched==mathProblemAnswerLength) {
tshin7 0:68a3851de2ee 125 speakerPlay.turnOffSpeaker();
tshin7 0:68a3851de2ee 126 mathProblemGame.eraseMathProblem();
tshin7 0:68a3851de2ee 127 mathProblemAnswer=0;
tshin7 0:68a3851de2ee 128 }
tshin7 0:68a3851de2ee 129 charCount=0;
tshin7 0:68a3851de2ee 130 matched=0;
tshin7 0:68a3851de2ee 131 }
tshin7 0:68a3851de2ee 132 } else if (missionControlStart == 1) {
tshin7 0:68a3851de2ee 133 if(tSpeaker.read()>=7.65){
tshin7 0:68a3851de2ee 134 tSpeaker.stop();
tshin7 0:68a3851de2ee 135 tSpeaker.reset();
tshin7 0:68a3851de2ee 136 tSpeaker.start();
tshin7 0:68a3851de2ee 137 speakerPlay.playSpeaker();
tshin7 0:68a3851de2ee 138 }
tshin7 0:68a3851de2ee 139 if (missionControlWin == 1){
tshin7 0:68a3851de2ee 140 missionControlReset=0;
tshin7 0:68a3851de2ee 141 missionControlReset=1;
tshin7 0:68a3851de2ee 142 missionControlStart=0;
tshin7 0:68a3851de2ee 143 speakerPlay.turnOffSpeaker();
tshin7 0:68a3851de2ee 144 }
tshin7 0:68a3851de2ee 145 }
tshin7 0:68a3851de2ee 146 }
tshin7 0:68a3851de2ee 147 }