Myoware
Dependencies: 4DGL-uLCD-SE mbed
main.cpp
- Committer:
- kyle207
- Date:
- 2017-03-14
- Revision:
- 0:f34afc468487
File content as of revision 0:f34afc468487:
#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); } }