EMG signals all around zero, not showing differences anymore in hidscope

Dependencies:   HIDScope MODSERIAL biquadFilter mbed

Fork of a_check_emg_filtered_without_cal by Daniqe Kottelenberg

main.cpp

Committer:
daniQQue
Date:
2016-10-24
Revision:
12:a76f9b33fbcb
Parent:
10:7255b59224cc
Child:
13:6c2daab3547b

File content as of revision 12:a76f9b33fbcb:

//libraries
#include "mbed.h"
#include "HIDScope.h"
#include "biquadFilter.h"  

//Define objects
AnalogIn    emg0( A0 );             //analog in to get EMG in to c++
Ticker      sample_timer;           //ticker
HIDScope    scope( 3);              //open 3 channels in hidscope
DigitalOut richting_motor1(D4);     //motor1 direction output    
PwmOut pwm_motor1(D5);              //motor1 velocity  output
DigitalOut  led(LED_GREEN);

//define variables
double emg_0_value;
double emg_gefilterd;
double emg_gefilterd_2;
double emg_abs;
int    onoffsignal=0;
double cut_off_value=0.05; //gespecifeerd door floortje

biquadFilter filterhigh1(0.9565, -1.9131, 0.9565, -1.9112, 0.9150);
biquadFilter filterlow(-1.9645, 0.9651, 1.5515e-4, 3.1030e-4, 1.5515e-4);


void filter(){
        emg_0_value=emg0.read();                            //read the emg value from the electrodes
        emg_gefilterd= filterhigh1.step(emg_0_value);
        emg_abs=abs(emg_gefilterd);
        emg_gefilterd_2=filterlow.step(emg_abs);
        led=!led;
        
        if (emg_gefilterd_2>cut_off_value)
        {onoffsignal=1;}
          
        else 
        {onoffsignal=0;}
                      
        //send signals  to scope
        scope.set(0, emg_0_value );           //set emg signal to scope in channel 1
        scope.set(1, emg_gefilterd_2 );    
        scope.set(2, onoffsignal);
        scope.send();                       //send all the signals to the scope
                }

//program

int main()
{  
sample_timer.attach(&filter, 0.001);        //continously execute the EMG reader and filter, it ensures that filter and sampling is executed every 1/frequency seconds

//endless loop

    while(1) 
    {    
        if (onoffsignal==1)
        {
        richting_motor1 = 0;    //motordirection (ccw)
        pwm_motor1 = 1;         //motorspeed 1  
        
        }
        else if(onoffsignal==0)
        {
        richting_motor1 = 0;    //motordirection (ccw)
        pwm_motor1 = 0;         //motorspeed 0
        
    }
        
    } 
        
}