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 mbed MODSERIAL
Diff: main.cpp
- Revision:
- 19:6c0245063b96
- Parent:
- 18:eec0880fcded
- Child:
- 20:11e1244ad2ad
diff -r eec0880fcded -r 6c0245063b96 main.cpp
--- a/main.cpp Mon Oct 12 10:14:18 2015 +0000
+++ b/main.cpp Tue Oct 13 12:28:32 2015 +0000
@@ -10,6 +10,7 @@
Ticker EMGticker;
MODSERIAL pc(USBTX, USBRX); //bugfix
DigitalOut LedBlue(LED3);
+DigitalIn button(PTA4);
//Sample frequentie
double Fs = 500; //Hz
@@ -23,19 +24,22 @@
double thresholdmid;
double thresholdhigh;
-void EMGkalibratie(){
+void EMGkalibratie()
+{
LedBlue = 1;
Init();
ymax = KalibratieMax(readymax);
+ wait(1);
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;
- }
+ thresholdlow = 0.08; // standaardwaarde
+ thresholdmid = 0.3 * ymax; // afhankelijk van max output gebruiker
+ thresholdhigh = 0.4 * ymax;
+}
-void EMGfilter(){
+void EMGfilter()
+{
//uitlezen emg signaal
double u = emg.read();
double y = Filterdesigns(u, ymin);
@@ -44,20 +48,23 @@
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.set(2,mode);
scope.send(); //stuur de waardes naar HIDscope
- }
-
+}
-int main(){
-
- EMGkalibratie();
- //pc.printf("ymax = %f en ymin = %f \n",ymax, ymin); //bugfix
-
- while(readymax == 1 && readymin == 1){
- LedBlue = 0;
+int main()
+{
+ while(1) {
+ if(readymax == 0 || readymin == 0) {
+ EMGkalibratie();
+ pc.printf("ymax = %f en ymin = %f \n",ymax, ymin); //bugfix
+ }
EMGticker.attach(&EMGfilter, t); //500H
- while(1){}
+ while(readymax == 1 && readymin == 1) {
+ if(button == 0) {
+ readymax = 0;
+ readymin = 0;
+ }
}
}
-
\ No newline at end of file
+}