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-dsp mbed
Fork of Lampje_EMG_Gr6 by
Revision 12:9e6e49af9304, committed 2014-10-22
- Comitter:
- irisl
- Date:
- Wed Oct 22 15:12:34 2014 +0000
- Parent:
- 11:bc24a271e6cf
- Child:
- 13:493a953a2a85
- Commit message:
- Van 50 samples wordt het gemiddelde genomen om zo de grafiek 'gladder'te maken
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Oct 20 13:37:36 2014 +0000
+++ b/main.cpp Wed Oct 22 15:12:34 2014 +0000
@@ -12,7 +12,7 @@
//Define objects
AnalogIn emg0(PTB1); //Analog input
AnalogIn emg1(PTB2); //Analog input
-HIDScope scope(2);
+HIDScope scope(4);
arm_biquad_casd_df1_inst_f32 lowpass_biceps;
arm_biquad_casd_df1_inst_f32 lowpass_deltoid;
@@ -32,8 +32,36 @@
//De globale variabele voor het gefilterde EMG signaal
float filtered_biceps;
float filtered_deltoid;
+float filtered_average_bi;
+float filtered_average_del;
+void average_biceps(float filtered_biceps,float *average)
+{
+ static float total=0;
+ static float number=0;
+ total = total + filtered_biceps;
+ number = number + 1;
+ if ( number == 50) {
+ *average = total/50;
+ total = 0;
+ number = 0;
+ }
+}
+
+void average_deltoid(float filtered_input,float *average_output)
+{
+ static float total=0;
+ static float number=0;
+ total = total + filtered_input;
+ number = number + 1;
+ if ( number == 50) {
+ *average_output = total/50;
+ total = 0;
+ number = 0;
+ }
+}
+
/** Looper function
* functions used for Ticker and Timeout should be of type void <name>(void)
* i.e. no input arguments, no output arguments.
@@ -68,21 +96,26 @@
arm_biquad_cascade_df1_f32(&highnotch_biceps, &emg_value1_f32, &filtered_biceps, 1 );
filtered_biceps = fabs(filtered_biceps);
arm_biquad_cascade_df1_f32(&lowpass_biceps, &filtered_biceps, &filtered_biceps, 1 );
-
+ average_biceps(filtered_biceps,&filtered_average_bi);
//process emg deltoid
arm_biquad_cascade_df1_f32(&highnotch_deltoid, &emg_value2_f32, &filtered_deltoid, 1 );
filtered_deltoid = fabs(filtered_deltoid);
arm_biquad_cascade_df1_f32(&lowpass_deltoid, &filtered_deltoid, &filtered_deltoid, 1 );
+ average_deltoid(filtered_deltoid, &filtered_average_del);
/*send value to PC. */
//scope.set(0,emg_value1); //Raw EMG signal biceps
//scope.set(1,emg_value2); //Raw EMG signal Deltoid
scope.set(0,filtered_biceps); //processed float biceps
- scope.set(1,filtered_deltoid); //processed float deltoid
+ scope.set(1,filtered_average_bi); //processed float deltoid
+ scope.set(2,filtered_deltoid); //processed float biceps
+ scope.set(3,filtered_average_del); //processed float deltoid
scope.send();
}
+
+
void BlinkRed(int n)
{
for (int i=0; i<n; i++) {
