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
Diff: Project_main.cpp
- Revision:
- 32:aaf01b1bf05d
- Parent:
- 31:d8eaf0ce8517
- Child:
- 33:a78ec776dfd5
diff -r d8eaf0ce8517 -r aaf01b1bf05d Project_main.cpp
--- a/Project_main.cpp Mon Oct 06 13:27:01 2014 +0000
+++ b/Project_main.cpp Tue Oct 07 10:13:12 2014 +0000
@@ -9,15 +9,15 @@
AnalogIn emg0(PTB1); //Analog input biceps
AnalogIn emg1(PTB2); //Analog input triceps
-PwmOut emg_bifloat(PTD4); //Float voor EMG-waarde biceps, VRAAG: waarom we hier een PwmOut voor gebruiken
+PwmOut emg_bifloat(PTD4); //Float voor EMG-waarde biceps, VRAAG: waarom we hier een PwmOut voor gebruiken - kunnen we geen float gebruiken?
PwmOut emg_trifloat(PTA4); //Float voor EMG-waarde triceps
PwmOut red(LED_RED);
PwmOut green(LED_GREEN);
PwmOut blue(LED_BLUE);
-int direction = 0;
-int force = 0;
+int8_t direction = 0;
+int8_t force = 0;
Ticker log_timer;
Ticker reset_timer;
@@ -47,7 +47,7 @@
scope.send();
}
-void resetlooper()
+void resetlooper() // VRAAG: wat gebeurt er wanneer en resetlooper en looper tegelijkertijd gecalled worden?!
{
if(emg_trifloat.read()>0.8 && direction != 0) { //dit is alleen mogelijk wanneer directionchoice is gemaakt
direction = 0;
@@ -65,6 +65,8 @@
log_timer.attach(looper, 0.001); // The looper() function will be called every 0.001 seconds (with the ticker object)
reset_timer.attach(resetlooper, 0.1); //
+ /* EMG-singaal van biceps en triceps worden hier gefilterd*/
+
goto directionchoice; // goes to first while(1) for the deciding the direction
while(1) { //Loop keuze DIRECTION
@@ -133,6 +135,7 @@
red=0;
green=1;
blue=1;
+ //TE DOEN een if statement die controleert of direction 0 is (dus of triceps gereset is)
for (int lag=0; lag<TIMEBETWEENBLINK; lag++) {
if(emg_bifloat.read()>0.8) { // 0.8 klopt niet als grenswaarde. #nofilter
force = 1;
@@ -151,6 +154,7 @@
red =1;
green=0;
blue=1;
+ //TE DOEN een if statement die controleert of direction 0 is (dus of triceps gereset is)
for (int lag=0; lag<TIMEBETWEENBLINK; lag++) {
if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter
force = 2;
@@ -169,6 +173,7 @@
red=1;
green=1;
blue=0;
+ //TE DOEN een if statement die controleert of direction 0 is (dus of triceps gereset is)
for (int lag=0; lag<TIMEBETWEENBLINK; lag++) {
if(emg_bifloat.read()>0.8) { //0.8 klopt niet als grenswaarde. #nofilter
force = 3;
@@ -186,14 +191,9 @@
}
}
choicesmade:
-
- red = 0;
- green = 0;
- blue = 0; // wit lampje
-
- if(direction == 0 || force == 0) {
- pc.printf("error");
- }
+
+ /* Vanaf hier komt de aansturing van de motor (inclusief de controller)*/
+
if(direction == 1 && force == 1) { // links zwak
pc.printf("links zwak");
}
@@ -221,4 +221,11 @@
if(direction == 3 && force == 3) { // rechts sterk
pc.printf("rechts sterk");
}
+ if(direction == 0 || force == 0) { // wanneer de triceps in de korte tijd is aangespannen nadat beide keuzes zijn gemaakt
+ pc.printf("error");
+ }
+
+ red = 0;
+ green = 0;
+ blue = 0; // wit lampje
}
\ No newline at end of file