Hidscope + EMG
Dependencies: HIDScope biquadFilter mbed
main.cpp@1:7eadfb7fd5c9, 2018-10-22 (annotated)
- Committer:
- Iriskolenbrander9
- Date:
- Mon Oct 22 11:19:47 2018 +0000
- Revision:
- 1:7eadfb7fd5c9
- Parent:
- 0:5ad817857e29
- Child:
- 2:b2d117949de7
Attempt at filtering emg signal 1 with Lowpass filter
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Iriskolenbrander9 | 0:5ad817857e29 | 1 | #include "mbed.h" |
Iriskolenbrander9 | 0:5ad817857e29 | 2 | #include "HIDScope.h" |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 3 | #include "BiQuad.h" |
Iriskolenbrander9 | 0:5ad817857e29 | 4 | |
Iriskolenbrander9 | 0:5ad817857e29 | 5 | // Define the HIDScope and Ticker object |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 6 | HIDScope scope(3); |
Iriskolenbrander9 | 0:5ad817857e29 | 7 | Ticker scopeTimer; |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 8 | BiQuad bq1(0.2928920553392428, 0.5857841106784856, 0.2928920553392428, -1.3007020142696517e-16,0.17156822135697122); |
Iriskolenbrander9 | 0:5ad817857e29 | 9 | |
Iriskolenbrander9 | 0:5ad817857e29 | 10 | // Read the analog input |
Iriskolenbrander9 | 0:5ad817857e29 | 11 | AnalogIn emg1(A0); |
Iriskolenbrander9 | 0:5ad817857e29 | 12 | AnalogIn emg2(A1); |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 13 | |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 14 | double emgSample() |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 15 | { |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 16 | double emgFiltered = bq1.step(emg1.read()); |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 17 | return emgFiltered; |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 18 | } |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 19 | |
Iriskolenbrander9 | 0:5ad817857e29 | 20 | // The data read and send function |
Iriskolenbrander9 | 0:5ad817857e29 | 21 | void scopeSend() |
Iriskolenbrander9 | 0:5ad817857e29 | 22 | { |
Iriskolenbrander9 | 0:5ad817857e29 | 23 | scope.set(0,emg1.read()); |
Iriskolenbrander9 | 0:5ad817857e29 | 24 | scope.set(1,emg2.read()); |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 25 | scope.set(2,emgSample()); |
Iriskolenbrander9 | 0:5ad817857e29 | 26 | scope.send(); |
Iriskolenbrander9 | 0:5ad817857e29 | 27 | } |
Iriskolenbrander9 | 0:5ad817857e29 | 28 | |
Iriskolenbrander9 | 0:5ad817857e29 | 29 | int main() |
Iriskolenbrander9 | 0:5ad817857e29 | 30 | { |
Iriskolenbrander9 | 0:5ad817857e29 | 31 | // Attach the data read and send function at 100 Hz |
Iriskolenbrander9 | 1:7eadfb7fd5c9 | 32 | scopeTimer.attach_us(&scopeSend, 2e3); |
Iriskolenbrander9 | 0:5ad817857e29 | 33 | |
Iriskolenbrander9 | 0:5ad817857e29 | 34 | while(1) { } |
Iriskolenbrander9 | 0:5ad817857e29 | 35 | } |