为Arduino生成代码(闪烁的LED)
Arduino平台是当今最广泛使用的教育机器人和简单流程自动化平台。 它用于各种应用领域的原型设计。
在这个例子中,我们将展示如何使用电路工程中最简单的任务之一的例子,从Engee中的图形模型为Arduino生成软件代码。 让我们创建一个模型,它将以一定的预设频率闪烁Arduino平台的"板载"LED。
导言
解决将模型转移到硬件平台的问题,在这个例子中描述,可以分为几个步骤。:
- 创建或更改Engee模型
- 接口模型的描述**-Arduino**
- 下载项目文件夹并通过Arduino IDE上传到平台
在面向模型的设计过程中,我们试图将所有努力集中在第一阶段-对将要转移到Arduino的算法进行建模。 接口配置阶段需要非常少的干预,代码生成和上传到目标平台虽然不是自动化的,但不涉及任何复杂的操作。
平台准备
对于这个例子,我们只需要一个Arduino兼容的平台(Uno,Leonardo,Iskra等)和合适的USB电缆。
您还需要在计算机上安装[Arduino IDE]环境(https://www.arduino.cc/en/software ),查找和供应[附加драйверы](http://wiki.amperka.ru/articles:driver-ch340#установка_драйвера )(如有必要)并通过USB端口连接现有板。
查找和安装驱动程序以连接到外部硬件通常需要一些努力。 上面的驱动程序应该允许您使用Arduino Uno,Arduino Leonardo和许多其他类似的电路板,如Iskra Neo。 但是,如果遇到任何困难,我们建议您咨询参考文章或Engee社区寻求帮助。_
模型描述
我们将从模型中生成代码。 blink.engee.
在每个步骤中,它执行其中描述的计算并返回两个值:
out_LED_BUILTIN-LED的状态(最初等于1,每个周期变为"相反"),param_WAIT_MS-永久返回值500(两次访问模型代码之间的毫秒数)。
代码生成的条件之一是在模型中使用恒定步长求解器**。
还应该记住,从所有块中获取代码在技术上是不可能的(甚至是可取的)。 有效块的列表仍然很长,但检查[Engee代码生成器上的文档]总是有用的(https://engee.com/helpcenter/stable/codegen/code-generation-options.html )。_
代码生成
您可以通过单击<svg width="24"height="24"viewBox="0 0 24 24"fill="none"xmlns="来获取此模型的代码http://www.w3.org/2000/svg ">blink_code 文件夹内 sketch_blink_custom).
在本演示中,我们建议使用以下命令执行此操作:
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格式生成报告,
*并显着简化半例行测试。