主要内容

入门MATLAB支持包树莓派硬件金宝app

这个例子向您展示了如何使用MATLAB®支持包的树莓派®硬件来执行基本的硬件操作,如执行sh金宝appell命令,打开或关闭板上的LED和操作文件。

介绍

MATLAB支持包的树金宝app莓派硬件,使您可以与树莓派硬件远程通信从计算机运行MATLAB。支持包包金宝app括一个MATLAB命令行接口,用于访问树莓派硬件的I/O外设和通信接口。使用此命令行接口,您可以从连接到树莓派硬件的传感器收集数据,并启动连接到树莓派硬件的设备。

在这个例子中,您将学习如何创建一个raspi对象从MATLAB中连接到树莓派硬件。您将检查此对象的属性和方法,以了解基本外设的状态,如数字I/O引脚(也称为GPIO)、SPI、I2C和Serial。使用这个对象,你可以在树莓派硬件上执行shell命令,并在树莓派硬件上操作文件。

先决条件

  • 您必须完成树莓派硬件的固件更新,才能使用MATLAB接口的树莓派硬件。MATLAB通过连接运行在树莓派上的服务器与树莓派硬件进行通信。此服务器内置在支持包附带的固件中。金宝app要更新树莓派固件,请按照以下步骤进行操作硬件设置

所需的硬件

要运行此示例,您需要以下硬件:

  • 覆盆子π硬件

  • 一种至少具有1A输出的电源

创建一个raspi对象

创建一个raspi对象。

零售物价指数= raspi ();

rpi是一个raspi对象的句柄。在创建rpi对象时,MATLAB通过TCP/IP连接到运行在Raspberry Pi硬件上的服务器。如果您在创建raspi对象时遇到任何问题,请参阅故障诊断指南来诊断连接问题。

raspi对象的属性显示了关于Raspberry Pi硬件的信息和一些可用硬件外设的状态。数字IP地址或树莓派硬件的主机名和用于TCP/IP通信的端口都显示在DeviceAddress和port属性中。raspi对象检测你的板的型号和版本号,并将其显示在BoardName属性中。GPIO引脚和可用外设随覆盆子Pi硬件的型号和版本而变化。

raspi对象的AvailableLEDs属性列出了用户可控制的led。您可以使用writed方法打开或关闭用户LED。

raspi对象的AvailableDigitalPins、AvailableI2CBuses和availablelespichannels属性指示了可以用于数字I/O、I2C总线和SPI通道的引脚,这些引脚可以用于与支持I2C和SPI通信协议的传感器和执行器通信。金宝app如果没有列出可用的lespichannels,这不是一个问题。MATLAB附带的Raspbian Linux图像不允许SPI外设为您提供更通用的数字I/O引脚。通过加载和卸载负责这些外设的Linux®内核模块,您可以启用和禁用I2C和SPI外设,以满足您的需要。

打开或关闭LED灯

在树莓派硬件上有一个用户LED,你可以打开或关闭它。在MATLAB提示下执行以下命令关闭LED,然后再打开它。

领导= rpi.AvailableLEDs {1};writeLED(零售物价指数,领导,0);writeLED(零售物价指数,1);

在执行上述命令时,观察树莓派硬件上的“ACT”(或“OK”)LED,并在视觉上确认LED操作。如果不确定用户LED的位置,请执行以下命令。

showLEDs (rpi);

你可以让LED以1秒为周期循环闪烁。

i = 1:10 writeLED(rpi, led, 0);暂停(0.5);writeLED(零售物价指数,1);暂停(0.5);结束

执行系统命令

raspi对象有很多方法,可以让你在MATLAB中执行Raspberry Pi硬件上的系统命令。通过在Raspberry Pi硬件上执行系统命令,你可以完成很多工作。在MATLAB®Online™中,系统功能有限。

尝试使用一个目录列表。

系统(零售物价指数,“ls的推拿/home/pi”

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

输出=系统(零售物价指数,“ls的推拿/home/pi”);ret = regexp(输出,' \ s + (\ w -) + \ s + \ d \ s + (\ w +) \ s + + \ . profile \ s + '。“令牌”);ret {1}

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

系统(零售物价指数,“统计——格式=“% U”/home/pi/.profile '

这次使用系统命令执行LED练习。默认情况下,用户LED被配置为根据SD卡的活动改变其状态。但是,您可以根据应用程序的需求重新配置LED以更改其状态。手动控制LED,设置系统命令没有一个

系统(零售物价指数,'echo "none" | sudo tee /sys/class/leds/led0/trigger');

带有0和1的系统命令等价于带有参数0和1的LED状态writed方法。

系统(零售物价指数,'echo 0 | sudo tee /sys/class/leds/led0/亮度');系统(零售物价指数,'echo 1 | sudo tee /sys/class/leds/led0/亮度');

您可以通过执行以下命令将LED设置为跟踪SD卡活动的原始状态:

系统(零售物价指数,'echo "mmc0" | sudo tee /sys/class/leds/led0/trigger');

不能使用system()方法执行交互式系统命令。要在树莓派硬件上执行交互命令,必须打开终端会话。

openShell (rpi)

该命令将打开一个PuTTY终端。使用您的用户名和密码登录。默认用户名为“pi”,默认密码为“raspberry”。登录后,您可以执行交互式shell命令,如'top'。

在MATLAB联机中不支持openShell函数。金宝app使用PuTTY通过SSH远程访问命令shell,如远程访问

操作文件

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

getFile(零售物价指数,“/ usr / share /象素映射/ debian-logo.png”);

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

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

getFile()方法接受第二个可选参数,允许您定义文件目标。要将主机上的文件传输到树莓派硬件,可以使用putFile()方法。该方法在MATLAB在线中不支持。金宝app

putFile(零售物价指数,“debian-logo.png”“/ home /π/ debian-logo.png.copy”);

确保那个文件被复制了。

系统(零售物价指数,“ls - l /home/pi/debian-logo.png.copy”

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

deleteFile(零售物价指数,“/ home /π/ debian-logo.png.copy”);

确保该文件已被删除。

系统(零售物价指数,“ls - l /home/pi/debian-logo.png.copy”

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

总结

这个例子介绍了使用MATLAB支持包的树莓派硬件的工作流程。金宝app使用Raspberry Pi支持包,你可以在R金宝appaspberry Pi硬件上打开和关闭用户LED,执行系统命令和操作文件。

另请参阅

视频系列:支持MATLAB的树莓派金宝app