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: HIDScope MODSERIAL QEI TextLCD mbed
Fork of TotalControlEmg2 by
Diff: main.cpp
- Revision:
- 18:eec0880fcded
- Parent:
- 17:cfe44346645c
- Child:
- 19:6c0245063b96
--- a/main.cpp Fri Oct 09 11:27:58 2015 +0000 +++ b/main.cpp Mon Oct 12 10:14:18 2015 +0000 @@ -3,9 +3,10 @@ #include "Filterdesigns.h" #include "Kalibratie.h" #include "MODSERIAL.h" //bugfix +#include "Mode.h" AnalogIn emg(A0); //Analog input van emg kabels -HIDScope scope(2); //2 scopes +HIDScope scope(3); //3 scopes Ticker EMGticker; MODSERIAL pc(USBTX, USBRX); //bugfix DigitalOut LedBlue(LED3); @@ -16,26 +17,42 @@ bool readymax = 0; bool readymin = 0; +double ymin; +double ymax; +double thresholdlow; +double thresholdmid; +double thresholdhigh; + +void EMGkalibratie(){ + LedBlue = 1; + Init(); + ymax = KalibratieMax(readymax); + ymin = KalibratieMin(readymin); + + // bepalen van thresholds voor aan/uit + thresholdlow = 0.2; // standaardwaarde + thresholdmid = 0.5 * ymax; // afhankelijk van max output gebruiker + thresholdhigh = 0.8 * ymax; + } void EMGfilter(){ //uitlezen emg signaal double u = emg.read(); - double y = Filterdesigns(u); -// pc.printf("%f \n",y); //bugfix + double y = Filterdesigns(u, ymin); + //pc.printf("%f \n",y); //bugfix // Plotten in HIDscope + int mode = Mode(y, ymax, thresholdlow, thresholdmid, thresholdhigh); //bepaald welk signaal de motor krijgt (aan, uit, middel) scope.set(0,u); //ongefilterde waarde naar scope 1 scope.set(1,y); //gefilterde waarde naar scope 2 + scope.set(2,mode); scope.send(); //stuur de waardes naar HIDscope } int main(){ - LedBlue = 1; - Init(); - double ymax = KalibratieMax(readymax); - double ymin = KalibratieMin(readymin); - pc.printf("ymax = %f en ymin = %f \n",ymax, ymin); //bugfix + EMGkalibratie(); + //pc.printf("ymax = %f en ymin = %f \n",ymax, ymin); //bugfix while(readymax == 1 && readymin == 1){ LedBlue = 0;