f
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed wave_player
Fork of MPR121_Demo by
main.cpp
- Committer:
- mbalourdas9
- Date:
- 2016-11-04
- Revision:
- 2:1d47dc5191a5
- Parent:
- 1:1d5055ca2793
File content as of revision 2:1d47dc5191a5:
#include "mbed.h" #include "SDFileSystem.h" #include "uLCD_4DGL.h" #include "wave_player.h" #include "mpr121.h" #include <vector> AnalogOut DACout(p18); // used to play sound on speaker //wave player plays a *.wav file to D/A and a PWM wave_player waver(&DACout); InterruptIn interrupt(p26); I2C i2c(p9, p10); Mpr121 mpr121(&i2c, Mpr121::ADD_VSS); uLCD_4DGL uLCD(p28,p27,p29); // serial tx, serial rx, reset pin; SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card setup int Score; int HighScore = 0; int question = 0; bool answer = 1; int index = 0; bool check = 0; int value = 0; std::vector<int> v; int main() { srand(time(NULL)); while (true){ answer = 1; for (int i=0; i<10; i++){ v.push_back(i+1); } check = 0; question = 0; uLCD.baudrate(3000000); uLCD.background_color(BLACK); uLCD.color(BLUE); uLCD.cls(); if (Score > HighScore){ HighScore = Score; uLCD.printf("NEW HIGH SCORE!\n %d", HighScore); wait(2); } Score = 0; uLCD.cls(); uLCD.printf("\nTrivia Game \n Main Menu\n\n"); uLCD.printf("High Score: %d \n", HighScore); uLCD.printf("\nFor New Game \n Press 0"); while (value != 1){ value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; } uLCD.cls(); if (v.size() !=0){ while (answer == 1){ if (v.size() == 0){ break; } index = rand() %v.size(); question = v.at(index); v.erase(v.begin()+index); check = 0; uLCD.cls(); wait(1); if (question == 1){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("Who won the World Series in 2016?\n\n\n"); uLCD.printf("1) Cleveland\nIndians\n"); uLCD.printf("2) Chicago Cubs\n"); uLCD.printf("3) San Diego\nPadres\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 2){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 4){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 8){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 2){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("What is the\n capital of South\n Dakota?\n\n"); uLCD.printf("1) Pierre\n"); uLCD.printf("2) Bismarck\n"); uLCD.printf("3) Lakota\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 4){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 2){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score=Score+1;; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 8){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 3){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("Who wrote The \nGrapes of Wrath?\n\n\n"); uLCD.printf("1)Ernest Hemingway"); uLCD.printf("2)George Orwell\n"); uLCD.printf("3)John Steinbeck\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 2){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 8){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 4){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 4){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("What year was \nEinstein born?\n\n\n"); uLCD.printf("1) 1900\n"); uLCD.printf("2) 1879\n"); uLCD.printf("3) 1873\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 2){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 4){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 8){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 5){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("Which song is by the Rolling Stones?\n\n\n"); uLCD.printf("1) Paint It Black\n"); uLCD.printf("2) Feel For \nThe Devil\n"); uLCD.printf("3) Let It Be\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 4){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 2){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 8){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 6){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("Where was Hitler born?\n\n\n"); uLCD.printf("1) Poland\n"); uLCD.printf("2) Germany\n"); uLCD.printf("3) Austria\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 4){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 8){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 2){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 7){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("The best selling\nmusic single of all time is?\n\n\n"); uLCD.printf("1) Billie Jean\n"); uLCD.printf("2) White Christmas\n"); uLCD.printf("3) Candle in the \nWind\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 4){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 8){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 2){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 8){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("What is the \ncurrency of \nJapan?\n\n\n"); uLCD.printf("1) Pounds\n"); uLCD.printf("2) Yen\n"); uLCD.printf("3) Riki\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 2){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 4){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 8){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 9){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("Who was Harry \nHoudini?\n\n\n"); uLCD.printf("1)An Escape Artist\n"); uLCD.printf("2)Fighter Pilot in WWII\n"); uLCD.printf("3) Harry Potter's Cousin\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 4){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 2){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 8){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } if (question == 10){ value = 0; uLCD.cls(); uLCD.locate(1,2); uLCD.printf("What is glass \nmainly made up \nof?\n\n\n"); uLCD.printf("1) Sand\n"); uLCD.printf("2) Crystals\n"); uLCD.printf("3) Highly \nCompressed \nWater\n"); while (check == 0){ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; if (value == 4){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } if (value == 2){ //play correct image uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x005E); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/right_taught.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); Score = Score+1; uLCD.printf("Score: %d", Score); wait(1); answer = 1; check = 1; } if (value == 8){ //play game over uLCD.cls(); uLCD.media_init(); uLCD.set_sector_address(0x0000, 0x009F); uLCD.display_image(0,0); FILE *wave_file; wave_file=fopen("/sd/sounds/wrong_last.wav","r"); waver.play(wave_file); fclose(wave_file); wait(1); uLCD.cls(); answer = 0; check = 1; } } } } } else{ uLCD.printf("CONGRATS!"); wait(1); } } }