test publish

Dependencies:   mbed GroveEarbudSensor

Revision:
8:e1beb2a9454e
Parent:
5:ee265ab0752d
Child:
10:af58557a4d6c
--- a/main.cpp	Mon Apr 11 11:18:46 2016 +0000
+++ b/main.cpp	Mon Apr 11 13:30:35 2016 +0000
@@ -1,20 +1,38 @@
 #include "mbed.h"
 #include "GroveEarbudSensor.h"
-
-InterruptIn earSensor(p5);
-DigitalOut led(LED1);
+#include "GypsyScale.h"
+#include "MajorScale.h"
+#include "Speaker.h"
+#include "MelodyGenerator.h"
+#include "Notes.h"
+#include <vector>
 
-void printHeartRate(float heartrate,void *data) {
-    printf("Callback: heartrate = %.1f\r\n",heartrate);
-}
+using namespace std;
+
+InterruptIn earSensorPin(p5);
+//DigitalOut led(LED1);
+PwmOut speakerPin(p21);
 
 int main()
 {
-    GroveEarbudSensor earbud(&earSensor);
-    earbud.registerCallback(printHeartRate);
-    
+    GroveEarbudSensor earbud(&earSensorPin);
+    Speaker speaker(&speakerPin);
+    MelodyGenerator melodyGen;
+
+    MajorScale scale1(SOL_4);
+    GypsyScale scale2(MI_4);
+
     while(true) {
-        led = !led; 
-        wait(0.5);
+        float heartRate = earbud.getHeartRate();
+        if(heartRate <30) {
+            speaker.play(SILENCE);
+            heartRate = earbud.getHeartRate();
+        } else {
+            vector<Notes>* melo = melodyGen.getMeasure(scale1);
+            for(vector<Notes>::iterator it = melo->begin(); it != melo->end(); ++it) {
+                speaker.play(*it);
+                wait( heartRate * 0.006);
+            }
+        }
     }
 }