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: Encoder HIDScope MODSERIAL mbed
Fork of TEST by
Revision 2:902c38ab4f5a, committed 2014-10-08
- Comitter:
- Daanmk
- Date:
- Wed Oct 08 15:16:17 2014 +0000
- Parent:
- 1:c66edcd91108
- Child:
- 3:ef4d1423db92
- Commit message:
- filterhighpass;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Oct 01 13:05:49 2014 +0000
+++ b/main.cpp Wed Oct 08 15:16:17 2014 +0000
@@ -14,11 +14,12 @@
#include "encoder.h"
#include "HIDScope.h"
//Define objects
-Ticker log_timer;
-HIDScope scope(6);
-PwmOut red(LED_RED);
-PwmOut green(LED_GREEN);
-PwmOut blue(LED_BLUE);
+#define A1 0.807313721035803
+#define A2 -0.263720649619515
+#define B1 -1.721118336253692
+#define B2 0.721118336253692
+HIDScope scope(2);
+
AnalogIn emgbc(PTB0); //Onderste bordje biceps meting
AnalogIn emgtr(PTB1); //Tweede bordje triceps meting
//DigitalOut motordirA(PTD3);
@@ -27,43 +28,26 @@
//Encoder motor2(PTD5,PTC8);
MODSERIAL pc(USBTX,USBRX);
-//float emg1,emg2,emg1_high,emg2_high,emg1filtered,emg2filtered;
+
+float filter(float);
-//void meten()
-//{
-// //int i=0;
-// //emg signaal verwerken en offset verwijderen:
-// emg1 = (emgbc.read()-0.5)*2; /* BICEPS */
-// emg2 = (emgtr.read()-0.5)*2; /* TRICEPS */
-//}
-void looper()
-{
- /*variable to store value in*/
- uint16_t emg_value0;
- uint16_t emg_value1;
- /*put raw emg value both in red and in emg_value*/
- red.write(emgbc.read()); // read float value (0..1 = 0..3.3V)
- blue.write(emgtr.read());
- emg_value0 = emgbc.read_u16();
- emg_value1 = emgtr.read_u16(); // read direct ADC result (0..4096 = 0..3.3V)
- /*send value to PC. Line below is used to prevent buffer overrun */
- scope.set(0,emg_value0);
- scope.set(1,red.read());
- scope.set(2,emg_value1);
- scope.set(3,blue.read());
- scope.set(4,emg_value1);
- scope.set(5,blue.read());
- scope.send();
+int main() {
+ float x,y;
+ while(true) {
+ x = (emgbc.read()-0.5)*2;
+ y=filter(x);
+ scope.set(0,x);
+ scope.set(1,y);
+ scope.send();
+ }
}
-int main()
-{
- /*setup baudrate. Choose the same in your program on PC side*/
- pc.baud(115200);
- /*set the period for the PWM to the red LED*/
- red.period_ms(2);
- log_timer.attach(looper, 0.005);
- while(1) //Loop
- {
- }
-}
\ No newline at end of file
+float filter(float x) {
+ static float y,x1,y1,x2,y2;
+ y = A1*y1+A2*y2+x+B1*x1+B2*x2;
+ x2=x1;
+ x1=x;
+ y2=y1;
+ y1=y;
+ return y;
+}
