Werkcollege opgave 23 september BMT K9
Dependencies: Encoder HIDScope MODSERIAL mbed QEI biquadFilter
main.cpp
- Committer:
- bscheltinga
- Date:
- 2015-10-09
- Revision:
- 26:1090acf98efc
- Parent:
- 25:38ab6dd19d9b
- Child:
- 27:85e5d36bb6c5
File content as of revision 26:1090acf98efc:
#include "mbed.h" #include "HIDScope.h" #include "MODSERIAL.h" #include "biquadFilter.h" //Filter direct form II // [DEFINE INPUTS] // AnalogIn emgL(A0); //Analog input left arm //AnalogIn emgR(PTB1); //Analog input right arm DigitalOut led1(LED_GREEN); // [DEFINE CONSTANTS] // float emgL_L, emgL_LH, emgLeft, emgL_H, emgL_Notch; double B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, MOVAVG; HIDScope scope(4); // Aantal HIDScope kanalen MODSERIAL pc(USBTX,USBRX); volatile bool control_go = false; Ticker control_tick; // [BIQUAD FILTERS] // const float la1 = 0.29358435979; const float la2 = 0.71930322156; const float lb0 = 1.00000000000; const float lb1 = 0.01516472727; const float lb2 = 1.00000000000; // Waarde van biquads via groep 1 2014 biquadFilter Lowpassfilter1 (la1, la2, lb0, lb1, lb2); const float ha1 = -0.29358436761; const float ha2 = 0.71930322175; const float hb0 = 1.000000000000; const float hb1 = -0.01516473660; const float hb2 = 1.000000000000; // Waarde van biquads via groep 1 2014 biquadFilter Highpassfilter (ha1, ha2, hb0, hb1, hb2); // [FUNCTIONS] // void ControlGo() //Control flag { control_go = true; led1 = 0; } // [MAIN FUNCTION] // int main() { control_tick.attach(&ControlGo, 0.005); pc.baud(9600); while(true) { if(control_go) // [EMG FILTEREN MET HIGH- EN LOWPASSFILTER] // emgLeft = emgL.read(); emgLeft = fabs(emgLeft); emgL_L = Lowpassfilter.step(emgLeft); //emgL_L Linker bicep met lowpass filter emgL_H = Highpassfilter.step(emgLeft); //emgL_L met Highpassfilter emgL_Notch = Highpassfilter.step(emgL_L); //Highpass filter over de lowpass filter = Notch // [MOVING AVERAGE] // Mov avg van lowpass filter B0 = emgL_L; MOVAVG=B0*0.1+B1*0.1+B2*0.1+B3*0.1+B4*0.1+B5*0.1+B6*0.1+B7*0.1+B8*0.1+B9*0.1; B9=B8; B8=B7; B7=B6; B6=B5; B5=B4; B4=B3; B3=B2; B2=B1; B1=B0; scope.set(0,emgLeft); scope.set(1,emgL_L); scope.set(2,emgL_H); scope.set(3,MOVAVG); scope.send(); led1 = 1; //De led gaat flikkeren wanneer deze loop uitgevoerd wordt } }