Project of Biorobotics

Dependencies:   HIDScope MODSERIAL QEI mbed biquadFilter

Fork of TutorialPES by Jurriën Bos

Revision:
2:dc9766657afb
Parent:
1:4bf64d003f3a
Child:
3:c8f0fc045505
diff -r 4bf64d003f3a -r dc9766657afb main.cpp
--- a/main.cpp	Mon Oct 15 13:55:45 2018 +0000
+++ b/main.cpp	Mon Oct 22 08:15:41 2018 +0000
@@ -1,5 +1,8 @@
 #include "mbed.h"
 #include "MODSERIAL.h"
+#include "HIDScope.h"
+#include "QEI.h"
+
 MODSERIAL pc(USBTX, USBRX);
 DigitalOut DirectionPin1(D4);
 DigitalOut DirectionPin2(D7);
@@ -8,15 +11,46 @@
 DigitalIn Knop1(D2);
 AnalogIn pot1 (A5);
 AnalogIn pot2 (A4);
+AnalogIn emg0( A0 );
+AnalogIn emg1( A1 );
+AnalogIn emg2( A2 );
+AnalogIn emg3( A3 );
 
-Ticker mycontrollerTicker1;
-Ticker mycontrollerTicker2;
-Ticker Velo1;
-Ticker Velo2;
+Ticker      printTicker;
+Ticker      mycontrollerTicker1;
+Ticker      mycontrollerTicker2;
+Ticker      Velo1;
+Ticker      Velo2;
+Ticker      EMG_Read_Ticker;
+Ticker      sample_timer;
+HIDScope    scope( 4 );
 
-//const float maxVelocity=8.4; // in rad/s
+volatile float Bicep_Right = 0.0;
+volatile const float maxVelocity=8.4; // in rad/s
 volatile float referenceVelocity1 = 0.5; //dit is de gecentreerde waarde en dus de nulstand
 volatile float referenceVelocity2 = 0.5;
+
+volatile int counts1;
+volatile int counts2;
+QEI Encoder1(D12,D13,NC,64,QEI::X4_ENCODING);
+QEI Encoder2(D10,D11,NC,64,QEI::X4_ENCODING);
+
+void EMG_Read()
+{
+    Bicep_Right = emg0.read();
+}
+
+void sample()
+{
+    
+    scope.set(0, emg0.read() );
+    scope.set(1, emg1.read() );
+    scope.set(2, emg2.read() );
+    scope.set(3, emg3.read() );
+  
+    scope.send();
+}
+
    
 void velocity1()
     {
@@ -72,15 +106,37 @@
         PwmPin2 = fabs(u);
     }
 
+void Printing()
+{
+    float v1 = fabs(referenceVelocity1) * maxVelocity;
+    float v2 = fabs(referenceVelocity2) * maxVelocity;
+    
+    //eventueel nog counts -> rad/s 
+    
+    //pc.printf("%f \n %f snelheid Motor1 \n %f snelheid Motor2 \n", Bicep_Right,v1,v2);
+    pc.printf("%i counts van m1, %i counts van m2", counts1, counts2);
+    
+    
+}
+
 int main()
 {
     pc.baud(115200);    
     PwmPin1.period_us(120); //60 microseconds pwm period, 16.7 kHz 
+    
+    counts1 = Encoder1.getPulses();
+    counts2 = Encoder2.getPulses();
+    
+    sample_timer.attach(&sample, 0.002);
+    EMG_Read_Ticker.attach(&EMG_Read, 0.002);
+    
     mycontrollerTicker1.attach(motor1, 0.002);//500Hz
     Velo1.attach(velocity1, 0.002);
     mycontrollerTicker2.attach(motor2, 0.002);
     Velo2.attach(velocity2, 0.002);
     
+    printTicker.attach(&Printing, 2.0);
+    
     while(true)
     {        
     }