主要内容

与Arduino硬件通信

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

万博1manbetx支持的硬件:

  • 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 Nano 33 IoT

  • Arduino Nano 33 BLE Sense

此示例的可用版本:

Arduino Mega 2560板:arduino_communication

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

简介

万博1manbetx万博1manbetxSimulink®Arduino硬件支持包使您能够从开发算法的相同Simulink模型监视和调优运行在Arduino板上的算法。

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

外部模式(监视和调优)特性允许您在模型在目标硬件上运行时更改某些参数值,而无需停止模型,从而使您能够加速参数调优过程。当您从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.点击停止按钮在Simulink模型。万博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模型通过万博1manbetxWiFi在外部模式下运行

参考文档部分:配置模型在WiFi或串行的外部模式下运行

其他可以尝试的事情

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

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