Myoware

Dependencies:   4DGL-uLCD-SE mbed

Files at this revision

API Documentation at this revision

Comitter:
kyle207
Date:
Tue Mar 14 14:08:16 2017 +0000
Commit message:
Myoware;

Changed in this revision

4DGL-uLCD-SE.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/4DGL-uLCD-SE.lib	Tue Mar 14 14:08:16 2017 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/4180_1/code/4DGL-uLCD-SE/#2cb1845d7681
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Mar 14 14:08:16 2017 +0000
@@ -0,0 +1,176 @@
+#include "mbed.h"
+#include "uLCD_4DGL.h"
+DigitalOut myled(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut myled4(LED4);
+AnalogIn signal(p20);
+AnalogIn rawSignal(p19);
+InterruptIn cutoffSwitch(p8);
+Serial  dev(p13,p14);
+uLCD_4DGL uLCD(p28,p27,p11);
+
+void interruptRoutine() {
+    dev.printf("%f",9999);
+    myled = 1;
+    myled2 = 1;
+    myled3 = 1;
+    myled4 = 1;
+    while(1){}
+}
+
+int main() {
+    float EMG[130];
+    cutoffSwitch.rise(&interruptRoutine);
+    
+    float EMG_raw[130];
+    int index = 5;
+    EMG[0] = 60;
+    EMG[1] = 60;
+    EMG[2] = 60;
+    EMG[3] = 60;
+    EMG[4] = 60;
+    uLCD.baudrate(600000);
+    dev.baud(9600);
+    uLCD.printf("Waiting for \nbluetooth \nhandshake signal!");
+    uLCD.filled_rectangle(35, 55, 45, 65, RED);
+    uLCD.filled_rectangle(50, 55, 60, 65, RED);
+    uLCD.filled_rectangle(65, 55, 75, 65, RED);
+    uLCD.filled_rectangle(80, 55, 90, 65, RED);
+    int counter = 0;
+    while(!dev.readable()){
+            if(counter/100 == 0)
+            {
+                uLCD.filled_rectangle(35, 55, 45, 65, BLACK);
+                uLCD.filled_rectangle(50, 55, 60, 65, RED);
+                uLCD.filled_rectangle(65, 55, 75, 65, RED);
+                uLCD.filled_rectangle(80, 55, 90, 65, RED);
+            }
+            if(counter/100 == 1)
+            {
+                uLCD.filled_rectangle(50, 55, 60, 65, BLACK);
+                uLCD.filled_rectangle(35, 55, 45, 65, RED);
+                uLCD.filled_rectangle(65, 55, 75, 65, RED);
+                uLCD.filled_rectangle(80, 55, 90, 65, RED);
+            }
+            if(counter/100 == 2)
+            {
+                uLCD.filled_rectangle(65, 55, 75, 65, BLACK);
+                uLCD.filled_rectangle(35, 55, 45, 65, RED);
+                uLCD.filled_rectangle(50, 55, 60, 65, RED);
+                uLCD.filled_rectangle(80, 55, 90, 65, RED);
+            }
+            if(counter/100 == 3)
+            {
+                uLCD.filled_rectangle(80, 55, 90, 65, BLACK);
+                uLCD.filled_rectangle(35, 55, 45, 65, RED);
+                uLCD.filled_rectangle(50, 55, 60, 65, RED);
+                uLCD.filled_rectangle(65, 55, 75, 65, RED);
+
+            }
+            if(counter >= 400)
+            {
+                counter = 0;
+            }
+            counter++;
+        }
+    int choice = dev.getc();
+    uLCD.cls();
+    uLCD.line(5, 0, 5, 62, WHITE);
+    uLCD.line(5, 65, 5, 127, WHITE);
+    uLCD.line(0, 60, 130, 60, WHITE);
+    uLCD.line(0, 125, 130, 125, WHITE);
+    int offset = 0;
+    while(1) {
+    
+        
+        myled = !myled;
+        float voltage_rectified = signal;
+        float voltage_raw = rawSignal;
+        //EMG[index] = 60 - voltage_rectified * 60;
+        EMG_raw[index] = 150 - voltage_raw * 240;
+        EMG[index] = 60 - voltage_rectified * 55;
+        //printf("Voltage: %3f \r\n",EMG_raw[index]);
+        
+        while(!dev.writeable()){}
+        if(choice == '1')
+        {
+            dev.printf("%.2f",voltage_raw);
+        }   
+        if(choice == '2')
+        {
+            dev.printf("%.2f",voltage_rectified);
+        } 
+        
+        int ref = EMG[index-1];
+        
+        if((ref > EMG[index])&&((index-1) != 4))
+        {
+            if(index < 124)
+            {
+                uLCD.filled_rectangle(index, 0 +offset, index+5, 55 + offset, BLACK);
+                
+            }
+            while(ref > EMG[index])
+            {
+                uLCD.pixel(index,ref+offset,RED);
+                ref = ref-3;
+            }
+        }
+        else if((ref < EMG[index])&&((index-1) != 4))
+        {
+            if(index < 124)
+            {
+                uLCD.filled_rectangle(index, 0 +offset, index + 5, 59 + offset, BLACK);
+                
+            }
+            uLCD.filled_rectangle(index, 0 +offset, index, 59 + offset, BLACK);
+            while(ref < EMG[index])
+            {
+                uLCD.pixel(index,ref+offset,RED);
+                ref = ref+3;
+            }
+        }
+        uLCD.pixel(index,EMG[index] + offset,RED);
+        //ADDED
+        ref = EMG_raw[index-1];
+        if((ref > EMG_raw[index])&&((index-1) != 4))
+        {
+            if(index < 124)
+            {
+                uLCD.filled_rectangle(index, 0 +61, index+5, 59 + 65, BLACK);
+                
+            }
+            while(ref > EMG_raw[index])
+            {
+                uLCD.pixel(index,ref+65,GREEN);
+                ref = ref-3;
+            }
+        }
+        else if((ref < EMG_raw[index])&&((index-1) != 4))
+        {
+            if(index < 124)
+            {
+                uLCD.filled_rectangle(index, 0 +65, index + 5, 59 + 65, BLACK);
+                
+            }
+            uLCD.filled_rectangle(index, 0 +65, index, 59 + 65, BLACK);
+            while(ref < EMG_raw[index])
+            {
+                uLCD.pixel(index,ref+65,GREEN);
+                ref = ref+3;
+            }
+        }
+        uLCD.pixel(index,EMG_raw[index] + 65,GREEN);
+        //
+        index++;
+        
+        
+        if(index == 130)
+        {
+            index = 5;
+            
+        }
+        wait(.1);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Mar 14 14:08:16 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e1686b8d5b90
\ No newline at end of file