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 3:0895fa0a6ca4, committed 2014-10-16
- Comitter:
- jessekaiser
- Date:
- Thu Oct 16 13:25:38 2014 +0000
- Parent:
- 2:39e1bde54e73
- Child:
- 4:40aa1fb60a24
- Commit message:
- 2 EMG signalen meten, gefilterd. Poging 1;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Oct 16 12:51:13 2014 +0000
+++ b/main.cpp Thu Oct 16 13:25:38 2014 +0000
@@ -10,9 +10,9 @@
PwmOut motorsignal(PTD4);
//Define objects
-AnalogIn emg0(PTB1); //Analog input
+AnalogIn emg0(PTB1); //Analog input
AnalogIn emg1(PTB2); //Analog input
-HIDScope scope(3);
+HIDScope scope(4);
arm_biquad_casd_df1_inst_f32 lowpass;
//lowpass filter settings: Fc = 225 Hz, Fs = 500 Hz, Gain = -3 dB
@@ -49,14 +49,14 @@
{
/*variable to store value in*/
uint16_t emg_value1;
- uint16_t emg_value2;
+ uint16_t emg_value2;
float emg_value1_f32;
float emg_value2_f32;
/*put raw emg value both in red and in emg_value*/
emg_value1 = emg0.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V)
emg_value1_f32 = emg0.read();
-
+
emg_value2 = emg1.read_u16();
emg_value2_f32 = emg1.read();
@@ -64,16 +64,17 @@
arm_biquad_cascade_df1_f32(&highpass, &emg_value1_f32, &filtered_biceps, 1 );
filtered_biceps = fabs(filtered_biceps);
arm_biquad_cascade_df1_f32(&lowpass, &filtered_biceps, &filtered_biceps, 1 );
-
+
//process emg deltoid
arm_biquad_cascade_df1_f32(&highpass, &emg_value2_f32, &filtered_deltoid, 1 );
- filtered_biceps = fabs(filtered_biceps);
+ filtered_deltoid = fabs(filtered_deltoid);
arm_biquad_cascade_df1_f32(&lowpass, &filtered_deltoid, &filtered_deltoid, 1 );
/*send value to PC. */
- scope.set(0,emg_value1); //uint value
- scope.set(1,filtered_biceps); //processed float biceps
- scope.set(2,filtered_deltoid); //processed float deltoid
+ scope.set(0,emg_value1); //Raw EMG signal biceps
+ scope.set(1,emg_value2); //Raw EMG signal Deltoid
+ scope.set(2,filtered_biceps); //processed float biceps
+ scope.set(3,filtered_deltoid); //processed float deltoid
scope.send();
}
@@ -84,25 +85,39 @@
myled1 = 1;
myled2 = 1;
myled3 = 1;
- wait(1);
+ wait(0.1);
myled1 = 0;
myled2 = 1;
myled3 = 1;
- wait(1);
+ wait(0.1);
}
}
-void BlinkGreen (int n)
+void BlinkGreen ()
+{
+
+ myled1 = 1;
+ myled2 = 1;
+ myled3 = 1;
+ wait(0.1);
+ myled1 = 1;
+ myled2 = 0;
+ myled3 = 1;
+ wait(0.1);
+}
+
+
+void BlinkBlue(int n)
{
for (int i=0; i<n; i++) {
myled1 = 1;
myled2 = 1;
myled3 = 1;
- wait(1);
+ wait(0.1);
myled1 = 1;
- myled2 = 0;
- myled3 = 1;
- wait(1);
+ myled2 = 1;
+ myled3 = 0;
+ wait(0.1);
}
}
@@ -126,73 +141,49 @@
{
char c = '0';
while(1) {
- pc.printf("Het programma blijft knipperen totdat er op '1' wordt gedrukt.\n");
+ pc.printf("Span de biceps aan om het instellen te starten");
do {
- myled1 = 1;
- myled2 = 0;
- myled3 = 1;
+ BlinkGreen();
}
- }
- while(filtered_biceps < 0.04);
- //c = pc.getc();
- while(filtered_biceps > 0.04) { //Wanneer het EMG signaal een piek geeft wordt het volgende uitgevoerd.
- c = '0';
- BlinkRed(2);
- if (pc.readable()) { //Wanneer er binnen de vastgestelde tijd weer op 1 wordt gedrukt, gaat het lampje blauw knipperen, anders reset.
- c = pc.getc();
- c = '0';
- myled1 = 1;
- myled2 = 1;
- myled3 = 1;
- wait(1);
- myled1 = 1;
- myled2 = 1;
- myled3 = 0;
- wait(1);
- myled1 = 1;
- myled2 = 1;
- myled3 = 1;
- wait(1);
- myled1 = 1;
- myled2 = 1;
- myled3 = 0;
- wait(1);
- } else if (c != '1') {
- break;
- }
+ while(filtered_biceps < 0.04);
+ while(filtered_biceps > 0.04) { //Wanneer het EMG signaal een piek geeft wordt het volgende uitgevoerd.
+ BlinkRed(2);
+ if (pc.readable()) { //Wanneer er binnen de vastgestelde tijd weer op 1 wordt gedrukt, gaat het lampje blauw knipperen, anders reset.
+ c = pc.getc();
+ c = '0';
+ myled1 = 1;
+ myled2 = 1;
+ myled3 = 1;
+ wait(1);
+ myled1 = 1;
+ myled2 = 1;
+ myled3 = 0;
+ wait(1);
+ myled1 = 1;
+ myled2 = 1;
+ myled3 = 1;
+ wait(1);
+ myled1 = 1;
+ myled2 = 1;
+ myled3 = 0;
+ wait(1);
+ } else if (c != '1') {
+ break;
+ }
- if(pc.readable()) {
- c = pc.getc();
- myled1 = 1;
- myled2 = 0;
- myled3 = 1;
- wait(5); //Dit wordt de duur van het slaan en teruggaan naar de beginpositie totdat er opnieuw gemeten kan worden.
- c = '0';
+ if(pc.readable()) {
+ c = pc.getc();
+ myled1 = 1;
+ myled2 = 0;
+ myled3 = 1;
+ wait(5); //Dit wordt de duur van het slaan en teruggaan naar de beginpositie totdat er opnieuw gemeten kan worden.
+ c = '0';
+ }
}
}
}
}
}
-}
-
-int i;
-
-int a(void)
-{
- i=22;
- return i;
-}
-
-void b (void)
-{
- int i;
-
- i=66;
- int j = a();
- pc.print(i);
-}
-
-b();
