主要内容

运行Linux®Shell命令

此示例演示如何在Raspberry Pi®硬件上运行Linux shell命令。

介绍

Raspberry Pi硬件作为操作系统运行Linux®发行版。使用针对Raspberry Pi硬件的Simulink支持包中提供的实用程序,您可以直接从MATLAB®命令行在Raspberry Pi硬件上远程万博1manbet万博1manbetxx执行Linux shell命令。例如,您可以运行和停止Simulink®模型,列出目录的内容,查找Raspberry Pi硬件上运行的进程的CPU负载,等等。您还可以直接从MATLAB中启动交互式SSH会话。

先决条件

创建通信对象

万博1manbet万博1manbetxxSimulink Support Package for Raspberry Pi Hardware使用TCP/IP上的SSH连接远程执行Linux shell命令,同时在树莓派硬件上构建和运行Simulink模型。您可以使用为此目的开发的基础设施与树莓派硬件进行通信。

通过在MATLAB命令行上执行以下命令来创建raspberrypi对象:

r = raspberrypi

raspberrypi函数返回已使用设置的Raspberry Pi硬件的连接对象r硬件设置屏幕。用于构造raspberrypi对象的主机名、用户名和密码是这些参数的默认MATLAB会话值。Raspberry Pi硬件的Simulink支持包将Raspberry Pi硬件的一组通信参数(即主机名、用户名和密码)保存为默认MATLAB会话值。注意,通信参数的默认MATLAB会话值首先在万博1manbet万博1manbetxx固件更新过程中确定。随后可使用工具>在目标硬件上运行>选项。。。UI在Simul万博1manbetxink模型中具有粘性,这意味着一旦你改变了通信参数值,它们就会被保存为默认的MATLAB会话值,并用于所有的Simulink模型。

创建raspberrypi对象时,可以显式指定主机名或IP地址、用户名和密码:

r=raspberrypi(“”、“”、“”);

上面的命令显示了如何指定主机名、用户名和密码。如果您的网络中有多个要同时连接的Raspberry Pi硬件,您可能需要使用此表单。

注:如果连接失败,会在MATLAB命令行上报告诊断错误消息。如果连接失败,最有可能的原因是错误的IP地址或主机名。

在树莓派上执行系统命令

您可以使用raspberrypi对象的系统方法在MATLAB的Raspberry Pi硬件上执行各种Linux shell命令。尝试使用一个目录列表。

系统(r,'ls-al~'))

此语句执行目录列表shell命令,并在MATLAB命令提示符下返回结果文本输出。您可以将结果存储在MATLAB变量中以执行进一步处理。确定谁是/home/pi下.profile文件的所有者。

输出= system(r,'ls -al /home/pi');ret = regexp(输出,' \ s + (\ w -) + \ s + \ d \ s + (\ w +) + \ \ s +。概要文件\ s +”、“标记”);ret {1}

您还可以使用单个shell命令实现相同的结果。

系统(r,统计——格式=“% U”/home/pi/.profile ')

使用系统命令闪烁用户LED灯。

系统(r,'echo "none" | sudo tee /sys/class/leds/led0/trigger');系统(r,'echo 0 | sudo tee /sys/class/leds/led0/亮度');系统(r,'echo 1 | sudo tee /sys/class/leds/led0/亮度');

默认情况下,用户LED被连接以触发SD卡活动。LED被重新布线,以没有触发器,启用手动设置LED状态。您可以将LED恢复到原来的状态。

系统(r,'echo“mmc0”| sudo-tee/sys/class/led/led0/trigger');

无法使用system()方法执行交互式系统命令。要在Raspberry Pi硬件上执行交互式命令,必须打开终端会话。

openShell(右)

此命令打开一个PuTTY终端,该终端可以执行交互式shell命令,如“top”。

运行/停止一个Simu万博1manbetxlink模型

万博1manbet万博1manbetxxSimulink Support Package for Raspberry Pi Hardware为运行在树莓派硬件上的每个Simulink模型生成一个Linux可执行文件。生成的可执行文件具有与Simulink模型相同的名称,并保存在树莓派硬件上。万博1manbetx要运行/停止一个Simuli万博1manbetxnk模型,你可以使用raspberrypi对象的runModel和stopModel方法。

1.要运行之前在Ras万博1manbetxpberry Pi硬件上运行的Simulink模型,请在MATLAB命令行中执行以下命令:

运行模型(r,“”)

其中字符串''是你想在树莓派硬件上运行的Simulink模型的名称。万博1manbetxrunModel方法启动与您指定的Simulink模型相对应的可执行文件。万博1manbetx

2.要停止在Raspber万博1manbetxry Pi硬件上运行的Simulink模型,请在MATLAB命令行上执行以下命令:

stopModel (r,“<模型名称>”)

这个命令杀死名为“<模型名称>”的Linux进程。“精灵”在树莓派硬件。或者,您也可以执行以下命令来停止模型:

系统(r,'sudo killall .elf')

操作文件

raspberrypi对象提供了基本的文件操作功能。要将树莓派硬件上的文件传输到主机,可以使用getFile()方法。

getFile(r,'/usr/share/pixmaps/debian logo.png');

然后你可以在MATLAB中读取PNG文件:

img = imread(“debian-logo.png”);图像(img);

getFile()方法采用可选的第二个参数,允许您定义文件目标。要将主机上的文件传输到Raspberry Pi硬件,请使用putFile()方法。

putFile(r,'debian-logo.png','/home/pi/debian-logo.png.copy');

确保已复制该文件。

系统(r, ls - l /home/pi/debian-logo.png.copy)

你可以使用deleteFile()命令删除树莓派硬件上的文件。

deleteFile (r / home /π/ debian-logo.png.copy);

确保已删除该文件。

系统(r, ls - l /home/pi/debian-logo.png.copy)

上述命令将导致一个错误,表明文件无法找到。

总结

这个例子介绍了在树莓派硬件上运行Linux shell命令的工作流。使用树莓派支持包,你可以在树莓派硬件上打开和关万博1manbetx闭用户LED,执行系统命令和操作文件。