Real Time data from matlab to arduino
20 views (last 30 days)
Show older comments
Gabriel Enzo
on 17 Jun 2022
Commented: Gabriel Enzo
on 22 Jun 2022
hello, i have a some project eeg, and i was sending real time data in matlab and i want to send that to arduino uno, maybe somebody help me, thanks
2 Comments
Walter Roberson
on 17 Jun 2022
How are you getting the eeg data into the MATLAB host?
Could you confirm that you want to send the raw eeg data to the arduino, without analyzing it (for example to send motor commands to the arduino)?
What data rate do you need, and what latency is acceptable?
Accepted Answer
Walter Roberson
on 19 Jun 2022
If you look at https://github.com/labstreaminglayer/liblsl-Matlab/blob/master/examples/ReceiveData.m
where it has
while true
% get data from the inlet
[vec,ts] = inlet.pull_sample();
% and display it
fprintf('%.2f\t',vec);
fprintf('%.5f\n',ts);
end
you would change the fprintf() calls to
msg = compose('%.2f\n%.5f', vec, ts); %adjust this format as needed
writeline(s, msg);
where
s = serialport('COM3'); %where COM3 is the location of the serial port connected to the arduino
You would be expected to have a program running on the arduino that reads from the serial port and reads two items, the first being vec and the second being ts, and does something appropriate with the readings.
If you are planning to run a motor, then typically instead of sending the raw eeg data, you would analyze the data at the MATLAB level and then send commands to the arduino.
Alternately, if you can use a Due or Mega, then https://www.starcat.io/ makes an EEG shield that can directly receive Lab Streaming Layer on the Due or Mega, without going through MATLAB.
More Answers (0)
See Also
Categories
Find more on EEG/MEG/ECoG in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!