主要内容

与Arduino硬件通信

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

万博1manbetx支持的硬件:

  • Arduino超级2560

  • Arduino兆理应

  • Arduino由于

  • Arduino达芬奇

  • Arduino微

  • Arduino Uno

  • Arduino MKR1000

  • Arduino MKR WIFI 1010

  • Arduino MKR零

  • Arduino 3.0纳米

  • Arduino机器人控制板

  • Arduino机器人电机板

  • Arduino Nano 33物联网

  • Arduino Nano 33 BLE Sense

这个示例的可用版本:

Arduino Mega 2560板:arduino_communication

所提供的模型是Arduino Mega 2560预配置的,可以在“支持的硬件”一节中列出的任何单板上运行,如本示例的任务2中所述,通过改变模型配置参数对话框中的“硬件板”参数。万博1manbetx

介绍

万博1manbetx万博1manbetxSimulink®Support Package for Arduino Hardware可以让您从开发算法的相同的Simulink模型监控和调整运行在Arduino板上的算法。

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

外部模式(Monitor和Tune)特性允许您在模型在目标硬件上运行时更改某些参数值,从而加速参数优化过程,而不需要停止模型。当您在Simulink中更改参数值时,修改后的参数值会立即通信到目标硬件。万博1manbetx参数调优活动的效果可以通过在作用域上查看算法信号或在Simulink中显示来监控。万博1manbetx

这个例子介绍了Simulink万博1manbetx外部模式通过向您展示如何:

  • 搭建Simulink与Arduino板的通信。万博1manbetx

  • 使用Simu万博1manbetxlink模型调优在Arduino板上运行的算法的参数。

  • 使用Si万博1manbetxmulink范围监控运行在Arduino板上的算法的状态。

先决条件

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

所需的硬件

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

  • 万博1manbetx支持Arduino电路板

  • USB电缆

  • 领导

  • 220欧姆电阻

  • 试验板线

  • 小案板(推荐)

模型

示例模型如下图所示:

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

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

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

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

任务2 -为支持的Arduino硬件配万博1manbetx置Simulink模型万博1manbetx

在本任务中,您将为所支持的Arduino板配置模型。万博1manbetx

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

2.在您的Simul万博1manbetxink模型中,单击模拟>模型配置参数打开配置参数对话框。

3.选择硬件实现窗格中选择所需的Arduino硬件硬件板参数列表。不要更改任何其他设置。

4.点击好吧

任务3 -模拟模型

要模拟该模型,请遵循以下步骤:

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

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

3.在模型中,单击运行按钮。万博1manbetx

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

5.点击停止按钮。万博1manbetx

任务4 -运行Simuli万博1manbetxnk模型

1.从你的电脑连接USB线到Arduino板。

2.硬件选项卡中的万博1manbetx模式部分中,选择机上运行然后点击监视和优化

任务5 -通过串行与Simulink模型通信万博1manbetx

此时,您的模型正在Arduino板上运行。该模型运行在硬件上,通过USB串口与Simulink模型进行外部通信。万博1manbetx

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

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

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

4.如果LED灯型没有变化,重复步骤2和3,直到找到正确的阈值。

5.点击停止在Simuli万博1manbetxnk模型中。

解决串行通信

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

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

任务6 -配置Simulink模型在T万博1manbetxCP/IP的外部模式下运行

请参阅文档部分:配置“模型”为“通过以太网运行在外部模式”

任务7 -配置Simulink模型在W万博1manbetxiFi的外部模式下运行

请参阅文档部分:配置型号为通过WiFi或串行运行在外部模式

其他可以尝试的事情

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

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