Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 #include "Biquad.h" 00003 #include "filtervalues.h" 00004 #include "HIDScope.h" 00005 00006 00007 DigitalOut led_red(LED_RED); 00008 00009 Serial pc(USBTX,USBRX);// serial connection to pc 00010 00011 Ticker sample_timer; 00012 HIDScope scope( 2 ); 00013 00014 00015 Biquad myfilter1;// make filter for signal 1 00016 Biquad myfilter2;//make filter for signal 2 00017 00018 AnalogIn emg1_input(A0);//input for first emg signal 1 00019 AnalogIn emg2_input(A1);//input for first emg signal 2 00020 00021 volatile double filteredsignal1=0;//the first filtered emg signal 1 00022 volatile double filteredsignal2=0;//the first filtered emg signal 2 00023 00024 00025 void filtereverything(bool makeempty) 00026 { 00027 //highpass 00028 double pass1_emg1 = myfilter1.filter(emg1_input.read(), v1_f1_emg1 , v2_f1_emg1 , a1_f1 , a2_f1 , b0_f1 , b1_f1 , b2_f1); 00029 double pass1_emg2 = myfilter1.filter(emg2_input.read(), v1_f2_emg2 , v2_f1_emg2 , a1_f1 , a2_f1 , b0_f1 , b1_f1 , b2_f1); 00030 // take aboslute values 00031 double pass2_emg1 = fabs(pass1_emg1); 00032 double pass2_emg2 = fabs(pass1_emg2); 00033 //lowpass 00034 double pass3_emg1 = myfilter1.filter(pass2_emg1, v1_f2_emg1 , v2_f2_emg1 , a1_f2 , a2_f2 , b0_f2 , b1_f2 , b2_f2); 00035 double pass3_emg2 = myfilter1.filter(pass2_emg2, v1_f2_emg2 , v2_f2_emg2 , a1_f2 , a2_f2 , b0_f2 , b1_f2 , b2_f2); 00036 00037 filteredsignal1 = pass1_emg1; 00038 filteredsignal2 = pass3_emg2; 00039 00040 if (makeempty==true) {//this is needed so the filtered value is not high after shooting basically it resets the filter 00041 pass1_emg1 = pass2_emg1 = pass3_emg1 = 0; 00042 v1_f1_emg1 = v2_f1_emg1 = v1_f2_emg1 = v2_f2_emg1 = 0; 00043 pass1_emg2 = pass2_emg2 = pass3_emg2 = 0; 00044 v1_f1_emg2 = v2_f1_emg2 = v1_f2_emg2 = v2_f2_emg2 = 0; 00045 } 00046 } 00047 00048 void scopedata() 00049 { 00050 scope.set(0,emg1_input.read()); // 00051 scope.set(1,filteredsignal1); // 00052 00053 scope.send(); // send info to HIDScope server 00054 } 00055 00056 int main() 00057 { 00058 sample_timer.attach(&scopedata, 0.002); 00059 pc.baud(115200); 00060 00061 while (true) { 00062 00063 filtereverything(false); 00064 00065 if(filteredsignal1 > 0.8){ 00066 led_red = 0; 00067 } 00068 else{ 00069 led_red = 1; 00070 } 00071 00072 00073 } 00074 }
Generated on Sat Aug 27 2022 02:12:02 by
