【Z站推荐】EsDA MPC-ZC1 入门(二)—— LED 控制

继上一篇章 esda mpc-zc1 入门(一)—— 软件安装 ,本章节以最简单的 led控制 例程来介绍 awflow 应用流图的基本开发过程。
整个教程通过5个步骤,演示了节点添加、配置、连线等基本开发过程,实现了led点亮, 闪烁,  流水灯等功能。
step.1 搜索 led 节点
可通过搜索框,快速定位到 led 节点。
每一个节点都有对应的帮助文档,详细介绍了节点的属性、输入参数、输出数据、行为特性和对应例程。
1. led 节点属性
名称(name):节点名称,可用于索引查找本节点;显示名称(display name):用于画布上显示的名称,仅做显示;设备名称(device name):用于索引硬件 led 设备,通常由目标板提供枚举选项;初始状态(initial state):led 初始状态,on(亮) 或 off(灭)。2. led 输入参数
payload(负载数据):指示 led 的状态参数,0(灭),1(亮),2(反转);timer(闪烁周期):当本参数存在时,led 进入闪烁模式,并按照参数值,周期性闪烁;device_name(设备名称):通常用于多 led 控制时,匹配指定 led 设备;fast_blink(闪烁次数):当使能 timer 功能,此参数可用于设置闪烁参数。所有节点的输入参数皆由上级节点输出提供,通常为 msg 对象携带的对应属性参数。
3. led 输出数据led 为 sink 类型节点,不对外输出。
相关的节点类型介绍可参考 《awflow节点开发指南》
https://awstudio.zlg.cn/pro/docs/awstudio_docs/awflow_node_develop_guide/
 step.2 添加 led 节点
将 led 节点推拽至画布上,完成节点添加。
双击画布上的 led 节点,打开节点配置界面。
此处选择 led_red 设备,对应板载的红色led,并将初始状态配置为 on,然后点击完成。
属性说明可以参考 led 节点属性 章节。
step.3 下载流图
点击 请选择目标板,选中目标板通信接口(awflow designer 后台会自动检测符合awflow 通信标准的通信接口)。
点击下载流图按钮。
下载完成。
此时可以看到板子的 红色led 已经亮起,这是因为我们配置了 led 的初始状态为 on,所以当 led 节点被加载时,会点亮对应的led。
虽然led已经成功点亮,但是仅使用 led 节点并不能实现复杂的状态控制功能,我们需要进一步添加其他节点来实现复杂业务。
step.4 添加业务
大多数带有业务的数据流,都会根据系统中的一些事件来做出响应的,一般以一个 pump 类型的节点作为起始点,通过此节点接收系统事件来触发数据流执行,这里我们以 1秒 反转一次led状态 作为业务。我们需要添加一个 timer 节点,利用 timer 节点产生的周期事件来触发数据流执行,同时推动一个 fscript 脚本节点来向 led 节点输入反转的命令。
关于 timer、fscript 节点的介绍可参考 《awflow节点使用手册》
https://awstudio.zlg.cn/pro/docs/awflow/
添加 timer 节点
添加 fscript 节点
编辑 fscript 节点
如图片所示:
添加 timer、fscript 节点,并进行连线;编辑 fscript 节点脚本。
 msg.payload = 2可参考 led 输入参数timer 节点默认以 1 秒为周期,触发数据流运行,向 fscript 传递定时计数值,此处 fscript 节点并未使用 timer 的计数值,仅利用其周期事件来向 led 节点发送反转命令。
下载流图
重复 step.3 下载流图 的步骤,下载最新流图,可以看到板载红色led整以1秒的周期进行反转。
step.5 扩展业务
为了更加深入的了解业务的开发过程,这里通过流水灯业务进一步扩大业务规模。
1. 添加新数据流
按照之前添加节点的方式,新增额外2路led控制数据流,如下图所示:
可选中画布中的 fscript 和 led 节点通过 ctrl+c 复制,ctrl+v 粘贴来快速添加节点。
2. 配置led节点
3路 led 配置如下图所示:
3. 配置业务节点
3路 fscript 节点配置如下图所示:
前面我们了解到 timer 节点会周期性向下一节点推送一个定时器计数值(msg.payload),我们可利用这个计数值来索引不同的led。
   if (msg.payload /1000 %3 == 0) {    output.payload = 1} else {    output.payload = 0总共有3路led,那么我们通过 msg.payload /1000 % 3  计算来获得3个索引条件。
timer 节点计数精度为1毫秒,默认计数周期为1秒,除以 1000 获得秒计数值。
代码
点亮led
msg.payload /1000 %3 == 0
红色
msg.payload /1000 %3 == 1
蓝色
msg.payload /1000 %3 == 2
绿色
由于 timer 节点的输出数据(msg),需要被推送到多路数据流上,所以为了不影响其他数据流的使用,这里我们选择 output 作为输出数据。
关于 output、msg 对象的详细描述,可参考《awflow节点开发指南》
https://awstudio.zlg.cn/pro/docs/awstudio_docs/awflow_node_develop_guide/
最终流图如下所示:4. 下载流图重复step.3 下载流图 的步骤,下载最新流图,可以看到板载led整以1秒的周期进行切换显示。

华为P10拍照评测: 第一梯队水准!DxOMark给的87分怎么来?
对于真空断路器我们该如何进行日常的维护保养
关于婴幼奶瓶整体跌落性能测试仪
GSM无线网络的虚拟分层
拆解一个翻新的oppo r9s plus手机?
【Z站推荐】EsDA MPC-ZC1 入门(二)—— LED 控制
电枢和磁极的区别
基于I2C接口驱动芯片PCA9633实现LED显示控制系统的设计
欧姆龙推出适用于工业机器人系统的高级安全控制器
关于烟气在线监控系统的简单介绍
怎么知道电容的SFR是多少?如何选取不同SFR值的电容值呢?
2017中国vcm马达生产厂家最具竞争力前10强排名
智能家电适老化会成为行业新增长点吗?
五分钟看完宝马2系运动旅行车C-NCAP碰撞测试全过程
vivoXplay6 、vivoX9参展MWC2017 高调亮相,惊艳众人!
青睐中国硅谷 苹果将在深圳设立研发中心
虹科工业物联网产品赋能企业数字化转型
日本锂电池隔膜巨头正加快全球布局以扩大其隔膜产能
智能手环的功能和用途
钢材表面的氧化皮因素一般都有哪些