Intel Edison + Grove 继电器控制实战:Johnny-Five 与 Edison-IO 集成指南
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),仅供参考

相关新闻

Python卷积神经网络CNN图像分类源码实战:从原理到迁移学习

Python卷积神经网络CNN图像分类源码实战:从原理到迁移学习

简介:这份资源是一套基于Python卷积神经网络CNN的图像分类系统完整项目,面向计算机相关专业正在做大作业、毕业设计的学生以及需要项目实战练习的学习者,难度适中,适合作为入门到进阶的深度学习实践参考。压缩包共21个文件&#x…

2026/9/24 4:54:29 阅读更多 →
psps从入门到实战

psps从入门到实战

PS完整示例:3个步骤搞定代码报错,小白也能跑通 复制来的代码跑不通,报错信息像天书一样,你是不是也对着屏幕发呆,不知道从哪下手?别急,这种“复制即崩”的坑,90%的新手都踩过。今天这篇PS(Python…

2026/9/23 2:53:21 阅读更多 →
5个主流网上支付工具源码解析与选型避坑指南

5个主流网上支付工具源码解析与选型避坑指南

5个主流网上支付工具源码解析与选型避坑指南 是不是刚学会语法,对着文档看了三遍,一到真金白银的支付场景就发懵?很多转行或跨领域的开发者都卡在这一步:API…

2026/9/23 2:53:21 阅读更多 →

最新新闻

Cisco ONS15454 SDH配置实战:端口激活与VC4电路创建指南

Cisco ONS15454 SDH配置实战:端口激活与VC4电路创建指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:54:32 阅读更多 →
告别Typeless困境:Python渐进式类型提示实战指南

告别Typeless困境:Python渐进式类型提示实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:54:32 阅读更多 →
実行プランをハーネスの第一級市民にする:repo-template の PLANS.md 運用ガイド

実行プランをハーネスの第一級市民にする:repo-template の PLANS.md 運用ガイド

【免费下载链接】learn-harness-engineering Harness engineering beginner tutorial, from 0 to 1 项目地址: https://gitcode.com/gh_mirrors/le/learn-harness-engineering 点击查看 免费下载 本ガイドは、OpenAI アドバンストパック(docs/ja/resour…

2026/9/24 4:54:32 阅读更多 →
4G/5G分布式基站光纤前传链路详解:BBU与RRU之间的CPRI与CWDM方案

4G/5G分布式基站光纤前传链路详解:BBU与RRU之间的CPRI与CWDM方案

摘要:本文详解4G/5G分布式基站中BBU与RRU之间的光纤前传链路,涵盖CPRI协议承载的基带IQ信号传输、常用光模块选型、CWDM波分方案的光纤资源优化及组网维护要点。4G/5G分布式基站采用 BBU(基带处理单元) RRU(射频拉远单…

2026/9/24 4:54:32 阅读更多 →
别跟风死磕算法!普通程序员的「AI+」逆向入局、学习与变现全攻略!

别跟风死磕算法!普通程序员的「AI+」逆向入局、学习与变现全攻略!

从事互联网行业多年,从传统后端开发到AI工程落地,踩过无数程序员转型AI的坑。先抛出一个颠覆90%普通人认知的逆向结论:互联网+不是落幕,而是饱和内卷;AI+不是颠覆革命,而是传统技术的效率补全。普通程序员学AI,最大的误区是从头学算法、啃数学、追大模型,真正的捷径是反…

2026/9/24 4:54:32 阅读更多 →
在 IronClaw 中向 Google Slides 形状插入文本:google-slides 扩展 insert_text 能力深度解析

在 IronClaw 中向 Google Slides 形状插入文本:google-slides 扩展 insert_text 能力深度解析

人工智能AI 应用交互助手AI Agent 【免费下载链接】ironclaw IronClaw is an Agent OS focused on privacy, security and extensibility 项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw 点击查看 免费下载 本文以 IronClaw 仓库中 google-slides 扩展的能…

2026/9/24 4:53:32 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →