Connection of BLE device with Simulink
    4 views (last 30 days)
  
       Show older comments
    
Hello everyone,
I have already connected my BLE device with Matlab. I can read the heart rate. My problem ist, that I want to use the heart rate in desktop real time sumulation. How can I import this data in Simulink?
Thank you for your help.
Lucas
0 Comments
Answers (1)
  Stefanie Schwarz
    
 on 2 Jul 2020
        Hi Lucas,
as far as I am aware, there is currently no Simulink block that can directly read from a BLE device using the host PC interface.
What you can do instead is use a MATLAB Function Block that leverages the ble() MATLAB function. The code would be along the lines of:
function y = fcn()    
    persistent b;    %automatically initialized to []
    persistent hr;   %automatically initialized to []
    %% extrinsic declarations
    coder.extrinsic('ble');
    coder.extrinsic('characteristic');
    coder.extrinsic('read');
    if(isempty(b))
        b = ble("UA E39 MODULE");
        hr = characteristic(b, "heart rate", "heart rate measurement");
    end
    %% initialize output
    y = zeros(...)
    %% read data from BLE device
    data = read(hr);
    %% post-process the data
    y = ...
end   
Note that the 'ble'-related functions do not support code generation and therefore need to be declared as extrinsic. Because of this, I am afraid you will not be able to run your model in a Simulink Desktop Real-Time (SLDRT) external mode simulation. However, you can run a SLDRT normal mode simulation which is a little different. To learn more about the differences between the two SLDRT simulation modes, see the following article:
Another option if you are only looking for a simulation running at an approximation of the wall clock time would be Simulation Pacing:
0 Comments
See Also
Categories
				Find more on Modeling in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
