Intel Edison Grove 继电器控制实战Johnny-Five 与 Edison-IO 集成指南【免费下载链接】johnny-fiveJavaScript Robotics and IoT programming framework, developed at Bocoup.项目地址: https://gitcode.com/gh_mirrors/jo/johnny-fiveJohnny-Five 是运行在 Node.js 上的 JavaScript 机器人与物联网编程框架本指南围绕其 Grove 传感器生态中的继电器Relay模块展开演示如何在Intel Edison Arduino Breakout 板上通过 Grove Base Shield v2 的 D6 插口控制继电器通断。读完本文你将掌握 Edison 平台的 Johnny-Five 环境搭建、Grove Relay 的接线方式以及five.Relay的open()/close()/toggle()三个核心方法在真实代码与底层实现中的完整工作方式。硬件与平台说明Grove 是 Seeed Studio 推出的标准化传感器/执行器连接体系通过统一接口的 Base Shield 与各类模块即插即用。本文示例将 Grove Relay 模块插入Grove Base Shield v2再叠加到Intel Edison Arduino Breakout板上。正如原文档所强调的这种 Shield 与模块的组合适用于任何与 Arduino 引脚布局兼容的硬件平台因此本文的接线与代码思路也可迁移到其他 Arduino 兼容板卡。运行该程序需要以下硬件Intel Edison Arduino Breakout 板Grove Base Shield v2提供 D2D8 等标准 Grove 插口Grove Relay 模块继电器模块环境准备安装 Johnny-Five 与 Edison-IOEdison 在 Johnny-Five 生态中通过edison-io库作为底层 IO 插件IO Plugin接入Board构造时需显式注入该实例。根据 Edison Arduino 开发文档使用 Edison-IO 前需要先在 Edison 上刷写 Intel IoTDevKit 系统镜像随后在项目目录安装两个依赖npm install johnny-five edison-io安装完成后即可编写并运行程序。核心示例通过 Grove D6 插口控制继电器完整示例代码位于 eg/grove-relay-edison.js从命令行运行node eg/grove-relay-edison.js代码逐段拆解如下。1. 创建以 Edison 为 IO 层的 Boardvar five require(johnny-five); var Edison require(edison-io); var board new five.Board({ io: new Edison() });require(edison-io)引入 Edison 平台驱动new five.Board({ io: new Edison() })将 Board 的底层通信交给 Edison-IO 处理之后所有 Johnny-Five 组件Led、Relay、Servo 等都能以统一 API 操作 Edison 引脚。2. 在 ready 回调中实例化继电器board.on(ready, function() { // 将 Grove Relay 模块插入 Grove Shield 的 D6 插口 var relay new five.Relay(6); // 从终端手动控制继电器 this.repl.inject({ replay: relay }); });new five.Relay(6)以数字 6 作为引脚号构造继电器对应Grove Shield 的 D6 插口。Johnny-Five 的Board.Options会将该数值参数归一化为{ pin: 6 }形式的配置对象见 lib/board.options.js 的Options类。this.repl.inject({ replay: relay })把继电器实例注入 Johnny-Five 内置的 REPL。程序运行后你无需修改代码直接在终端输入relay.close()、relay.open()、relay.toggle()即可实时控制继电器通断非常适合在面包板或原型机上快速验证。深入源码Relay 的底层实现与行为语义要真正用好这个示例理解five.Relay的实现细节至关重要。其完整实现位于 lib/relay.js核心要点如下。构造参数与 NO / NC 类型构造函数支持两种传参方式直接传引脚号如new five.Relay(6)或传对象如new five.Relay({ pin: 6, type: NC })const pinValue typeof options object ? options.pin : options; options.type options.type || NO; const state { isInverted: options.type NC, isClosed: false, value: null, };type默认值为NONormally Open常开继电器未通电时电路断开若指定type: NCNormally Closed常闭则逻辑取反isInverted为true。close / open / toggle 三个方法方法行为底层调用close()闭合继电器电路isClosed置为true常开型写HIGH常闭型写LOWopen()断开继电器电路isClosed置为false常开型写LOW常闭型写HIGHtoggle()翻转当前通断状态内部根据isClosed决定调用open()或close()以close()为例源码通过this.io.digitalWrite直接对引脚写电平close() { const state priv.get(this); this.io.digitalWrite( this.pin, state.isInverted ? this.io.LOW : this.io.HIGH ); state.isClosed true; return this; }三个方法均返回this支持链式调用open()/toggle()的写法与之对称。此外实例还暴露三个只读属性valueisClosed的数值化1 或 0、typeNO或NC、isClosed布尔值。模拟引脚的自动映射Relay 还支持使用模拟引脚例如new five.Relay({ pin: A2 })。在 Firmata 类平台下源码会自动把A2转换为对应的模拟引脚索引并切换为输出模式if (Pins.isFirmata(this) (typeof pinValue string pinValue[0] A)) { this.pin this.io.analogPins[pinValue.slice(1)]; this.io.pinMode(this.pin, this.io.MODES.OUTPUT); }相关用法可参考 eg/relay-on-analog-pin.js 与 docs/relay-on-analog-pin.md。测试验证源码行为有据可依Relay 的上述行为并非孤证仓库在 test/relay.js 中用 Mock Firmata 提供了完整测试用例可直接印证代码逻辑close用例断言digitalWrite(10, 1)常开继电器闭合时引脚写HIGHopen用例断言digitalWrite(10, 0)断开时写LOWtoggle用例验证在open状态下调用toggle()后写HIGH再调用则写LOW即状态正确翻转NC用例验证常闭型反转逻辑close()时写 0、open()时写 1模拟引脚用例A2验证pinMode被调用一次且数字写操作落到正确的模拟引脚索引16上。这些断言与 lib/relay.js 的实现一一对应说明示例代码中继电器的通断行为是框架层面稳定保证的而非依赖具体硬件平台。扩展多继电器与定时翻转当需要同时控制多个继电器时可以使用five.Relays集合。参考 eg/relay-collection.js 与 docs/relay-collection.mdvar relays new five.Relays([3, 4, 5]); board.loop(2000, function() { // 翻转所有继电器的状态 relays.toggle(); });Relay.Collection通过Collection.installMethodForwarding将open/close/toggle等方法转发到集合中的每个实例见 lib/relay.js因此一行relays.toggle()即可同步控制多路继电器适合扩展到电灯、水泵等多路开关场景。注意事项驱动继电器模块通常需要外接电源切勿直接用开发板 3.3V/5V 引脚驱动大功率负载接线时请确认 Grove Relay 模块插入的插口号与new five.Relay(pin)的引脚参数一致本示例为 D6若继电器为常闭型NC请在构造时显式传入{ pin: 6, type: NC }否则通断逻辑会与预期相反文中代码使用 CommonJS 的require写法与仓库 eg 目录下示例保持一致运行前请确认已完成npm install johnny-five edison-io。结合本指南你可以在 Intel Edison 上快速搭建基于 Grove 生态的继电器控制原型并借助 REPL 实时调试或按需扩展为多路继电器定时控制方案。【免费下载链接】johnny-fiveJavaScript Robotics and IoT programming framework, developed at Bocoup.项目地址: https://gitcode.com/gh_mirrors/jo/johnny-five创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Python卷积神经网络CNN图像分类源码实战:从原理到迁移学习 简介:这份资源是一套基于Python卷积神经网络CNN的图像分类系统完整项目,面向计算机相关专业正在做大作业、毕业设计的学生以及需要项目实战练习的学习者,难度适中,适合作为入门到进阶的深度学习实践参考。压缩包共21个文件&#x… · 2026/9/23 2:53:06
Spring Boot Admin Server CSRF 防护完整配置指南:保护 Web UI 并放行客户端注册 Spring Boot Admin Server CSRF 防护完整配置指南:保护 Web UI 并放行客户端注册 【免费下载链接】spring-boot-admin Admin UI for administration of spring boot applications 项目地址: https://gitcode.com/gh_mirrors/sp/spring-boot-admin
Spring Boo… · 2026/9/23 2:53:00
Stencil 组件测试实战指南:使用 WebdriverIO 编写真实浏览器组件测试 开发工具前端前端构建 【免费下载链接】stencil A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, ( more) and traditio… · 2026/9/23 2:53:00
林业虫害图片智能识别:Python图像分类项目实战指南 简介:基于Python的林业虫害图片智能识别项目是一套完整的高分毕业设计资源,面向计算机相关专业正在准备毕设的学生,以及需要项目实战练习的学习者。项目经过导师指导与严格调试,能够直接运行,也可作为课程设计或期末大… · 2026/9/23 3:32:43
玻尔兹曼探索:从统计物理到强化学习的温度机制 1. 从统计物理到决策算法:两个“玻尔兹曼”的相遇第一次在强化学习论文里看到“玻尔兹曼探索”这个词时,我脑子里第一时间跳出来的是大学物理课上那个写满偏微分方程的板书——玻尔兹曼分布,统计力学的基石之一。当时我还有点恍惚:… · 2026/9/23 3:32:43
面试总挂?P卡性能优化速查手册帮你拿回主动权 面试总挂?P卡性能优化速查手册帮你拿回主动权 面试被问原理答不上来,手心出汗,大脑一片空白?这种尴尬场景,很多应届生都经历过。 别慌,这篇 P 卡性能优化速查手册,就是为你准备的救命稻草。… · 2026/9/23 3:32:43
PaddleDetection 新增模型算法实战:从 Backbone 到配置文件的完整建模指南 人工智能深度学习计算机视觉 【免费下载链接】PaddleDetection Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection. 项目地址: htt… · 2026/9/23 3:32:37
ROT13加密原理图解:面试必问的字符映射底层逻辑 ROT13加密原理图解:面试必问的字符映射底层逻辑 刚入行写代码,是不是经常陷入一个死循环?看了一堆教程,觉得自己懂了,结果一上手写项目就抓瞎。尤其是碰到像 ROT13 这种看似简单实则暗藏玄机的加密算法,面试官喜欢拿它考你对 字符集 和… · 2026/9/23 3:32:30
gbrain concept-synthesis 技能实战:将数千条概念 stub 沉淀为分层知识地图 人工智能RAGAgent 记忆MCP 服务知识管理 【免费下载链接】gbrain Garrys Opinionated OpenClaw/Hermes Agent Brain 项目地址: https://gitcode.com/gh_mirrors/gb/gbrain 点击查看 免费下载 本指南基于 gbrain 仓库 plugin/skills/concept-synthesis/SKILL.md 展开… · 2026/9/23 3:32:24
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29