文档

与Arduino®硬件通信

这个例子展示了如何调整参数和监控在Arduino板上运行的算法的信号。

金宝app支持的硬件:

  • Arduino Mega 2560

  • Arduino Mega ADK

  • Arduino由于

  • Arduino达芬奇

  • Arduino微

  • Arduino Uno

  • Arduino MKR1000

  • Arduino MKR WIFI 1010

  • Arduino MKR ZERO

  • Arduino Nano 3.0

  • Arduino机器人控制板

  • Arduino机器人电机板

此示例的可用版本:

Arduino Mega 2560板:arduino_communication

所提供的模型是针对Arduino Mega 2560预先配置的,可以在“Supported Hardware”一节中列出的任何板上运行,方法是在本例的Task 2中描述的模型配置参数对话框中更改“Hardware bo金宝appard”参数。

介绍

金宝appArdu金宝appino硬件的Simulink支持包使您能够从开发算法的相同Simulink®模型中监控和调整在Arduino板上运行的算法。

在本例中,您将了解如何在算法执行时实时地调优和监视算法。在开发算法时,通常需要以迭代的方式确定关键算法参数的适当值。例如,测量房间内运动能量的监视算法可以使用阈值来确定存在环境噪声的入侵者。如果阈值设置得太低,算法可能会错误地将任何移动解释为入侵者。如果阈值设置得太高,算法可能根本无法检测到任何运动。在这种情况下,可以通过尝试不同的值来获得合适的阈值,直到达到期望的算法性能。这个迭代过程称为参数调优。

金宝appSimulink的外部模式功能使您能够通过让您在模型在目标硬件上运行时更改某些参数值来加速参数调整的过程,而无需停止模型。当您在Simulink中更改参数值时,修改后的参数值将立即传递给目标硬件。金宝app参数调优活动的效果可以通过在Simulink中查看示波器或显示器上的算法信号来监测。金宝app

这个例子介绍了Simulink金宝app外部模式通过向您展示如何:

  • 建立Simulink与Arduino板之间的通信。金宝app

  • 使用Simu金宝applink模型来调整在Arduino板上运行的算法的参数。

  • 使用Si金宝appmulink示波器监控在Arduino板上运行的算法的状态。

先决条件

在开始这个示例之前,我们建议您完成入门Arduino®硬件的例子。

所需的硬件

要运行这个例子,你需要以下硬件:

  • 金宝app支持的Arduino板

  • USB电缆

  • 领导

  • 220欧姆电阻器

  • 试验板线

  • 小面包板(推荐)

模型

示例模型如下图所示:

任务1 -将LED连接到Arduino输出引脚

在本任务中,您将将LED连接到Arduino数字输出引脚,以便您可以看到引脚逻辑状态的变化。

1.将220欧姆电阻的一端连接到Arduino板上的数字输出引脚9上。使用推荐的面包板和面包板接线。

2.将LED的长腿(正极)连接到电阻上。将短腿(负极)连接到Arduino板上的接地引脚上。

任务2 -为支持的Arduino硬件配置模型金宝app

在本任务中,您将为支持的Arduino板配置模型。金宝app

1.打开与Arduino硬件通信模型。

2.在您的Simul金宝appink模型中,单击仿真>模型配置参数打开配置参数对话框。

3.选择硬件实现面板中选择所需的Arduino硬件硬件板参数列表。请勿更改其他设置。

4.点击好吧

任务3 -模拟模型

按照以下步骤模拟模型:

1.观察该模型播放房间内记录的运动能量,并将其与检测入侵的阈值进行比较。

2.在模型中,更改模拟模式在工具栏上正常的。这告诉Simulink金宝app在主机上运行模型。请参见下面的任务4,在Arduino目标硬件上运行模型。

3.在模型中,单击运行按钮。金宝app

4.单击范围块。观察该算法检测到多个入侵。

5.点击停止按钮。金宝app

任务4 -在外部模式下运行模型

1.将USB电缆从计算机连接到Arduino板。

2.在模型中,更改模拟模式在工具栏上外部

3.在模型中,单击运行按钮。

任务5 -通过串行与模型通信

此时,您的模型在Arduino板上运行。由于该模型运行在硬件上,它与Simulink模型在外部模式下通过USB串行连接进行通信。金宝app

1.注意,连接到引脚9的LED几乎一直在发光。这意味着所选择的阈值太低,并且算法甚至将微小的运动能量变化误解为入侵。您需要找到一个更优的阈值。

2.双击阈值块,增加其值,然后单击好吧应用。这将改变在板上运行的模型中的阈值。

3.检查LED的发光模式是否有变化。在正确调谐的算法中,LED应该每10秒和11.5秒亮一次。

4.如果LED光模式没有变化,重复步骤2和3,直到找到合适的阈值。

5.点击停止按钮。金宝app

串口通信故障处理

1.错误提示“试图通过端口与主机名127.0.0.1建立连接”。表示本地环回的TCP/IP端口17725被其他应用程序占用。外部模式在后台使用一个进程来缓冲数据并改进数据记录。此进程需要端口17725。

2.较高的基本速率可能导致作用域窗口中的时间冻结。这是Arduino板上固件的限制。使用FTDI芯片作为USB-Serial桥接解决了这个问题。

任务6 -配置模型通过TCP/IP在外部模式下运行

参考文档部分:将模型配置为通过TCP/IP以外部模式运行

任务7 -配置模型通过WiFi在外部模式下运行

参考文档部分:将模型配置为通过WiFi在外部模式下运行

其他尝试

  • 监控模型中的其他信号。例如,添加另一个范围来监视记录的运动能量的值。

  • 改进检测算法,过滤掉任何小于0.2秒的运动能量变化。

总结

这个例子展示了在Arduino板上调试和监控算法的工作流程。在这个例子中,你学到了:

  • 如何使用外部模式功能调整Arduino板上的算法参数。