来自系列:树莓派支持MATLAB金宝app
MeShawn Marathe,Mathworks
MATLAB®金宝appRaspberry PI™支持包,您可以从计算机交互控制Raspberry PI™。了解如何开发和原型Matlab®使用支撑包的Raspberry PI™算法。金宝app您还将了解如何使用Matlab Coder™将Matlab算法部署为独立应用程序。视频指南中介绍的LED闪烁和文件操作示例通过逐步的工作流程。
这是怎么回事,各位。我是Meeshawn,欢迎收看这个关于如何在树莓派上部署MATLAB算法的视频。一段时间以来,我们一直在部署从Simulink到Raspberry Pi的算法。金宝app在这个视频中,我将向你展示如何将MATLAB代码部署到树莓派硬件上。我将帮助你开始一个简单的LED闪烁的例子。我将向您展示如何编写MATLAB代码来部署它在树莓派。稍后,我将展示一个更复杂的边缘检测示例。
让我们快速查看您需要的东西 - 由微型USB电缆和以太网电缆,USB网络摄像头提供支持的覆盆子PI板,这是一个V4L2支持的网络摄像头,当然是Matlab。金宝app您可以使用MATLAB发布支持的任何覆盆子PI板。金宝app但是,此示例要求您拥有2018年和更高版本的Matlab发布。对于此视频演示,我使用了覆盆子PI 3型B板。网络摄像头将用于朝向视频末尾讨论的边缘检测示例。您还将需要Matlab编码器产品,以及Matlab进行代码生成。
好的,所以现在我们知道先决条件,让我们开始在Matlab中开始。为了使用MATLAB中的Raspberry PI,您将首先需要安装Raspberry PI的MATLAB支持包。金宝app支持包使金宝app您可以从运行MATLAB的计算机远程与Raspberry PI硬件通信。它包括用于访问硬件的外设和通信接口的MATLAB命令行界面。要了解有关支持包的更多信息,请在此命令的帮助下金宝app引用此文档。
让我们首先创建Raspi对象来连接到Matlab的硬件。如果这是您第一次与Raspberry PI硬件连接,则可能会提示您输入IP地址,用户名和密码。使用此界面,您可以通过SBI和I2C总线从连接到Raspberry PI硬件连接的传感器中收集数据,在MATLAB和附加到Raspberry PI硬件的实际设备中处理它们。
例如,可以使用writed方法设置板载绿色LED亮或灭。简而言之,支持包可以让你从M金宝appATLAB交互式地控制树莓派硬件。Raspberry对象还提供了在Raspberry Pi硬件上执行Linux命令的方法。
好的,所以现在让我们使用此命令创建一个脚本来闪烁LED。除此之外,我们还可以在覆盆子PI硬件上执行一些文件操作。为此,让我们创建一个空的文本文件。w表示在这里写下许可。
接下来,让我们写一个循环闪烁LED,让我们说,七次。让我们使用暂停函数实现一秒钟的一段时间。暂停功能是对Linux板兼容的Codegen。在循环结束时,我们会将闪烁操作的计数写入我们刚刚创建的文件。循环结束。现在,在编写数据后,让我们关闭文件并保存脚本。让我们称之为blinknwrite,因为我们正在执行LED闪烁和文件写操作。
好了,现在让我们看看在树莓派硬件上部署算法的典型工作流程。工作流的第一步是创建一个MATLAB函数。我们刚刚创建了一个MATLAB脚本。现在我们将在顶部添加关键字function,后面跟着函数的名称。
为了将算法部署到树莓派硬件中,我们需要将脚本作为MATLAB函数来实现。目前,从MATLAB 2019b开始,您可以部署不带任何输入/输出参数的MATLAB函数。好,我们在工作流中的下一步是执行这个MATLAB函数。点击红色按钮或按F5将在MATLAB中运行该功能,并根据该功能实现的逻辑控制板载树莓派LED。
对,所以现在我们可以看到文件,sample.txt,已在当前目录中创建。当您可以在此处看到时,LED已开始闪烁。它刚刚完成了7次。现在,让我们打开这个文件。闪烁的板载LED计数等于1七个。完美的。因此,我们的MATLAB函数刚刚切换LED并在MATLAB的当前工作目录中创建了文件。让我们删除此文件。
因此,这是连接的I/O工作流,其中MATLAB与树莓派硬件的外设进行交互和控制,在本例中是树莓派硬件的板载LED。接下来,我们看看如何将这个MATLAB函数部署到硬件上。在这个工作流程中,MATLAB编码器将MATLAB函数转换成一个等效的c++代码,然后在硬件上构建、加载和执行。这个可执行文件将独立于MATLAB运行,也称为独立执行。
在函数签名之后,我们首先在pragma%#codegen上添加指令,指示我们打算在硬件上部署MATLAB函数。添加此指令指示MATLAB代码分析仪帮助您诊断和修复将在部署期间导致可能错误的违规。分析仪在编辑器窗口的右上角提供指示灯。绿色辉光表示没有检测到任何问题。
正如您可以在此处看到的,绿色显示在顶部,用于我们的功能。因此,我们可以进入下一步。请注意,代码生成不支持所有函数调用。金宝app因此,我们的下一个目标是检查代码生成支持。金宝app
要修复不支持的函数调用错误金宝app,可以将函数声明为编码器。或将函数替换为代码生成支持的等效函数调用。金宝app有关编码器的更多信息。在文档中输入doc codeer . Extrinsic搜索。
有关支持的函数调用列表,请通金宝app过键入Doc语言支持代码生成来搜索文档。有关提交用于部署的Raspberry PI外设功能列表,请在支持部署的文档中搜索文档。金宝app幸运的是,在我们的情况下,我们没有任何不受支持的函数调用。金宝app
接下来,我们将讨论两个重要函数,帮助我们将MATLAB函数部署为硬件上的独立功能,这是我们的最终目标。我们首先使用函数目标硬件创建硬件配置对象。例如,要为Raspberry PI硬件创建配置对象,请输入目标对象等于目标硬件覆盆子PI。
对象创建有助于一个配置部署的各种选项,例如硬件设备地址,用户名和密码。默认用户名和密码分别为PI和Raspberry。其他选项包括在硬件上设置构建目录位置,构建部署的操作首选项,例如构建,加载和运行,或仅构建,以及runonboot选项,以在硬件打开后自动执行该函数。所有这些都可以在将MATLAB函数部署到硬件之前配置。
现在我们已准备好将MATLAB功能部署到覆盆子PI硬件。我们将在功能部署的帮助下进行。此功能将MATLAB函数部署为硬件上的独立可执行文件。它还生成一个部署报告,其中包含有关部署状态的信息。
如果在部署期间生成的任何错误,您可以使用该报告调试函数并验证该功能是否适合部署。此外,我们还必须注意要部署的MATLAB函数不得具有MATLAB 2019B发布的任何输入或输出参数。部署,目标对象,blinknwrite。
此函数需要两个参数,即硬件配置对象和要部署的MATLAB函数的名称,这在我们的情况下是blinknwrite。执行此命令将在Raspberry PI硬件上部署MATLAB函数。代码生成成功,并生成代码生成报告。正如您在这里看到的,LED闪烁。
文件sample.txt将在Linux目录中返回,正如在目标硬件配置对象的Build目录中指定的那样。注意,文件sample.txt现在是在Raspberry Pi上生成的,不像连接的I/O工作流,它是在MATLAB工作目录中生成的。我们现在可以通过执行以下命令将文件从硬件复制到MATLAB中——r is equal to raspi, getfiler, Build Directory location。
正如您在此处看到的那样,该文件会在工作目录中弹出。让我们打开这个文件。闪烁的板载LED计数等于1至七个。
所有权利。到目前为止,我们开发了一个Matlab函数,最初在Matlab中使用连接的I / O工作流执行,然后成功部署到覆盆子PI硬件。从MATLAB函数中生成的代码在硬件上运行并单独操纵LED,独立于MATLAB。
现在让我们回顾并理解到目前为止讨论的两个工作流程,连接I / O和部署。连接I / O允许您与MATLAB与硬件及其外设进行交互。您可以从传感器收集数据,在MATLAB中处理它,并相应地控制执行器。虽然在部署中,代码是从MATLAB函数生成的,在硬件上加载和执行以进行独立执行。
连接的I / O工作流程更好地调试,需要更少的时间来编译,因此对快速原型设计有用。但是,由于其系列操作模式,始终需要物理连接。这是为了促进在连接的I / O工作流程中的Matlab和Raspberry PI之间共享的按需请求响应。因此,每个计算步骤都有一个周转时间。
另一方面,部署匹配生产工作流程,其中代码必须独立于MATLAB和用于设计项目的主机运行。执行实时,因为部署的代码不必为每个计算步骤等待Matlab。但它确实涉及编译和部署,这不是非常适合调试和快速原型的理想选择。
好吧,这是到目前为止讨论的两个工作流程的摘要。在下一个视频中,我们会看看更专用的应用程序,即边缘预测算法。有关更多有趣的视频,请访问www.tatmou.com/videos。谢谢你。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。