ECE3872 HW/SW Project Code

Dependencies:   mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1

Committer:
trmontgomery
Date:
Tue Apr 14 01:40:26 2020 +0000
Revision:
26:2063ee8419cc
Parent:
18:0e0edd4f9e4d
map of distinct movements is playable. can record and play music at the same time.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rdobbs6 15:7565013b55df 1 #include "mbed.h"
rdobbs6 15:7565013b55df 2 #include "Speaker.h"
trmontgomery 26:2063ee8419cc 3 #include <vector>
trmontgomery 26:2063ee8419cc 4 Timer t;
trmontgomery 26:2063ee8419cc 5 /*
trmontgomery 26:2063ee8419cc 6 void record(vector<float>& song) {
trmontgomery 26:2063ee8419cc 7 float freq;
trmontgomery 26:2063ee8419cc 8 char note;
rdobbs6 15:7565013b55df 9 t.start();
trmontgomery 26:2063ee8419cc 10 while(t.read() < 30){
rdobbs6 15:7565013b55df 11 note = pc.getc();
rdobbs6 15:7565013b55df 12 switch (note){
rdobbs6 15:7565013b55df 13 case 'a':
trmontgomery 26:2063ee8419cc 14 freq = 523.25;
rdobbs6 15:7565013b55df 15 break;
rdobbs6 15:7565013b55df 16
trmontgomery 26:2063ee8419cc 17 case 's':
trmontgomery 26:2063ee8419cc 18 freq = 554.37;
rdobbs6 15:7565013b55df 19 break;
rdobbs6 15:7565013b55df 20
rdobbs6 15:7565013b55df 21 case 'd':
trmontgomery 26:2063ee8419cc 22 freq = 587.33;
trmontgomery 26:2063ee8419cc 23 break;
trmontgomery 26:2063ee8419cc 24
trmontgomery 26:2063ee8419cc 25 case 'f':
trmontgomery 26:2063ee8419cc 26 freq = 622.25;
trmontgomery 26:2063ee8419cc 27 break;
trmontgomery 26:2063ee8419cc 28
trmontgomery 26:2063ee8419cc 29 case 'g':
trmontgomery 26:2063ee8419cc 30 freq = 659.26;
trmontgomery 26:2063ee8419cc 31 break;
trmontgomery 26:2063ee8419cc 32
trmontgomery 26:2063ee8419cc 33 case 'h':
trmontgomery 26:2063ee8419cc 34 freq = 698.46;
trmontgomery 26:2063ee8419cc 35 break;
trmontgomery 26:2063ee8419cc 36
trmontgomery 26:2063ee8419cc 37 case 'j':
trmontgomery 26:2063ee8419cc 38 freq = 739.99;
trmontgomery 26:2063ee8419cc 39 break;
trmontgomery 26:2063ee8419cc 40
trmontgomery 26:2063ee8419cc 41 case 'k':
trmontgomery 26:2063ee8419cc 42 freq = 783.99;
trmontgomery 26:2063ee8419cc 43 break;
trmontgomery 26:2063ee8419cc 44
trmontgomery 26:2063ee8419cc 45 case 'l':
trmontgomery 26:2063ee8419cc 46 freq = 830.61;
trmontgomery 26:2063ee8419cc 47 break;
trmontgomery 26:2063ee8419cc 48
trmontgomery 26:2063ee8419cc 49 case 'q':
trmontgomery 26:2063ee8419cc 50 freq = 880.00;
trmontgomery 26:2063ee8419cc 51 break;
trmontgomery 26:2063ee8419cc 52
trmontgomery 26:2063ee8419cc 53 case 'w':
trmontgomery 26:2063ee8419cc 54 freq = 932.33;
rdobbs6 15:7565013b55df 55 break;
rdobbs6 15:7565013b55df 56
rdobbs6 15:7565013b55df 57 case 'e':
trmontgomery 26:2063ee8419cc 58 freq = 987.77;
rdobbs6 15:7565013b55df 59 break;
rdobbs6 15:7565013b55df 60 }
trmontgomery 26:2063ee8419cc 61 song.push_back(freq);
trmontgomery 26:2063ee8419cc 62 mySpeaker.PlayNote(freq,1.0,0.2);
rdobbs6 15:7565013b55df 63 }
trmontgomery 26:2063ee8419cc 64 t.stop();
trmontgomery 26:2063ee8419cc 65 }
rdobbs6 15:7565013b55df 66
rdobbs6 15:7565013b55df 67
trmontgomery 18:0e0edd4f9e4d 68 void audio_out() {
rdobbs6 15:7565013b55df 69 record(freq);
rdobbs6 15:7565013b55df 70 for (int i = 0; i<100; i++){
rdobbs6 15:7565013b55df 71 if (freq[i] == 0){
rdobbs6 15:7565013b55df 72 }
rdobbs6 15:7565013b55df 73 else{
rdobbs6 15:7565013b55df 74 mySpeaker.PlayNote(freq[i],1.0,0.1);
rdobbs6 15:7565013b55df 75 }
rdobbs6 15:7565013b55df 76 }
rdobbs6 15:7565013b55df 77 }
trmontgomery 26:2063ee8419cc 78 */