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: main.cpp
- Revision:
- 3:3d5ad874add0
- Parent:
- 2:083d74325bfb
- Child:
- 4:61bdf601e7b0
diff -r 083d74325bfb -r 3d5ad874add0 main.cpp
--- a/main.cpp Fri Jan 08 10:44:48 2016 +0000
+++ b/main.cpp Fri Jan 08 11:33:34 2016 +0000
@@ -2,8 +2,8 @@
Some variables are also numbered at the end. The numbers stands for the muscle that controls it.
Biceps = 1 = lower right arm(wrist flexors)
Triceps = 2 = upper right arm(wrist extensors)
-Pectoralis Major = 3 = upper left arm(wrist flexors)
-Deltoid posterior = 4 = lower left arm(wrist extensors)
+Pectoralis Major = 3 = upper left arm(wrist extensors)
+Deltoid posterior = 4 = lower left arm(wrist flexors)
The "x" and "y" at the end of variables stand for the X-movement or Y-movement respectivly.
The code has been revised to work with the new board and also has a secondary way of controlling it using a joystick
*/
@@ -18,10 +18,10 @@
#define Damp 5 //Deceleration of the motor
#define Mass 1 // Mass value
#define dt 0.01 //Sample frequency
-#define EMG_tresh1 0.02
-#define EMG_tresh2 0.02
-#define EMG_tresh3 0.02
-#define EMG_tresh4 0.02
+#define EMG_tresh1 0.01
+#define EMG_tresh2 0.01
+#define EMG_tresh3 0.01
+#define EMG_tresh4 0.01
#define H_Gain 5
#define Pt_x 0.80
#define Pt_y 0.50
@@ -215,12 +215,12 @@
// send value to PC.
- scope.set(0,filtered_pect); //Filtered EMG signal
- scope.set(1,filtered_deltoid);
+ scope.set(0,filtered_biceps); //Filtered EMG signals
+ scope.set(1,filtered_triceps);
/*scope.set(2,filtered_pect);
scope.set(3,filtered_deltoid);*/
- scope.set(2,emg3.read());//testing emg signal for cause of variance
- scope.set(3,emg4.read());
+ scope.set(2,filtered_pect);
+ scope.set(3,filtered_deltoid);
scope.send();
}
@@ -268,8 +268,8 @@
void looper_motorx()
{
- /* emg_x = (filtered_pect - filtered_deltoid);
- emg_x_abs = fabs(emg_x);
+ emg_x = (filtered_pect - filtered_deltoid);
+ /*emg_x_abs = fabs(emg_x);
force2 = emg_x_abs*K_Gain;
force2 = force2 - damping2;
acc2 = force2/Mass;
@@ -278,25 +278,25 @@
step_freq2 = setpoint * speed2;
Stepx.period(1.0/step_freq2);
speed_old2 = speed2;
-
+*/
if (emg_x > 0) {
Dirx = 1;
}
if (emg_x < 0) {
Dirx = 0;
}
- //Speed limit
+ /*//Speed limit
if (speed2 > 1) {
speed2 = 1;
step_freq2 = setpoint;
- }
+ }*/
//EMG treshold
if (filtered_pect < EMG_tresh3 && filtered_deltoid < EMG_tresh4) {
Enablex = 1; //Enable = 1 turns the motor off.
} else {
Enablex = 0;
}
-*/
+/*
//0.06 for biceps and triceps movement, 0.03 for wrist lower and upper motion left arm upper 2 connections
if (filtered_pect > 0.03) {//right cart movement
Dirx.write(1);
@@ -314,7 +314,7 @@
Enablex.write(1);
}
else{}
-}
+}*/
int main()
{
@@ -397,7 +397,7 @@
looptimer1.attach(looper_motorx, 0.01); //X-Spindle motor
- looptimer2.attach(looper_motory, 0.01); //Y-Spindle motor
+ //looptimer2.attach(looper_motory, 0.01); //Y-Spindle motor
while(1){};
}
\ No newline at end of file