EMG filter. Waarden nog niet perfekt.

Dependencies:   HIDScope mbed

main.cpp

Committer:
janwillembisschop
Date:
2016-10-28
Revision:
1:70dc835f3a37
Parent:
0:2956e3501f8a

File content as of revision 1:70dc835f3a37:

#include "mbed.h"
#include "HIDScope.h"
#include "Filter.h"
#include "FilterDesign.h"
#include "Filter2.h"
#include "FilterDesign2.h"

AnalogIn    emg1(A0);
AnalogIn    emg2(A1);

Ticker      sample_timer;
HIDScope    scope(4);       // 2 scopes


// Motor aanroepen
DigitalOut motor_1(D7); //richting (1 of 0)
PwmOut pwm_motor_1(D6); //snelheid (tussen 0 en 1?)
DigitalOut motor_2(D4); //richting (1 of 0)
PwmOut pwm_motor_2(D5); //snelheid (tussen 0 en 1?)
InterruptIn stop(SW3); //stoppen
InterruptIn turn_1(D9); //wisselen van kant (button 1)
InterruptIn turn_2(D10); //wisselen van kant (button 2)
Serial pc(USBTX, USBRX); //USB ports aanroepen
Ticker faster_slower; //Ticker voor functie om sneller en langzamer te gaan

DigitalOut led1(D2);
DigitalOut led2(D3);

DigitalOut led_red(LED_RED);
DigitalOut led_green(LED_GREEN);
DigitalOut led_blue(LED_BLUE);

volatile double y1;
volatile double y2;
volatile double u1;
volatile double u2;

void sample()
{
    
    double u1 = emg1.read();      // ongefitlerd
    double y1 = FilterDesign(u1);  // gefilterd
    double u2 = emg2.read();      // ongefitlerd
    double y2 = FilterDesign2(u2);  // gefilterd
    
    scope.set(0,u1); // ongefilterd emg1 naar scope 0
    scope.set(1,y1); // gefilterd emg1 naar scope 1
    scope.set(2,u2); // ongefilterd emg2 naar scope 2
    scope.set(3,y2); // gefilterd emg2 naar scope 3
    
    scope.send();
    
    /*
    if (y1 > 0.05)
    {
        motor_1 = 1;
        pwm_motor_1 = 0.6;
    }
    else
    {
        pwm_motor_1 = 0;
    }
    
    if (y2 > 0.05)
    {
        motor_2 = 1;
        pwm_motor_2 = 0.6;
    }
    else
    {
        pwm_motor_2 = 0;
    }
    */
    
    if (y1 >= 0.06)
    {
        led_red.write(0);   // aan
        led_green.write(1); // uit
        led_blue.write(1);  // uit
    }
    if (y2 >= 0.09)
    {
        led_red.write(1);   // uit
        led_green.write(0); // aan
        led_blue.write(1);  // uit
    }
    if (y1 >= 0.06 & y2 >= 0.09)
    {
        led_red.write(1);   // uit
        led_green.write(1); // uit
        led_blue.write(0);  // aan
    }
    else if (y1 < 0.06 & y2 < 0.09)
    {
        led_red.write(1);   // uit
        led_green.write(1); // uit
        led_blue.write(1);  // uit
    }
    
}



int main()
{   
    pc.baud(115200);
    sample_timer.attach(&sample, 0.01); // 500 Hz
    
    while(1) {}
}