Using Raspberry Pi SPI interface from Simulink

4 views (last 30 days)
Rebecca Reck
Rebecca Reck on 10 Jun 2014
Answered: Jhon Ardilla on 20 Sep 2019
Hello,
I found this example for collecting analog data with a Raspberry Pi and an MCP3008. It works great in the MATLAB command window. However, I'd love to be able to do the same thing in Simulink. I've tried using a MATLAB Function block in Simulink, however I can't seem to get it to pass the mcp3008 parameter into the function. I've made it a global variable and I've tried to use a To Workspace block and neither seem to work. It seems like a waste of resources to start and stop the connection to the Raspberry Pi on each Simulink iteration.
Does anyone have any ideas on how to make this work?
Thank you, Rebecca

Answers (4)

Pjer
Pjer on 14 Sep 2016
maybe some command in s-function is not supported,so what you need id SPI-driver which read from analog signal.You may like this: SPI driver

mprice
mprice on 28 Oct 2016
Try using the WiringPi library, found here: WiringPi
It contains c code to access various Raspberry Pi capabilities, including SPI. You can implement it in an s-function or the s-function builder as long as you're including the right headers and have the library available in your working directory. You also want to make sure that the code is stored on the Pi itself as well, and make sure that “-lwiringPi” is included in the linker flags in the Simulink makefile.
  1 Comment
Alex83
Alex83 on 7 Jan 2017
Hi! I also have this problem...for newbies it is hard to find a step-by-step instruction how to implement wiringpi in simulink and the rpi device. Is there a chance that you could help me with a short step-by-step tutorial imagining that there is a blank Matlab 2016 version only with RPI support package installed? What do I do next? Kind regards, Alex

Sign in to comment.


Alex83
Alex83 on 7 Jan 2017
By the way, when I am trying to run Rebecca's example, I get always a very long error message starting with:
Error executing command "touch -c /home/pi/untitled_ert_rtw/.*;make -f untitled.mk all -C /home/pi/untitled_ert_rtw". Details:*
What do I do wrong?
  2 Comments
Morteza aliyari
Morteza aliyari on 24 Nov 2017
hi,i have same problem like Alex83. i can't use any wiringPi functions on s_function in matlab 2017a simulink. i add wiringPi to rpi3b too.but error didn't change. Anyone can help?

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!