EMG script met 2e signaal, invalid build system
Dependencies: HIDScope MODSERIAL biquadFilter mbed
Fork of EMG by
main.cpp
- Committer:
- Margreeth95
- Date:
- 2015-10-08
- Revision:
- 22:207d314523ef
- Parent:
- 20:a0642e983da9
- Child:
- 23:624827baffa6
File content as of revision 22:207d314523ef:
#include "mbed.h" #include "HIDScope.h" #include "MODSERIAL.h" #include "biquadFilter.h" //Define objects AnalogIn EMG_left(A0); //Analog input AnalogIn EMG_right(A1); Ticker SampleEMG; Ticker ScopeTimer; Ticker serial; HIDScope scope(5); DigitalOut led(LED_RED); MODSERIAL pc(USBTX, USBRX); // Declaring variables double EMG_L_f_v1 = 0, EMG_L_f_v2 = 0; double EMG_L_fh=0; double EMG_left_value; double EMG_left_f1; double EMG_left_f2; double EMG_left_abs; double EMG_right_value; double EMG_right_f1; double EMG_right_f2; double EMG_right_abs; double Threshold1 = 0.08; double Threshold2 = 0.06 // coëfficiënten const double BiGainEMG_Lh = 0.723601, BiGainEMG_Ll=0.959332; const double EMGh_a1 = -1.74355513773*BiGainEMG_Lh, EMGh_a2 = 0.80079826172*BiGainEMG_Lh, EMGh_b0 = 1.0*BiGainEMG_Lh, EMGh_b1 = 1.99999965990*BiGainEMG_Lh, EMGh_b2 = 1.0*BiGainEMG_Lh; //coefficients for high-pass filter const double EMGl_a1 = 1.91721405106*BiGainEMG_Ll, EMGl_a2 = 0.92055427516*BiGainEMG_Ll, EMGl_b0 = 1.0*BiGainEMG_Ll, EMGl_b1 = 1.99999993582*BiGainEMG_Ll, EMGl_b2 = 1.0*BiGainEMG_Ll; // coefficients for low-pass filter // Filter creation biquadFilter EMG_highpass (EMGh_a1, EMGh_a2, EMGh_b0, EMGh_b1, EMGh_b2); // creates the high pass filter biquadFilter EMG_lowpass (EMGl_a1, EMGl_a2, EMGl_b0, EMGl_b1, EMGl_b2); // creates the low pass filter // EMG filtering function void EMGfilter() // Both EMG signals are filtered in one function and with the same filters { EMG_left_value = EMG_left.read(); EMG_left_f1 = EMG_highpass.step(EMG_left_value); EMG_left_f2 = EMG_lowpass.step(EMG_left_f1); EMG_left_abs = fabs(EMG_left_f2); EMG_right_value = EMG_right.read(); EMG_right_f1 = EMG_highpass.step(EMG_right_value); EMG_right_f1 = EMG_lowpass.step(EMG_right_f1); EMG_right_abs = fabs(EMG_right_f2); } // HIDScope void ScopeSend() { scope.set(0, EMG_left_value); scope.set(1, EMG_left_f2); scope.set(2, EMG_left_abs); scope.set(3, EMG_right_value); scope.set(4, EMG_right_abs); scope.send(); } int main() { SampleEMG.attach(&EMGfilter, 0.002); ScopeTimer.attach(&ScopeSend, 0.002); while(1) { if (EMG_left_abs > Threshold) { led.write(0); } else { led.write(1); } } }