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 MODSERIAL mbed-dsp mbed Encoder
Fork of Lampje_EMG_Gr6 by
Revision 1:099b19376f16, committed 2014-10-15
- Comitter:
- jessekaiser
- Date:
- Wed Oct 15 14:11:33 2014 +0000
- Parent:
- 0:db396b9f4b4c
- Child:
- 2:39e1bde54e73
- Commit message:
- poging 1;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Oct 15 14:07:03 2014 +0000
+++ b/main.cpp Wed Oct 15 14:11:33 2014 +0000
@@ -7,7 +7,7 @@
DigitalOut myled1(LED_RED);
DigitalOut myled2(LED_GREEN);
DigitalOut myled3(LED_BLUE);
-PwmOut filtered_emg(PTD4);
+PwmOut motorsignal(PTD4);
//Define objects
AnalogIn emg0(PTB1); //Analog input
@@ -23,6 +23,7 @@
float highpass_const[] = {0.956542835577484, -1.913085671154968, 0.956542835577484, 1.911196288237583, -0.914975054072353};
//state values
float highpass_states[4];
+float filtered_emg;
/** Looper function
@@ -38,11 +39,13 @@
* in the example below, the variable is not re-used in the main function, and is thus declared
* local in the looper function only.
**/
+
+
void looper()
{
- /*variable to store value in*/
+ /*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)
@@ -52,7 +55,7 @@
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
@@ -75,11 +78,11 @@
}
int main()
-{
+{
pc.baud(115200);
-
+
Ticker log_timer;
- //set up filters. Use external array for constants
+ //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);
@@ -88,53 +91,49 @@
* Please mind that the parentheses after looper are omitted when using attach.
*/
log_timer.attach(looper, 0.001);
- while(1) //Loop
- {
- /*Empty!*/
- /*Everything is handled by the interrupt routine now!*/
- {
- char c = '0';
- while(1) {
- pc.printf("Het programma blijft knipperen totdat er op '1' wordt gedrukt.\n");
- do {
- myled1 = 1;
- myled2 = 1;
- myled3 = 1;
- wait(1);
- myled1 = 1;
- myled2 = 0;
- myled3 = 1;
- wait(1);
- if(pc.readable()) {
- c = pc.getc();
+ while(1) { //Loop
+ /*Empty!*/
+ /*Everything is handled by the interrupt routine now!*/
+ {
+ char c = '0';
+ while(1) {
+ pc.printf("Het programma blijft knipperen totdat er op '1' wordt gedrukt.\n");
+ do {
+ myled1 = 1;
+ myled2 = 0;
+ myled3 = 1;
+
+
+ }
}
- } while(filtered_emg < 0.04);
- //c = pc.getc();
- while(filtered_emg.read() > 0.04) { //Wanneer er op 1 wordt gedrukt gaat het lampje rood knipperen
- 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();
+ while(filtered_emg < 0.04);
+ //c = pc.getc();
+ while(filtered_emg > 0.04) { //Wanneer het EMG signaal een piek geeft wordt het volgende uitgevoerd.
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; }
+ 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();
@@ -147,7 +146,7 @@
}
}
}
- }
+}
}
int i;
@@ -161,11 +160,10 @@
void b (void)
{
int i;
-
+
i=66;
int j = a();
pc.print(i);
- }
+}
b();
-
\ No newline at end of file
