前言

之前玩树莓派都是使用Qt去做开发,偶然一次导师要我去研究一下Simulink,用Simulink做树莓派开发,才知道matlab可以玩硬件,虽然之前参加建模的时候有用过matlab(功能强大到只能窥探到冰山一角),在此记录一下,方便自己以及大家后续学习!


一、踩坑记录

  • 环境只支持window系统;

  • 树莓派开发版只支持B版;

  • 树莓派需要使用MATLAB定制版镜像,且镜像和你安装的MATLAB的版本要对应;

  • 下载时常会中断,导致下载不成功,所以建议夜间下载;

    镜像下载地址:https://github.com/mathworks/Raspbian_OS_Setup/releases

  • MATLAB支持包中有两个支持包,一个是MATLAB的支持包(用于在MATLAB中编写代码控制树莓派硬件),一个是simulink的支持包(进行simulink仿真),分别是:

    MATLAB Support Package for Raspberry Pi Hardware
    Simulink Support Package for Raspberry Pi Hardware

  • MATLAB树莓派定制镜像安装好后,默认没有图形界面需要自行配置,具体操作如下;

  sudo apt-get update
  sudo apt-get install xorg -y
  sudo apt-get install lxde openbox -y
  sudo apt-get install pix=icons pix-plym-splash rpd-wallpaper -y
  sudo apt-get install raspberrypi-ui-mods -y
  • 使用MATLAB操作树莓派时,GPIO引脚与wiringPi不一样

二、具体安装步骤

2.1、安装硬件支持包

在这里插入图片描述

2.2、找到树莓派支持包并安装

在这里插入图片描述
在这里插入图片描述

2.3、开始烧录镜像

在这里插入图片描述
点击右侧齿轮进行安装

在这里插入图片描述
选择树莓派版本

在这里插入图片描述
在这里插入图片描述
建议提前下好安装镜像

在这里插入图片描述
在这里插入图片描述
连接无线网

在这里插入图片描述
在这里插入图片描述
插入内存卡开始烧录matlab定制镜像

在这里插入图片描述
在这里插入图片描述
烧录完成之后把内存卡插入树莓派并上电

注意:稍微等一会再点Next,给树莓派启动时间

在这里插入图片描述
测试连接成功

在这里插入图片描述
安装完成

在这里插入图片描述


三、具体使用步骤

3.1、安装MATLAB Support Package for Raspberry Pi Hardware

1、GPIO操作

mypi=raspi(‘192.168.0.10’,'pi,‘123456’); //创建树莓派对象mypi
mypi.AvailableDigitalPins; //查看树莓派可使用GPIO引脚
showPins(mypi); //显示树莓派引脚图
configureDigitalPin(mypi,4,‘input’); //初始化GPIO4为输入
readDigitalPin(mypi,4); //从GPIO4读取
configureDigitalPin(mypi,7,‘output’); //初始化GPIO4为输入
writeDigitalPin(mypi,7,1); //从GPIO4读取

实例

mypi=raspi('192.168.0.10','pi,'123456'); 
configureDigitalPin(mypi,7,'output'); 
while(true)
writeDigitalPin(mypi,7,1); 
pause(0.5);
writeDigitalPin(mypi,7,0); 
pause(0.5)
end

2、UART操作

mypi=raspi(‘192.168.0.10’,‘pi,‘123456’); //创建树莓派对象mypi
myserialdevice=serialdev(mypi,’/dev/ttyAMA0’); //创建串口对象myserialdevice,默认115200 8 n 1
myserialdevice=serialdev(mypi,’/dev/ttyAMA0’,115200,8,‘none’,1);
write(myserialdevice,[10 12],‘uint16’); //通过串口发送一个数组,默认是uint8
output=read(myserialdevice,100); //通过串口读取数据
使用串口控制台
system(mypi,‘sudo rpi-serial-console enable’);
system(mypi,‘sudo shutdown -r now’);
clear mypi;

3、I2C操作

mypi = raspi(‘192.168.0.10’,'pi,‘123456’); //创建树莓派对象mypi
mypi.AvailableI2CBuses; //看出I2C设备
mypi.I2CBusSpeed; //查看I2C总线速率
addr = scanI2CBus(mypi,‘i2c-1’); //获取挂载在I2C总线的I2C设备地址 addr= 0x62
i2cdac = i2cdev(mypi,‘i2c-1’,char(addr));
write(i2cdac,4092);
read(i2cdac,1);
writeRegister(i2cdac,3,hex2dec(‘08’),‘uint16’); //想寄存器3中写入十六进制08
readRegister(i2cdac,3);
disableI2C(mypi); //关闭I2C引脚使能,使用GPIO
enableI2C(mypi,400000); //使能I2C,并将总线速率设为400000

4、SPI操作

mypi = raspi(‘192.168.0.10’,'pi,‘123456’); //创建树莓派对象mypi
enableSPI(mypi); //使能SPI
mypi.AvailableSPIChannels; //获取通道
myspidevice = spidev(mypi,‘CE1’,0); //创建SPI对象myspidevice
out = writeRead(myspidevice,[hex2dec(‘08’) hes2dec(‘D4’)]); //读写SPI设备

3.2、安装Simulink Support Package for Raspberry Pi Hardware

打开Simulink

在这里插入图片描述
创建Simulink文件

在这里插入图片描述
从库中添加组件,搭建模型

在这里插入图片描述
找到Simulink对树莓派的支持包

在这里插入图片描述
在组件上右键添加到模型中

在这里插入图片描述
接线

在这里插入图片描述
点击开始运行

在这里插入图片描述
运行结果

(因为我手边没有摄像头,所以树莓派没有接摄像头,故没有视频信号)
在这里插入图片描述

四、官方资料

基于Simulink的树莓派开发板教程

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐