为 Arduino 生成代码(LED 灯闪烁)¶
Arduino 平台是当今教育机器人和简单过程自动化领域最常用的平台。它可用于许多应用领域的原型开发。
在本示例中,我们将展示如何通过Engee中的图形模型生成 Arduino 编程代码,使用电路设计中最简单的任务之一。让我们创建一个模型,以指定频率闪烁 Arduino 平台的 "板载 "LED。
介绍¶
本例中概述的将模型转移到硬件平台的解决方案可分为几个步骤:
1.创建或修改Engee模型 2 描述模型-Arduino接口 3.下载包含项目的文件夹并通过 Arduino IDE 上传到平台
在以模型为中心的设计过程中,我们尽量将所有精力集中在第一阶段--为将被传输到 Arduino 的算法建模。界面定制阶段只需很少的干预,代码生成和上传到目标平台虽然不是自动化的,但也不涉及任何复杂的操作。
平台准备¶
在本例中,我们只需要一个兼容 Arduino 的平台(Uno、Leonardo、Iskra 等)和一根合适的 USB 线。
您还需要在计算机上安装 Arduino IDE,查找并安装 附加驱动程序(如有必要),并通过 USB 端口连接现有电路板。
查找和安装连接外部硬件的驱动程序通常需要花费一些精力。上述驱动程序可让您与 Arduino Uno、Arduino Leonardo 和许多其他类似电路板(如 Iskra Neo)配合使用。不过,如果遇到任何困难,我们建议您查阅帮助文章或 Engee 社区以寻求帮助。
型号说明¶
我们将根据模型生成代码blink.engee
.
每一步都会执行其中所述的计算,并返回两个值:
out_LED_BUILTIN
- LED 状态(最初等于 1,每个周期变为 "相反")、param_WAIT_MS
- 不断返回的值500
(两次调用模型代码之间的毫秒数)。
生成代码的条件之一是模型使用实体步求解器_。
值得注意的是,从技术上讲,从所有区块生成代码是不可能的(甚至是不可取的)。允许生成的区块列表仍然非常庞大,但查看Engee 代码生成器文档总是非常有用的。_
代码生成¶
点击 在 Engee 工作区的右上角(然后您需要将blink_code
文件夹移到sketch_blink_custom
文件夹内)。
<br
在本演示中,我们建议使用以下命令来完成此操作:
engee.generate_code( "$(@__DIR__)/blink.engee",
"$(@__DIR__)/sketch_blink_custom/blink_code" )
因此,在sketch_blink_custom
目录中,我们将找到blink_code
文件夹,在该文件夹中,我们将找到.c
和.h
文件,其中包含我们系统的代码。
项目文件¶
我们的项目中只有一个模型。在生成的文件中,我们只需要包含该模型代码的文件:源代码blink.c
和头文件blink.h
。
值得注意的是项目文件和目录的结构:
- 文件
sketch_blink_custom.ino
包含模型-Arduino 接口的描述、sketch_blink_custom
级目录必须与`.ino` 文件命名相同(Arduino IDE 要求)、 - 目录
blink_code
包含生成代码的文件,我们将把这些代码包含在文件*.ino
中。
模型-Arduino 接口¶
我们的模型端口与 Arduino 不同功能输入点之间的接口在文件sketch_blink_custom.ino
中进行了描述。我们建议您直接在Engee中打开并研究其内容。
该代码实现了一个运行模型生成代码的无限循环。输出值被放置在blink_Y
结构中,然后我们将每个值传递给标准 Arduino 库中所需的函数。
将模型传输到 Arduino¶
只需将演示目录打包成一个归档文件,并从Engee文件管理器下载到本地计算机即可。只需在右键菜单中执行一次操作,即可完成存档和下载。
解压压缩包后,您会发现sketch_blink_custom.ino
文件,该文件可在 Arduino IDE 中打开。
您已经在 Arduino IDE 中打开了一个准备就绪的项目,只需使用 "上传 "按钮将其发送到目标平台即可。
运行该示例的典型结果显示在以下视频中:
结论¶
处理低级代码通常需要一些技术技能和额外的操作。
除了开发模型,您至少还需要
- 在 Engee 模型和 Arduino 功能之间创建一个接口、
- 下载项目并在本地目标平台上运行。
在执行单个应用任务时可能会出现更复杂的问题,例如,使模型的速度与 Arduino 处理器的时钟速度相匹配。
然而,您在Engee中建立的适合您需要的优化工作流程,将通过自动化许多常规活动,为复杂的项目节省大量精力:
- 同步项目代码以匹配数学模型、
- 创建可视化文档--在 Engee 中,您可以使用命令自动为脚本添加示意图和输出图表,并生成 HTML 或 PDF 格式的报告、
- 大大简化半自然测试。