werkend filter: 50 hz notch 20 hz hoogdoorlaat 80 hz laagdoorlaat geabsoluteerd vermenigvuldigd met 10

Dependencies:   HIDScope mbed-dsp mbed

Fork of P5-2 by Daan

Files at this revision

API Documentation at this revision

Comitter:
Daanmk
Date:
Thu Oct 09 12:26:39 2014 +0000
Child:
1:a21d78fa1712
Commit message:
Originieel, lowpass, highpass 0.5hz

Changed in this revision

HIDScope.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-dsp.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HIDScope.lib	Thu Oct 09 12:26:39 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/tomlankhorst/code/HIDScope/#e44574634162
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Oct 09 12:26:39 2014 +0000
@@ -0,0 +1,67 @@
+/***************************************/
+/*                                     */
+/*   BRONCODE GROEP 5, MODULE 9, 2014  */
+/*       *****-THE SLAP-******         */
+/*                                     */
+/* -Dominique Clevers                  */
+/* -Rianne van Dommelen                */
+/* -Daan de Muinck Keizer              */
+/* -David den Houting                  */
+/* -Marjolein Thijssen                 */
+/***************************************/
+#include "mbed.h"
+#include "HIDScope.h"
+#include "arm_math.h"
+
+//Define objects
+AnalogIn    emg0(PTB0); //Biceps
+AnalogIn    emg1(PTB1); //Triceps
+HIDScope scope(2);
+
+arm_biquad_casd_df1_inst_f32 lowpass;
+//constants for 5Hz lowpass
+float lowpass_const[] = {0.02008337 , 0.04016673 , 0.02008337 , 1.56101808 , -0.64135154};
+//state values
+float lowpass_states[4];
+arm_biquad_casd_df1_inst_f32 highpass;
+//constants for 0.5Hz highpass
+float highpass_const[] = {0.97803048, -1.95606096,  0.97803048, 1.95557824 , -0.95654368};
+//state values
+float highpass_states[4];
+
+void looper()
+{
+    /*variable to store value in*/    
+    uint16_t emg_value;
+    float filtered_emg;
+    float emg_value_f32;
+    /*put raw emg value both in red and in emg_value*/
+    emg_value = emg0.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V)
+    emg_value_f32 = emg0.read();
+
+    //process emg
+    arm_biquad_cascade_df1_f32(&highpass, &emg_value_f32, &filtered_emg, 1 );
+    filtered_emg = fabs(filtered_emg);
+    arm_biquad_cascade_df1_f32(&lowpass, &filtered_emg, &filtered_emg, 1 );
+    
+    /*send value to PC. */
+    scope.set(0,emg_value);     //uint value
+    scope.set(1,filtered_emg);  //processed float
+    scope.send();
+
+}
+
+int main()
+{
+    Ticker log_timer;
+   //set up filters. Use external array for constants
+    arm_biquad_cascade_df1_init_f32(&lowpass,1 , lowpass_const, lowpass_states);
+    arm_biquad_cascade_df1_init_f32(&highpass,1 ,highpass_const,highpass_states);
+    
+    log_timer.attach(looper, 0.005);
+    while(1) //Loop
+    {
+      /*Empty!*/
+      /*Everything is handled by the interrupt routine now!*/
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-dsp.lib	Thu Oct 09 12:26:39 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/mbed-official/code/mbed-dsp/#7a284390b0ce
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Oct 09 12:26:39 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/552587b429a1
\ No newline at end of file