Meeshawn Marathe, MathWorks
MATLAB®万博1manbetx支持包覆盆子莓ππ™可以交互式地控制™从你的电脑。学习如何开发和原型MATLAB®算法在覆盆子π™使用支持包。万博1manbetx您还将了解如何部署MATLAB算法使用MATLAB作为独立应用程序程序员™。LED闪烁和文件的操作示例视频指导你通过循序渐进的工作流程。
是什么,每一个人。我的名字叫Meeshawn,欢迎来到这个视频关于如何部署MATLAB算法覆盆子π。有一段时间,我们一直从模型到覆盆子π部署算法。万博1manbetx在这个视频中,我将向您展示如何将MATLAB代码部署到覆盆子π硬件。我将帮助您开始使用一个简单的LED闪烁的例子。我将向您展示如何编写MATLAB代码部署在覆盆子π。之后,我将展示一个更复杂的边缘检测的例子。
让我们快速看一下你需要的东西——一个覆盆子π董事会由一个微型USB电缆,网线,USB摄像头,这是一个V4L2-supported摄像头,当然,MATLAB。万博1manbetx你可以使用任何覆盆子π董事会由MATLAB版本。万博1manbetx然而,本例中需要MATLAB释放2018甚至更高。视频演示中,我使用了一个覆盆子π3模型B。摄像头将被用于边缘检测的例子讨论了末的视频。您还需要MATLAB编码器产品以及MATLAB代码生成。
好,现在我们知道的先决条件,让我们开始在MATLAB。为了与覆盆子π在MATLAB中,您首先需要安装覆盆子π的MATLAB支持包。万博1manbetx支持包使万博1manbetx您与覆盆子π通信硬件从远程计算机MATLAB运行。它包括一个MATLAB命令行接口来访问硬件的外围设备和通讯接口。更多地了解支持包,请参考这个文档的帮助下这个命万博1manbetx令。
我们首先创建一个raspi对象连接到硬件从MATLAB。如果这是你第一次联系的覆盆子π硬件,那么您可能会被提示输入IP地址、用户名和密码。使用这个接口,您可以收集数据从传感器连接到覆盆子π通过印度国家银行和I2C总线硬件,处理它们在MATLAB和实际设备附加到覆盆子π硬件。
例如,您可以设置车载绿色LED使用方法writeLED打开或关闭。简而言之,支持包让你从MAT万博1manbetxLAB交互式地控制的覆盆子π硬件。覆盆子对象还提供了方法的覆盆子π的硬件上执行Linux命令。
好,现在让我们创建一个脚本使用这个命令眨眼了。此外,让我们对树莓π执行一些文件操作硬件。为此,让我们创建一个空的文本文件。W意味着写权限。
接下来,让我们写一个for循环闪烁LED,比方说,七次。让我们实现一第二使用暂停功能。暂停功能Codegen兼容Linux董事会。在周期结束的时候,我们会写眨眼的计数操作我们刚刚创建的文件。结束循环。现在,在写数据,让我们关闭文件并保存脚本。我们叫它blinkNWrite因为我们正在做LED闪烁和文件的写操作。
好,现在让我们来看一个典型的工作流程部署算法覆盆子π硬件。工作流程的第一步是创建一个MATLAB函数。我们刚刚创建一个MATLAB脚本。现在,我们将添加关键字功能,其次是函数的名称。
为了部署一个算法的覆盆子π硬件,它要求我们实现脚本的MATLAB函数。目前,MATLAB 2019 b,您可以部署MATLAB函数没有任何输入/输出参数。好吧,所以我们下一步在工作流执行这个MATLAB函数。点击红色按钮或按下F5运行MATLAB中的函数和控制LED车载覆盆子π基于功能实现的逻辑。
对,现在我们可以看到一个文件,样本。三种,在当前目录中创建的。正如你可以看到,LED已经开始闪烁。和这样做只是完成了7次。现在,让我们打开这个文件。闪烁的LED数等于1 7。完美的。所以我们的MATLAB函数只是调整了领导和创建了一个文件在MATLAB的当前工作目录。现在让我们删除这个文件。
这是连接I / O工作流,在MATLAB交互和控制的外设覆盆子π硬件,在这种情况下的车载LED覆盆子π硬件。接下来,我们看看这个MATLAB函数部署到硬件。在此工作流,MATLAB编码器将MATLAB函数转化为一个等价的C c++代码,其次是构建、加载和执行上的硬件。这个可执行文件将运行独立于MATLAB,否则称为独立执行。
我们开始通过添加后的编译指示% # codegen指令函数签名表明我们打算在硬件上部署MATLAB函数。添加这个指令指示MATLAB代码分析器来帮助您诊断和解决在部署过程中违规行为,可能会导致错误。分析器提供了一个指示器在右上角的编辑器窗口。绿光表明,未发现问题。
正如你可以看到,绿色是显示在顶部为我们的功能。因此,我们可以继续下一步。请注意,并不是所有的函数调用都支持代码生成。万博1manbetx因此,我们的下一个目标是检查代码生成的支持。万博1manbetx
修复不支持的函数调用错误,万博1manbetx您可以声明函数作为编码器。外在,或替换函数的等效函数调用支持代码生成。万博1manbetx在编码器的更多信息。外在,搜索在文档中输入医生coder.extrinsic。
支持函数调用的列表,搜索在文万博1manbetx档中输入文档语言支持代码生成。覆盆子π外围函数的列表提交的部署,搜索文档的文档功能支持部署。万博1manbetx幸运的是在我们的例子中,我们没有任何不支持的函数调用。万博1manbetx
接下来,我们将讨论两个重要函数将帮助我们部署的MATLAB函数作为一个独立的硬件,这是我们的最终目标。我们首先创建一个使用功能目标硬件硬件配置对象。例如,要创建一个配置对象的覆盆子π硬件输入目标对象等于目标硬件覆盆子π。
帮助创建的对象配置部署的各个选项,如硬件设备地址,用户名和密码。默认的用户名和密码是π和覆盆子,分别。其他选项包括设置在硬件建立目录位置,构建部署行动偏好,比如构建、负载,并运行,或者只构建和RunOnBoot选项自动执行功能硬件后开启。所有这些可以配置在部署之前硬件的MATLAB函数。
现在我们已经准备好部署我们的MATLAB函数的覆盆子π硬件。的帮助下,我们将功能部署。这个函数部署硬件上的MATLAB函数作为一个独立的可执行文件。它还生成一个部署报告包含部署状态的信息。
在部署过程中产生的任何错误,您可以使用该报告调试功能,并验证功能适用于部署。此外,我们还必须照顾MATLAB函数部署必须没有任何输入或输出参数作为MATLAB 2019 b释放。部署、目标对象blinkNWrite。
该函数需要两个参数,即硬件配置对象和MATLAB函数的名称被部署,blinkNWrite在我们的例子中。执行这个命令将覆盆子π硬件上部署MATLAB函数。代码生成成功,生成和代码生成报告。你可以在这里看到,LED闪烁。
文件示例。txt将返回一个Linux目录,作为目标的构建目录中指定的硬件配置对象。请注意,文件示例。txt现在上生成树莓π,与连接I / O的工作流,在MATLAB生成的工作目录。我们现在可以复制文件从硬件到MATLAB通过执行这些命令,r = raspi getfile,建立目录的位置。
你可以在这里看到,弹出的文件在工作目录中。让我们打开这个文件。闪烁的LED数等于1 7。
好了。到目前为止,我们已经开发了一个MATLAB函数,它最初在MATLAB中使用连接执行I / O的工作流,然后成功部署的覆盆子π硬件。MATLAB的函数所生成的代码运行在硬件和操作独立于MATLAB。
现在让我们回顾,了解到目前为止讨论的两个工作流,连接I / O和部署。连接I / O可以与硬件交互从MATLAB及其外围设备。你可以从传感器收集数据,流程在MATLAB和控制相应的执行机构。而在部署,从MATLAB代码生成功能、加载和独立的硬件上执行执行。
连接I / O工作流是更好的进行调试,花费更少的时间来编译,因此,对于快速原型是有用的。然而,由于其固定的操作模式,总是需要一个物理连接。这是为了方便按需请求响应中MATLAB和覆盆子π之间共享连接I / O工作流。因此,有周转时间计算的每一步。
另一方面,部署匹配生产工作流代码必须独立于MATLAB运行和使用的主机设计项目。实时执行,部署代码不必等待MATLAB计算的每一步。但它确实涉及编译和部署,这不是很理想的调试和快速原型。
好了,这是一个总结到目前为止讨论的两个工作流。下一节,我们将看一看更专门的应用程序,这是预测算法。更有趣的视频,请访问www.MathWorks.com/videos。谢谢你!
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。