在树莓派硬件上执行Linux Shell命令
本示例向您展示如何在树莓派硬件上运行Linux®shell命令。
简介
树莓派硬件运行Linux发行版作为操作系统。使用树莓派硬件的Simulink支持包中的实用程序,您可以直接金宝app从MAT金宝appLAB®命令行在树莓派硬件上远程执行Linux shell命令。例如,您可以运行和停止Simulink®模型,列出目录的内容,查找运行在金宝app树莓派硬件上的进程的CPU负载等。您还可以直接从MATLAB中启动交互式SSH会话。
先决条件
我们建议填写树莓派硬件的Simulink支持包入门金宝app金宝app的例子。
创建通信对象
金宝appSimu金宝applink支持包用于树莓派硬件,使用TCP/IP的SSH连接远程执行Linux shell命令,同时在树莓派硬件上构建和运行Simulink模型。您可以使用为此目的开发的基础设施与树莓派硬件进行通信。
在MATLAB命令行中执行以下命令创建一个树莓对象:
R =覆盆子
的raspberrypi函数返回一个连接对象r,用于已经使用硬件设置屏幕上。用于构造raspberrypi对象的主机名、用户名和密码是这些参数的默认MATLAB会话值。金宝appSimu金宝applink支持包为树莓派硬件保存了一组通信参数,即主机名、用户名和密码,作为树莓派硬件的默认MATLAB会话值。注意,通信参数的默认MATLAB会话值首先在固件更新过程中确定。通信参数随后可以使用>在目标硬件上运行>选项…UI在Simul金宝appink模型和粘性,这意味着一旦您更改通信参数值,它们将被保存为默认的MATLAB会话值,并用于所有Simulink模型。
在创建raspberrypi对象时,可以显式地指定主机名或IP地址、用户名和密码:
r = raspberrypi('<主机名或IP地址>','<用户名>','<密码>');
上面的命令显示了如何指定主机名、用户名和密码。如果您的网络中有多个树莓派硬件,并且希望同时连接,则可能需要使用此表单。
注意:在连接失败的情况下,MATLAB命令行上报告诊断错误消息。如果连接失败,最有可能的原因是错误的IP地址或主机名。
在树莓派上执行系统命令
您可以使用raspberrypi对象的系统方法在MATLAB中执行树莓派硬件上的各种Linux shell命令。试着做一个目录列表。
系统(r,'ls -al ~')
该语句执行目录列表shell命令,并在MATLAB命令提示符处返回结果文本输出。您可以将结果存储在MATLAB变量中以执行进一步处理。确定谁是/home/pi下.profile文件的所有者。
Output = system(r,'ls -al /home/pi');ret = regexp(输出,' \ s + (\ w -) + \ s + \ d \ s + (\ w +) + \ \ s +。概要文件\ s +”、“标记”);ret {1}
您也可以使用单个shell命令实现相同的结果。
system(r,'stat——format="%U" /home/pi/.profile')
使用系统命令闪烁用户LED。
System (r,'echo "none" | sudo tee /sys/class/leds/led0/trigger');System (r,'echo 0 | sudo tee /sys/class/leds/led0/亮度');System (r,'echo 1 | sudo tee /sys/class/leds/led0/亮度');
默认情况下,用户LED被连接到触发SD卡活动。LED重新布线,没有触发器,可以手动设置LED状态。您可以将LED恢复到原来的状态。
System (r,'echo "mmc0" | sudo tee /sys/class/leds/led0/trigger');
不能使用system()方法执行交互式系统命令。要在树莓派硬件上执行交互命令,必须打开终端会话。
openShell(右)
该命令打开一个PuTTY终端,可以执行交互式shell命令,如“top”。
运行并停止Simulink金宝app模型
金宝app树莓派硬金宝app件的Simulink支持包为您在树莓派硬件上运行的每个Simulink模型生成一个Linux可执行文件。生成的可执行文件与Simulink模型具有相同的名称,并保存在树莓派硬件上。金宝app要运行/停止Simulink金宝app模型,可以使用raspberrypi对象的runModel和stopModel方法。
1.要运行之前在树莓派金宝app硬件上运行的Simulink模型,请在MATLAB命令行上执行以下命令:
runModel (r,“<模型名称>”)
其中字符串'<模型名称>'是你想在树莓派硬件上运行的Simulink模型的名称。金宝apprunModel方法启动与您指定的Simulink模型对应的可执行文件。金宝app
2.在MATLAB命令行金宝app中执行以下命令,停止在树莓派硬件上运行的Simulink模型:
stopModel (r,“<模型名称>”)
这个命令杀死名为“<模型名>”的Linux进程。在树莓派硬件上的小精灵。或者,您可以执行以下命令来停止模型:
System (r,'sudo killall <模型名>.elf')
操作文件
raspberrypi对象提供基本的文件操作功能。要将树莓派硬件上的文件传输到主机上,您可以使用getFile()方法。
getFile (r,“/ usr / share /象素映射/ debian-logo.png”);
然后你可以在MATLAB中读取PNG文件:
Img = imread('debian-logo.png');图像(img);
getFile()方法接受第二个可选参数,允许您定义文件目标。要将主机上的文件传输到树莓派硬件上,可以使用putFile()方法。
putFile (r,“debian-logo.png”、“/ home /π/ debian-logo.png.copy”);
确保复制了该文件。
System (r,'ls -l /home/pi/debian-logo.png.copy')
你可以使用deleteFile()命令删除树莓派硬件上的文件。
deleteFile (r / home /π/ debian-logo.png.copy);
确保该文件已被删除。
System (r,'ls -l /home/pi/debian-logo.png.copy')
上述命令将导致一个错误,指示无法找到该文件。