EMG filtering; highpass, notch, abs, moving average
Dependencies: HIDScope MODSERIAL- mbed-dsp mbed
Revision 37:2d248e64b745, committed 2014-10-07
- Comitter:
- Hooglugt
- Date:
- Tue Oct 07 14:01:51 2014 +0000
- Parent:
- 36:af949aaaba01
- Child:
- 38:277ba1c0693c
- Commit message:
- fout van de lampjes is niet in de mainloop, is niet in de benaming van de objecten - de fout moet dus wel afkomstig zijn van het toevoegen van een 2e EMG signaal (code is volgens mij niet verandert)
Changed in this revision
Project_main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/Project_main.cpp Tue Oct 07 13:39:45 2014 +0000 +++ b/Project_main.cpp Tue Oct 07 14:01:51 2014 +0000 @@ -69,20 +69,24 @@ log_timer.attach(looper, 0.001); // The looper() function will be called every 0.001 seconds (with the ticker object) // reset_timer.attach(resetlooper, 0.1); // - while(1) { //Loop + goto directionchoice; // goes to first while(1) for the deciding the direction + + while(1) { //Loop keuze DIRECTION +directionchoice: for(int i=1; i<4; i++) { if(i==1) { //red red=0; green=1; blue=1; - for (int lag=0; lag<50; lag++) { - if(emg_bifloat.read()>0.8) { // 0.8 klopt niet als grenswaarde. #nofilter + for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { + if(emg_bifloat.read()>0.8) { // 0.8 klopt niet als grenswaarde. #nofilter direction = 1; + red=1; + green = 0; blue = 0; - green = 0; - red=1; - wait(2); // Tijdelijke wait om oranje lampje aan te zetten ter controle selectie - goto forcechoice; + pc.printf("links "); + wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om cyaan lampje aan te zetten ter controle selectie + goto forcechoice; // goes to second while(1) for the deciding the force } else { wait(0.1); } @@ -92,13 +96,14 @@ red =1; green=0; blue=1; - for (int lag=0; lag<50; lag++) { + for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter direction = 2; - blue = 0; + red=0; green = 1; - red=0; - wait(2); // Tijdelijke wait om oranje lampje aan te zetten ter controle selectie + blue = 0; + pc.printf("mid "); + wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om paars lampje aan te zetten ter controle selectie goto forcechoice; } else { wait(0.1); @@ -109,13 +114,14 @@ red=1; green=1; blue=0; - for (int lag=0; lag<50; lag++) { + for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter direction = 3; - blue = 1; + red=0; green = 0; - red=0; - wait(2); // Tijdelijke wait om oranje lampje aan te zetten ter controle selectie + blue = 1; + pc.printf("rechts "); + wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om oranje lampje aan te zetten ter controle selectie goto forcechoice; } else { wait(0.1); @@ -123,149 +129,79 @@ } } } - } + while(1) { //Loop keuze FORCE forcechoice: - red = 0; - green = 0; - blue = 0; - wait(5); - - - /* - goto directionchoice; // goes to first while(1) for the deciding the direction - - while(1) { //Loop keuze DIRECTION - directionchoice: - for(int i=1; i<4; i++) { - if(i==1) { //red - red=0; - green=1; - blue=1; - for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { - if(emg_bifloat.read()>0.8) { // 0.8 klopt niet als grenswaarde. #nofilter - direction = 1; - red=1; - green = 0; - blue = 0; - pc.printf("links "); - wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om cyaan lampje aan te zetten ter controle selectie - goto forcechoice; // goes to second while(1) for the deciding the force - } else { - wait(0.1); - } + for(int j=1; j<4; j++) { + if(j==1) { //red + red=0; + green=1; + blue=1; + if(direction==0) { //if statement die controleert of direction 0 is (dus of triceps gereset is) + goto directionchoice; + } + for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { + if(emg_bifloat.read()>0.8) { // 0.8 klopt niet als grenswaarde. #nofilter + force = 1; + red=1; + green = 0; + blue = 0; + pc.printf("zwak "); + wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om cyaan lampje aan te zetten ter controle selectie + goto choicesmade; + } else { + wait(0.1); } } - if(i==2) { //green - red =1; - green=0; - blue=1; - for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { - if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter - direction = 2; - red=0; - green = 1; - blue = 0; - pc.printf("mid "); - wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om paars lampje aan te zetten ter controle selectie - goto forcechoice; - } else { - wait(0.1); - } + } + if(j==2) { //green + red =1; + green=0; + blue=1; + if(direction==0) { //if statement die controleert of direction 0 is (dus of triceps gereset is) + goto directionchoice; + } + for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { + if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter + force = 2; + red=0; + green = 1; + blue = 0; + pc.printf("normaal "); + wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om paars lampje aan te zetten ter controle selectie + goto choicesmade; + } else { + wait(0.1); } } - if(i==3) { //blue - red=1; - green=1; - blue=0; - for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { - if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter - direction = 3; - red=0; - green = 0; - blue = 1; - pc.printf("rechts "); - wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om oranje lampje aan te zetten ter controle selectie - goto forcechoice; - } else { - wait(0.1); - } + } + if(j==3) { //blue + red=1; + green=1; + blue=0; + if(direction==0) { //if statement die controleert of direction 0 is (dus of triceps gereset is) + goto directionchoice; + } + for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { + if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter + force = 3; + red=0; + green = 0; + blue = 1; + pc.printf("sterk "); + wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om oranje lampje aan te zetten ter controle selectie + goto choicesmade; + } else { + wait(0.1); } } } } - while(1) { //Loop keuze FORCE - forcechoice: - for(int j=1; j<4; j++) { - if(j==1) { //red - red=0; - green=1; - blue=1; - if(direction==0){ //if statement die controleert of direction 0 is (dus of triceps gereset is) - goto directionchoice; - } - for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { - if(emg_bifloat.read()>0.8) { // 0.8 klopt niet als grenswaarde. #nofilter - force = 1; - red=1; - green = 0; - blue = 0; - pc.printf("zwak "); - wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om cyaan lampje aan te zetten ter controle selectie - goto choicesmade; - } else { - wait(0.1); - } - } - } - if(j==2) { //green - red =1; - green=0; - blue=1; - if(direction==0){ //if statement die controleert of direction 0 is (dus of triceps gereset is) - goto directionchoice; - } - for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { - if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter - force = 2; - red=0; - green = 1; - blue = 0; - pc.printf("normaal "); - wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om paars lampje aan te zetten ter controle selectie - goto choicesmade; - } else { - wait(0.1); - } - } - } - if(j==3) { //blue - red=1; - green=1; - blue=0; - if(direction==0){ //if statement die controleert of direction 0 is (dus of triceps gereset is) - goto directionchoice; - } - for (int lag=0; lag<TIMEBETWEENBLINK; lag++) { - if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter - force = 3; - red=0; - green = 0; - blue = 1; - pc.printf("sterk "); - wait(TIMEB4NEXTCHOICE); // Tijdelijke wait om oranje lampje aan te zetten ter controle selectie - goto choicesmade; - } else { - wait(0.1); - } - } - } - } - } - choicesmade: + } +choicesmade: - /* Vanaf hier komt de aansturing van de motor (inclusief de controller)*/ - /* + /* Vanaf hier komt de aansturing van de motor (inclusief de controller)*/ + if(direction == 1 && force == 1) { // links zwak pc.printf("links zwak"); @@ -301,5 +237,5 @@ red = 0; green = 0; - blue = 0; // wit lampje */ + blue = 0; // wit lampje } \ No newline at end of file