App Designer and Simulink Interchange
2 views (last 30 days)
Show older comments
Hi, i know it sounds a bit crazy but I want to interact between app designer and simulink.
I am working with Arduino Due, and I reahced where too many blocks in Simulink is causing some issue.
Now my approach is to read the CAN via Simulink and read that live CAN message then manipulate it within App designer.
Also, use App designer to manipulate the Arduino's I/Os.
The problem I am having is once the Simulink is connected to Arduino, I do not see any options that I can work with the Arduino's I/Os. Unless I have the Arduino blocks within the simlink that has constant block to it which can be manipulate within app designer. However, this case will not reduece the Simulink information that embedded to the Arduino.
Any ideas where I can reduce the Simulink and somehow work with Arduino at the same time?
I tried to read the CAN message via app designer, it crashed (this would be the ideal option but some reason it isn't working for me :(
Thanks!
1 Comment
Prasanth Sunkara
on 3 Jul 2024
Are you using a CAN Shield on Arduino to get CAN data? Or, you are reading CAN data directly from your PC using Simulink?
Answers (1)
Dinesh
on 3 Jul 2024
Hello.
I don't think there is a direct way to interact between App Designer and Simulink. You might need to use MATLAB workspace variables to read and write off of Simulink as well as App Designer apps.
I don't think an app is required to manipulate Arduino's I/Os since you can achieve this using a MATLAB script.
You could make use of a MATLAB Function block in Simulink or simply use a MATLAB script to execute code that can manipulate Arduino's I/Os. Here's a sample function:
function ControlArduino()
a = arduino('COM4', 'Uno');
% Modify value of pin D13
writeDigitalPin(a, 'D13', 1);
pause(1);
writeDigitalPin(a, 'D13', 0);
end
Here is the documentation link for connecting to arduino: https://www.mathworks.com/help/matlab/supportpkg/connect-to-arduino-hardware.html
Documentation link for "writeDigitalPin()": https://www.mathworks.com/help/matlab/supportpkg/arduinoio.writedigitalpin.html
3 Comments
Monalisha
on 5 Jul 2024
Hello Min,
If I understand your use case clearly then you want to get the CAN recieve data and want to use it in App Designer.
Recommended Workflow:
From Simulink you can do a Build deploy start workflow. such that the code always executes in Hardware.
Send the CAN recieve data to a serial Block or TCP/IP Block in Simulink Model.
You can try recieving the CAN Data in Serial or TCP/IP , using MATLAB apis
Using Serial Command:Create Serial Port Object - MATLAB & Simulink (mathworks.com)
Using TCP/ IP Command: https://www.mathworks.com/help/instrument/tcpserver.read.html
Then this data recieved via MATLAB apis can be used direclty by the App Designer.
See Also
Categories
Find more on Modeling 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!