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.
Dependencies: mbed
main.cpp
- Committer:
- s1574396
- Date:
- 2018-10-26
- Revision:
- 0:3db1f2a9d605
- Child:
- 1:3cc91fc2fb1c
File content as of revision 0:3db1f2a9d605:
#include "mbed.h"
// inputs EMG
AnalogIn emg0( A0 );
AnalogIn emg1( A1 );
AnalogIn emg3( A2 );
// Variabelen EMG
const double a1 =
const double a2 =
const double b0 =
const double b1 =
const double b2 =
const double c1 =
const double c2 =
const double d0 =
const double d1 =
const double d2 =
double highpassFilter1 = 0;
double lowpassFilter1 = 0;
double highpassFilter2 = 0;
double lowpassFilter2 = 0;
// Filteren
void filterEMG()
{
highpassFilter1 = fabs(biquad(emg0.read(), a1, a2, b0, b1, b2));
lowpassFilter1 = biquad(highpassFilter1, c1, c2, d0, d1, d2);
highpassFilter2 = fabs(biquad(emg1.read(), a1, a2, b0, b1, b2));
lowpassFilter2 = biquad(highpassFilter2, c1, c2, d0, d1, d2);
highpassFilter3 = fabs(biquad(emg2.read(), a1, a2, b0, b1, b2));
lowpassFilter3 = biquad(highpassFilter3, c1, c2, d0, d1, d2);
}
//calibrate (hier moet iets met maximale waarden enzo
dempelwaarde = int 0.5 * max_lowpassFilter3
//Direction control
enum direction {Pos_RB, Pos_LB, Pos_RO, Pos_LO};
direction currentdirection = Pos_RB;
bool directionchanged = true;
int main()
{
while ()
{
switch (currentdirection)
{
case Pos_RB:
lowpassFilter1 = lowpassFilter1;
lowpassFilter2 = lowpassFilter2;
if (lowpassFilter3 > drempelwaarde)
{
currentdirection == Pos_LB;
cirectionchanged = true;
}
break;
case Pos_LB:
lowpassFilter1 = lowpassFilter1 * int -1;
lowpassFilter2 = lowpassFilter2;
if (lowpassFilter3 > drempelwaarde)
{
currentdirection == Pos_RO;
cirectionchanged = true;
}
break;
case Pos_RO:
lowpassFilter1 = lowpassFilter1;
lowpassFilter2 = lowpassFilter2 * int -1;
if (lowpassFilter3 > drempelwaarde)
{
currentdirection == Pos_LO;
cirectionchanged = true;
}
break;
case Pos_LO:
lowpassFilter1 = lowpassFilter1 * int -1;
lowpassFilter2 = lowpassFilter2 * int -1;
if (lowpassFilter3 > drempelwaarde)
{
currentdirection == Pos_RB;
cirectionchanged = true;
}
break;
}