Control up to two motors using filtered EMG signals and a PID controller
Dependencies: FastPWM HIDScope MODSERIAL QEI Matrix biquadFilter controller errorFetch mbed motorConfig refGen MatrixMath inverseKinematics
Fork of Minor_test_serial by
Diff: main.cpp
- Revision:
- 9:5f0e796c9489
- Parent:
- 8:0067469c3389
- Child:
- 10:e23cbcdde7e3
diff -r 0067469c3389 -r 5f0e796c9489 main.cpp --- a/main.cpp Tue Sep 19 14:50:53 2017 +0000 +++ b/main.cpp Tue Sep 19 15:25:42 2017 +0000 @@ -1,11 +1,12 @@ #include "mbed.h" #include "MODSERIAL.h" #include "HIDScope.h" +#include "QEI.h" HIDScope scope(2); Ticker AInTicker; -AnalogIn aIn1(A0); +AnalogIn button1(A4); volatile float x; volatile float x_prev =0; @@ -14,7 +15,7 @@ void ReadAnalogInAndFilter() { - x = ledBrightness; // Capture data + x = button1; // Capture data scope.set(0, x); // store data in first element of scope memory y = (x_prev + x)/2.0; // averaging filter scope.set(1, y); // store data in second element of scope memory @@ -27,7 +28,7 @@ float pwmPeriod = 1.0/5000.0; AnalogIn pot(A5); -DigitalIn button1(D3); + DigitalIn button2(D6); @@ -40,20 +41,15 @@ pc.baud(115200); AInTicker.attach(&ReadAnalogInAndFilter, 0.01); ledPwm.period(pwmPeriod); + pc.printf("Hello world"); + int counts; + + QEI Encoder(D12,D13,NC,32); while (true) { - if(!button1){ - if(ledBrightness >= 0.05){ - ledBrightness = ledBrightness - 0.05; - } - } - if(!button2){ - if(ledBrightness <= 0.95){ - ledBrightness = ledBrightness + 0.05; - } - } - ledPwm = ledBrightness; - wait(0.1f); + counts = Encoder.getPulses(); + pc.printf("Number of pulses is %i", counts); + wait(0.5); }