Real time data acquisition

7 views (last 30 days)
Im trying to acquire EMG signals real time using Arduino support package in simulink. I'm using analog Input block for data acquire. But I dont get data at the rate I wanted it to be. for example, for 1k sampling frequency I dont get expexted samples. futhur more, when the filters also added to the block, this becomes more slower and loss huge amount of data.Is there a way to make this process faster, so that i can obtain expected samples.

Accepted Answer

Andrey Kiselnikov
Andrey Kiselnikov on 11 Feb 2019
I tried to do exactly the same thing. This hardware stack is not able to provide the required sampling frequency. This issue related to some features of Arduino programming through MATLAB/Simulink. There is only one way to solve your task on this hardware - write code for Arduino manually and acquire data to MATLAB through the serial connection. And you should use DUE - one of the most powerful boards in Arduino family.
p.s. I migrated to Raspberry PI platform for this task.
  4 Comments
Aloka Perera
Aloka Perera on 11 Feb 2019
programming on Arduino.it is difficult to obtain samples at 5k and perform serial communication simultaneously
Andrey Kiselnikov
Andrey Kiselnikov on 12 Feb 2019
I tested DUE. I added the digital output pin in the capturing loop and measured time of each operation: analog capture, serial sending, sliding window average filtering - yes, with the good realization it allows to reduce serial data stream and increase the total data capture frequency. So my result was around 2.5 kHz.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!