开发节点

       当我们完成在Lattepanda开发板配置SmartNode的开发环境时,我们也可以了解一下如何编写属于自己的节点。

       首先我们需要了解一下Lattepanda基于的Johnny-Five。Johnny-Five是一个应用于JavaScript机器人与物联网的平台,自从Bocoup在2012年发布以来,一直由充满激情的软件开发人员和硬件工程师社区维护。超过75位开发人员在将Johnny-Five构建成一个稳定的、可扩展和可组合的系统做出重大贡献。

       我们以两个节点为例子进行讲解,一个是可直接在Johnny-Five官网的API中查找到对应接口的节点,例如button;另一个是在Johnny-Five只有类的API接口,例如传感器类中的rotation(旋转传感器)节点。

       一个节点主要包括三部分:JavaScript文件,HTML文件,locals文件:

节点结构

       JavaScript文件用于节点功能编写,html文件用于节点页面编辑,locals文件用于节点信息部分和节点名称的英汉化显示。其中en-US为英文版本,zh-CN为中文版本,中英文可以根据浏览器的语言设置进行切换。

英汉化结构

       创客大爆炸的开发人员编写了节点的模板,所以每次只需要修改自己想要开发的节点的相关功能和对应的参数修改,学会错误信息的查找并且调试就可以完成属于自己的开发节点。

       我们先以Button节点为例,了解一下JS和HTML代码结构。我们可以使用Sublime Text查看代码。

Button_html

参数部分

       这一部分为可以修改的参数部分,显示在页面上如下图所示。根据你的节点所需要的参数进行添加或者修改。其中Board参数不能修改,它用于开发的识别显示,为统一模板。例如Button节点是数字针脚接口,光线传感器却是模拟针脚接口;舵机节点可以添加旋转角度的参数等等。

节点显示

       这一部分为不能修改的参数部分,用于开发板的选择和COM选择及连接。

不可修改的参数部分

board显示

       这一部分为可修改的定义部分,根据上面设计的参数进行对应的修改。

       (1)节点名称

       (2)节点类型

       (3)节点显示颜色

       (4)节点参数:这一部分与可修改的参数部分相关。board-开发板,不能删除;name-可修改的显示名称;digitalPin-数字接口;impulse-缓冲间隔,识别多少毫秒可进行判定。

       (5)节点输入的参数个数

       (6)节点输出的结果个数

       (7)节点图标

       (8)英汉化对应部分

       (9)数字接口为D,模拟接口为A,对应(4)的接口参数

HTML可修改部分

       其他部分为不可修改的定义部分,用于支持开发板的识别和设置。

Button_JavaScript

       查阅Johnny-five官网关于Button的API文档

JohnnyFive-button

       对应的Button节点可编写部分如下:

JS代码-button_副本

       (1)定义基于Johnny-five的button节点,参数为button传感器接入lattepanda开发板的接口;

       (2)定义button节点的按压动作,输出1;

       (3)定义button节点的放开操作,输出0。

类型修改

       按照节点名称进行修改。

       JS其他部分的代码用于开发板的识别、端口获取功能的实现,不能进行修改。

Rotation_JS

       下面介绍Rotation旋转传感器节点,html部分代码需要修改的过程相近,不再进行介绍,直接从JS代码入手。

传感器使用方法

       Johnny-five官网关于Sensor节点分为模拟传感器和数字传感器,主要区别在于定义传感器时选择数字接口还是模拟接口。

       对应rotation节点的功能编写部分为:

rotation_JS

       当接口感应的数值发生变化选择输出,因为rotation传感器旋转范围为0~300,而模拟接口感应的数值远远大于这个范围,轻微的触碰开发板都会导致数值发生变化,所以为了更好的观察使用数据,将感应数据进行处理,缩小到范围0~300之内,并且判定若两次数值相同则第二次不输出。

       LattePanda平台的SmartNode节点开发如上所述,但具体细节根据自己编写节点需求决定,若有其他问题,可以在论坛中提出,我们会进行解答。

返回

跳至工具栏