Poep Hoofd / Mbed 2 deprecated PoolRobot_Code

Dependencies:   HIDScope mbed MODSERIAL QEI

Revision:
6:452e301a105a
Parent:
5:4c27dea81e4c
Child:
7:c17f5473f4e1
--- a/main.cpp	Mon Oct 16 09:06:46 2017 +0000
+++ b/main.cpp	Mon Oct 16 13:07:53 2017 +0000
@@ -1,96 +1,33 @@
-#include "mbed.h"
-#include"BiQuad.h"
+#include "EMG.h"
+#include "Motor.h"
 #include "HIDScope.h"
 #include "MODSERIAL.h"
 
 //Initialize Analog EMG inputs
-AnalogIn    EMGData_1( A0 );
-AnalogIn    EMGData_2( A1 );
-AnalogIn    EMGData_3( A2 );
-AnalogIn    EMGData_4( A3 );
+EMG EMG_bi_r(A0);
+EMG EMG_bi_l(A1);
+EMG EMG_tri_r(A2);
+EMG EMG_tri_l(A3);
 
-HIDScope scope(4); // 4 channels of data
+
+
+HIDScope scope(1); // 4 channels of data
 Ticker MainTicker;
 MODSERIAL pc(USBTX, USBRX);
 
-const double Ts= 0.002;   //fs = 500Hz
-
-volatile double EMG_MainsReject_1 = 0;
-volatile double EMG_MainsReject_2 = 0;
-volatile double EMG_MainsReject_3 = 0;
-volatile double EMG_MainsReject_4 = 0;
-
-volatile double EMG_Filtered_1 = 0;
-volatile double EMG_Filtered_2 = 0;
-volatile double EMG_Filtered_3 = 0;
-volatile double EMG_Filtered_4 = 0;
-
-volatile double EMG_Abs_1 = 0;
-volatile double EMG_Abs_2 = 0;
-volatile double EMG_Abs_3 = 0;
-volatile double EMG_Abs_4 = 0;
+const double sample_time= 0.002;   //fs = 500Hz
 
-volatile double EMG_Envelope_1 = 0;
-volatile double EMG_Envelope_2 = 0;
-volatile double EMG_Envelope_3 = 0;
-volatile double EMG_Envelope_4 = 0;
 
-//High Pass Filter
-double a_0_0=1,                        a_0_1=-1.475480443592646,          a_0_2=0.586919508061190,
-       b_0_0=0.765599987913459,        b_0_1=-1.531199975826918,          b_0_2=0.765599987913459;
-           
-BiQuad HiPass(b_0_0, b_0_1, b_0_2, a_0_0, a_0_1, a_0_2);
-/***********/
-    
-//Low Pass Filter
-double a_1_0=1,                        a_1_1=-1.982228929792529,          a_1_2=0.982385450614126,
-       b_1_0=0.00003913020539916823,    b_1_1=0.00007826041079833645,           b_1_2=0.00003913020539916823;
-           
-BiQuad LoPass(b_1_0, b_1_1, b_1_2, a_1_0, a_1_1, a_1_2);
-/***********/
-    
-//Notch Filter
-double a_2_0=1,                        a_2_1=-1.525271192436899,          a_2_2=0.881618592363190,
-       b_2_0=0.940809296181595,        b_2_1=-1.525271192436899,          b_2_2=0.940809296181595;
-           
-BiQuad MainsReject(b_2_0, b_2_1, b_2_2, a_2_0, a_2_1, a_2_2);
-/***********/
 
 void ReadAndFilterEMG()
 {    
-    //MainsReject Filter EMG Data
-    EMG_MainsReject_1 = MainsReject.step(EMGData_1);
-    EMG_MainsReject_2 = MainsReject.step(EMGData_2);
-    EMG_MainsReject_3 = MainsReject.step(EMGData_3);
-    EMG_MainsReject_4 = MainsReject.step(EMGData_4);
-    /*****/
     
-    //High Pass Filter EMG Data
-    EMG_Filtered_1 = HiPass.step(EMG_MainsReject_1);
-    EMG_Filtered_2 = HiPass.step(EMG_MainsReject_2);
-    EMG_Filtered_3 = HiPass.step(EMG_MainsReject_3);
-    EMG_Filtered_4 = HiPass.step(EMG_MainsReject_4);
-    /*****/
-    
-    //Abs Filtered EMG Data
-    EMG_Abs_1 = abs(EMG_Filtered_1);
-    EMG_Abs_2 = abs(EMG_Filtered_2);
-    EMG_Abs_3 = abs(EMG_Filtered_3);
-    EMG_Abs_4 = abs(EMG_Filtered_4);
-    /*****/
-    
-    //Low Pass Filter
-    EMG_Envelope_1 = LoPass.step(EMG_Abs_1);
-    EMG_Envelope_2 = LoPass.step(EMG_Abs_2);
-    EMG_Envelope_3 = LoPass.step(EMG_Abs_3);
-    EMG_Envelope_4 = LoPass.step(EMG_Abs_4);
-    /*****/
     
     //Send scope data
-    scope.set(0, EMGData_1);    //Raw Data
-    scope.set(1, EMG_Filtered_1);   //Notch and High Pass Filtered
-    scope.set(2, EMG_Abs_1);    //Absolute value
-    scope.set(3, EMG_Envelope_1);   //Envelope Detected output
+    scope.set(0, EMG_bi_r.filter());    //Raw Data
+    //scope.set(1, EMG_Filtered_1);   //Notch and High Pass Filtered
+    //scope.set(2, EMG_Abs_1);    //Absolute value
+    //scope.set(3, EMG_Envelope_1);   //Envelope Detected output
     
     scope.send();
     /*****/ 
@@ -99,7 +36,7 @@
 int main(void)
 {
     pc.baud(115200);    //Set Baud rate for Serial communication
-    MainTicker.attach(&ReadAndFilterEMG, Ts);    //Attach time based interrupt
+    MainTicker.attach(&ReadAndFilterEMG, sample_time);    //Attach time based interrupt
     
     /*
     while(true)