MeShawn Marathe,Mathworks
马铃薯®金宝appRaspberry PI™支持包,您可以从计算机交互控制Raspberry PI™。了解如何开发和原型Matlab®使用支撑包的Raspberry PI™算法。金宝app您还将了解如何使用Matlab Coder™将Matlab算法部署为独立应用程序。视频指南中介绍的LED闪烁和文件操作示例通过逐步的工作流程。
每个人都发生了什么。我的名字是Meeshawn,欢迎来到这个视频如何将Matlab算法部署到Raspberry PI。有一段时间,我们一直从Simulink到Raspberry Pi部署算法。金宝app在此视频中,我将向您展示如何将MATLAB代码部署到Raspberry PI硬件。我会帮助您开始使用简单的LED闪烁示例。我会向您展示如何在raspberry pi上编写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硬件的实际设备中处理它们。
例如,您可以使用撰写的方法设置载板的绿色LED开启或关闭。简而言之,支持包允许您交互地金宝app控制来自MATLAB的覆盆子PI硬件。Raspberry对象还提供在Raspberry PI硬件上执行Linux命令的方法。
好的,所以现在让我们使用此命令创建一个脚本来闪烁LED。除此之外,我们还可以在覆盆子PI硬件上执行一些文件操作。为此,让我们创建一个空的文本文件。w表示在这里写下许可。
接下来,让我们写一个循环闪烁LED,让我们说,七次。让我们使用暂停函数实现一秒钟的一段时间。暂停功能是对Linux板兼容的Codegen。在循环结束时,我们会将闪烁操作的计数写入我们刚刚创建的文件。循环结束。现在,在编写数据后,让我们关闭文件并保存脚本。让我们称之为blinknwrite,因为我们正在执行LED闪烁和文件写操作。
好的,所以现在让我们看一下典型的工作流程来部署到覆盆子PI硬件的算法。工作流程中的第一步是创建MATLAB函数。我们刚刚创建了一个Matlab脚本。现在我们将在顶部添加关键字函数,然后是函数的名称。
为了将算法部署到Raspberry PI硬件,需要我们将脚本实现为MATLAB函数。目前,如Matlab 2019b,您可以部署MATLAB函数而没有任何输入/输出参数。好的,所以我们在工作流程中的下一步是执行此MATLAB函数。单击红色按钮或按F5将在MATLAB中运行功能,并根据功能中实现的逻辑控制LED板载覆盆子PI。
对,所以现在我们可以看到文件,sample.txt,已在当前目录中创建。当您可以在此处看到时,LED已开始闪烁。它刚刚完成了7次。现在,让我们打开这个文件。闪烁的板载LED计数等于1七个。完美的。因此,我们的MATLAB函数刚刚切换LED并在MATLAB的当前工作目录中创建了文件。让我们删除此文件。
因此,这是连接的I / O工作流程,其中MATLAB交互并控制覆盆子PI硬件的外围设备,在这种情况下是覆盆子PI硬件的车载LED。接下来,我们查看将此MATLAB函数部署到硬件。在此工作流程中,MATLAB编码器将MATLAB函数转换为等效的C ++代码,然后在硬件上进行构建,加载和执行。此可执行文件将独立于MATLAB运行,否则称为独立执行。
在函数签名之后,我们首先在pragma%#codegen上添加指令,指示我们打算在硬件上部署MATLAB函数。添加此指令指示MATLAB代码分析仪帮助您诊断和修复将在部署期间导致可能错误的违规。分析仪在编辑器窗口的右上角提供指示灯。绿色辉光表示没有检测到任何问题。
正如您可以在此处看到的,绿色显示在顶部,用于我们的功能。因此,我们可以进入下一步。请注意,代码生成不支持所有函数调用。金宝app因此,我们的下一个目标是检查代码生成支持。金宝app
要修复不支持的函数调用错误金宝app,您可以将函数声明为代码器.Extrinsic,或替换具有代码生成支持的等效函数调用的函数。有关Coder.extrinsic的更多信息,请通过键入doc编码器来搜索文档.Extrinsic。
有关支持的函数调用列表,请通金宝app过键入Doc语言支持代码生成来搜索文档。有关提交用于部署的Raspberry PI外设功能列表,请在支持部署的文档中搜索文档。金宝app幸运的是,在我们的情况下,我们没有任何不受支持的函数调用。金宝app
接下来,我们将讨论两个重要函数,帮助我们将MATLAB函数部署为硬件上的独立功能,这是我们的最终目标。我们首先使用函数目标硬件创建硬件配置对象。例如,要为Raspberry PI硬件创建配置对象,请输入目标对象等于目标硬件覆盆子PI。
对象创建有助于一个配置部署的各种选项,例如硬件设备地址,用户名和密码。默认用户名和密码分别为PI和Raspberry。其他选项包括在硬件上设置构建目录位置,构建部署的操作首选项,例如构建,加载和运行,或仅构建,以及runonboot选项,以在硬件打开后自动执行该函数。所有这些都可以在将MATLAB函数部署到硬件之前配置。
现在我们已准备好将MATLAB功能部署到覆盆子PI硬件。我们将在功能部署的帮助下进行。此功能将MATLAB函数部署为硬件上的独立可执行文件。它还生成一个部署报告,其中包含有关部署状态的信息。
如果在部署期间生成的任何错误,您可以使用该报告调试函数并验证该功能是否适合部署。此外,我们还必须注意要部署的MATLAB函数不得具有MATLAB 2019B发布的任何输入或输出参数。部署,目标对象,blinknwrite。
这个函数需要两个参数,即硬件配置对象和要部署的MATLAB函数的名称,在我们的例子中是blinkNWrite。执行此命令将在树莓派硬件上部署MATLAB函数。代码生成成功,并生成代码生成报告。正如你在这里看到的,LED正在闪烁。
文件示例将在Linux目录中返回,如目标硬件配置对象的构建目录中的指定。请注意,与已连接的I / O工作流不同,在Raspberry PI上生成了文件示例。在MATLAB工作目录中生成的连接。我们现在可以通过执行这些命令将文件从硬件复制到MATLAB-- R等于Raspi,GetFiler,构建目录位置。
正如您在此处看到的那样,该文件会在工作目录中弹出。让我们打开这个文件。闪烁的板载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国家网站未优化您的位置。