新闻详情

新闻详情

首页 / 资讯中心 / 详情

Intel Edison + Grove 继电器控制实战:Johnny-Five 与 Edison-IO 集成指南

发布时间:2026/10/29 14:48:01来源:尧图网络
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/28 16:06:12

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/28 13:44:36

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/29 13:36:24

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/28 16:06:11

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/29 13:36:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/28 16:06:10

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉