3872 Project GT

Dependencies:   MPR121 mbed Servo

Revision:
0:fb39f3e8d0d1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Oct 25 20:53:46 2020 +0000
@@ -0,0 +1,100 @@
+#include "mbed.h"
+#include "Servo.h"
+#include <mpr121.h>
+#include "SongPlayer.h"
+
+#define max_note 40
+#define max_timer_seconds 20
+#define A2 110.0
+#define B2 123.0
+#define C3 131.0
+#define D3 185.0
+#define E3 165.0
+#define F3 174.614
+#define G3 195.998
+#define G_# 207.652
+
+uint8_t     mode = 0;
+DigitalIn   record_mode(p14);
+DigitalIn   play_back_mode(p16);
+DigitalIn   play_live_mode(p15);
+DigitalIn   STOP(p17);
+DigitalOut  GreenLED(p18);
+DigitalOut  IndicatorLED(p19);
+DigitalIn   RESET(p20);
+I2C         i2c(p9, p10);
+
+Mpr121      mpr121(&i2c, Mpr121::ADD_VSS);
+InterruptIn interrupt(p30);
+Servo       skull_jaw(p26);
+Servo       skull_base(p25);
+Servo       spare_servo(p24);
+PwmOut      RED_LED(p23);
+PwmOut      Blue_LED(p22);
+SongPlayer  mySpeaker(p21);
+
+bool expired; //Timer expiration
+
+//Instantiate Skull Object
+
+class skull{
+  public:
+      char memory[40];
+      void openJaw(float angle);
+      void turn_table(float angle);
+      void play_tune(float tune);
+      void record_memory();
+      void erase_memory();
+      void append_memory();
+};
+
+int main() {
+    while(1) {
+        if(record_mode == 1){
+            mode = 1;   
+        }
+        if(play_back_mode == 1){
+            mode = 2;
+        }
+        if(play_live_mode == 1){
+            mode = 3;
+        }
+        if(STOP == 1){
+            mode = 4;
+        }
+        switch(mode){
+            case 1:
+                //Record Mode
+            break;
+            case 2:
+                //Play_back_mode
+            break;
+            case 3:
+                //play_live_mode
+            break;
+            case 4:
+                //Stop
+            break;
+            case 5:
+                //Reset
+            break;
+        }
+    }
+}
+
+void fallInterrupt() {
+    //int key_code=0;
+    //int i=0;
+    if(mode == 1 && !expired){
+        //write the recorded stuff here
+    } //recording mode
+    
+    if(mode == 2){
+        uint16_t value=mpr121.read(0x00);
+        value +=mpr121.read(0x01)<<8;
+        float note[] = {value + 110};
+        float duration[] = {0.24};
+        if(note[0]>110){
+            mySpeaker.PlaySong(note, duration);}
+        }
+}