Laagdoorlaatfilter MBED + HIDscope + optionele LCD
Dependencies: HIDScope MODSERIAL TextLCD mbed
main.cpp
- Committer:
- phgbartels
- Date:
- 2014-10-16
- Revision:
- 0:8405998d18d6
File content as of revision 0:8405998d18d6:
#include "mbed.h" #include "MODSERIAL.h" #include "HIDScope.h" #include "TextLCD.h" /*definieren van de filtercoëfficienten, waarbij A. de y-componenten(output) geven en B. de x-componenten(input)*/ #define A1 -1.3490 #define A2 0.5140 #define B0 0.7157 #define B1 -1.4315 #define B2 0.7157 /*aantal kanalen die naar de HIDscope */ HIDScope scope(2); /*Definieren dat we 2 kanalen naar de HID-scope willen sturen*/ AnalogIn emg(PTB1); /*Analog input pin definieren*/ TextLCD lcd(PTD2, PTA12, PTB2, PTB3, PTC2, PTA13, TextLCD::LCD16x2); /*pinnen voor textLCD toeschrijven naar de library tekstLCD, zodat de functies uit die bibliotheek gebruikt kunnen worden*/ float(y); /*y moet een floating point worden(type definieren)*/ float filter(float); /*naar de functie filter willen we een float toeschrijven, welke later gedefinieerd mag worden*/ int main() { float x; /*x moet een floating point worden*/ while(true) { x = emg.read(); /*het EMG signaal vanaf de pin wordt opgeslagen in x*/ y = filter(x); /*x gaat in de filter*/ scope.set(0, y); /*het bewerkte signaal wordt op kanaal 1 getoont*/ scope.set(1,emg); /*het ruwe signaal wordt op kanaal 2 getoont*/ scope.send(); /*Hiermee stuur je de data daadwerkelijk naar je pc*/ lcd.cls(); /*schoonmaken LCD scherm*/ /*hieronder een leuke if functie zodat onze display aangeeft of iemand een lage, middel of hoge aanspanning heeft.*/ if (abs(y) <= 0.05){ lcd.printf("Lage\naanspanning"); wait(0.2); } else if (abs(y) >= 0.05 && abs(y) <= 0.10){ lcd.printf("Middel\naanspanning"); wait(0.2); } else{ lcd.printf("Hoge\naanspanning"); wait(0.2); } wait(0.005); /*wacht 0.005s, omdat we meten met 200Hz*/ } } float filter(float x) { /*de filter functie! Waarbij de x de input is en y de output!*/ static float y, x1, y1, x2, y2; y = -A1*y1-A2*y2+B0*x+B1*x1+B2*x2; x2 = x1; x1 = x; y2 = y1; y1 = y; return y; }