AnyMath 文档
Notebook

# 弄脏了,弄脏了。

Arduino平台是最适合的机器和移动平台。 它用于各种应用领域的原型设计。

中我们将展示如何使用电路工程中最简单的任务之一的例子。AnyMath中的图形模型为Arduino生成软件代码。 让我们创建一个模型,它将以一定的预设频率闪烁Arduino平台的"板载"领导。

## 导言

解决将模型转移到硬件平台的问题,在这个例子中描述,可以分为几个步骤。:

  1. 整条换热**
  2. 输入整条换热区**-Arduino**
  3. N.婚姻登记,婚姻登记

在面向模型的设计过程中,我们试图将所有努力集中在第一阶段-对将要转移到Arduino的算法进行建模。 接口配置阶段需要非常少的干预,代码生成和上传到目标平台虽然不是自动化的,但不涉及任何复杂的操作。

## 平台准备

对于这个例子,我们需要一个更好的平台(Uno,Leonardo,Iskra)和组合的USB电。<br><br>

(阿尔诺伊)(阿尔诺伊)(阿尔诺伊)(阿尔诺伊)(阿尔诺伊)(阿尔诺伊)(https://www.arduino.cc/en/software ),)(签署协议)(http://wiki.amperka.ru/articles:driver-ch340#установка_драйвера )(如果有只要)并通过连接。

image_2.png

查找和安装驱动程序以连接到外部硬件通常需要一些努力。 上面的驱动程序应该允许您使用Arduino我的Arduino Leonardo和许多其他类似的电路板,如Iskra新。 中如果遇到任何困难,我们建议您咨询参考文章或AnyMath社区寻求帮助。_

## 模型描述

我们将从模型中生成代码。 blink.engee.<br><br>

在每个步骤中,它执行其中描述的计算并返回两个值:

  1. out_LED_BUILTIN -领导的(聪明于1,哪个周期为"."),
  2. param_WAIT_MS -永久返回值 500 (两次访问模型代码之间的毫秒数)。

image_2.png

代码生成的条件之一是在模型中使用恒定步长求解器**。<br><br>

还应该记住,从所有块中获取代码在技术上是不可能的(甚至是可取的)。 可接受的块列表仍然很长,但检查[AnyMath代码生成器上的文档]总是有用的(https://engee.com/helpcenter/stable/codegen/code-generation-options.html )。_

## 代码生成

Svg宽度="24"高度="24"viewBox="002424"fill="none"xmlns="这里有一个完整的区域http://www.w3.org/2000/svg"&gt;&lt;g剪辑路径="url(#clip0_23739_21703)"&gt;&lt;路径d="m11.3790.153333c11.5511 0.0529147 11.7468 0 11.946 0c12.1452 0 12.3409 0.0529147 12.513 0.153333l21.834 5.59083c22.0041 5.68976 22.1453 5.83158 22.2435 6.00214c22.3417 6.1727 22.3934 6.36603 22.3935 6.56283v17.4378c22.3934 17.6346 22.3417 17.828 22.2435 17.9985c22.1453 18.1691 22.0041 18.3109 21.834 18.4098l12.513 23.8473c12.3409 23.9478 12.1452 24.0007 11.946 24.0007c11.7468 24.0007 11.5511 23.9478 11.379 23.8473l2.058 18.4098c1.88815 18.3107 1.74725 18.1688 1.64934 17.9983c1.55143 17.8277 1.49994 17.6345 1.5 17. 4378V6.56283C1.49994 6.36618 1.55143 6.17295 1.64934 6.0024C1.74725 5.83185 1.88815 5.68995 2.058 5.59083L11.379 0.153333ZM12 22L20.5 17V7L12 2L3.5 7V17L12 22Z"FILL="#212121"></PATH><PATH FILL-RULE="EVENODD"CLIP-RULE="EVENODD"D="M14.8797 9.17157C13.397 7.60948 10.9931 7.60948 9.51036 9.17157C8。02766 10.7337 8.02766 13.2663 9.51036 14.8284C10.9931 16.3905 13.397 16.3905 14.8797 14.8284C15.2503 14.4379 15.8513 14.4379 16.222 14.8284c16.5927 15.219 16.5927 15.8521 16.222 16.2426C13.998 18.5858 10.3921 18.5858 8.16803 16.2426C5.94399 13.8995 5.94399 10.1005 8.16803 7.75736c10.3921 5.41421 13.998 5.41421 16.222 7.75736C16.5927 8.14788 16.5927 8.78105 16.222 9.17157C15.8513 9.5621 15.2503 9.5621 14.8797 9.17157z"fill="#212121"></path></g><defs><clippath ID="CLIP0_23739_21703"><RECT WIDTH="24"HEIGHT="24"FILL="WHITE"></RECT></CLIPPATH></DEFS></SVG>在工作时的八仙ENGEE(然而,简单的操作 blink_code 文件夹内 sketch_blink_custom).<br><br>

在本演示中,我们建议使用以下命令执行此操作:

In [ ]:
engee.generate_code( "$(@__DIR__)/blink.engee",
                     "$(@__DIR__)/sketch_blink_custom/blink_code" )
Out[0]:
"Created directory - /user/start/examples/codegen/arduino_blink/sketch_blink_custom/blink_code"

其结果是,在目录 sketch_blink_custom 文件夹将打开 blink_code 我们发现 .c 和 .h 文件与我们的系统的代码。

## 项目文件

我们的项目中只有一个模型。 在生成的文件中,我们只需要带有此模型代码的文件:源代码 blink.c 和头文件 blink.h.

值得关注的是项目文件和目录的结构。:

image_2.png

档案 sketch_blink_custom.ino 可供挑选的整条换热区-Arduino*,
*级别目录 sketch_blink_custom 它应该与文件命名相同。 *.ino (Arduino)。,
*目录 blink_code 它包含带有生成代码的文件,我们将包含在文件中。 *.ino.

## 接口整条换热-Arduino

......换热......换热......换热......换热......换热...... sketch_blink_custom.ino. 我们在*anymath中找到合适的位置。

此代码实现了一个无限循环,其中运行生成的模型代码。 输出值放置在结构中 blink_Y 之后,我们八仙了。

## [医]整条换热

剩下的就是将演示目录打包到存档中,并将其从AnyMath文件管理器下载到本地计算机。 归档和下载可以通过上下文菜单的单个操作完成。

image_2.png

解压缩生成的存档后,您将在其中找到一个文件。 sketch_blink_custom.ino)(可以。

image_2.png

您已经收到了在Arduino IDE中打开的现成项目,该项目仍然需要使用"行"按钮发送到目标平台。

image.png

运行示例的典型结果如下面的视频所示:

20240126_122454~2-30fps.GIF

## 结论

使用低级代码通常需要一些技术技能和额外的操作。<br><br>

除了开发模型之外,您至少需要:

在阿尼马斯阿尼马斯,
*下载项目并在本地目标平台上运行。

在实施过程中,可以实现更高的效率。<br><br>

中您优化的工作流程,上AnyMath并适合您的需求,通过自动化许多常规操作,将在复杂项目中节省大量精力。:

*按照数学模型同步项目代码,
*创建可视化文档-在AnyMath中,您可以使用命令自动将图表和输出图表的照片添加到脚本中,并以HTML或PDF格式生成报告,
*并显着简化半例行测试。

示例中使用的块