新闻详情

新闻详情

首页 / 资讯中心 / 详情

Johnny-Five 实战:在 Intel Edison 上驱动 Grove RGB LCD 实现旋钮调色

发布时间:2026/11/1 14:23:42来源:尧图网络
Johnny-Five 实战:在 Intel Edison 上驱动 Grove RGB LCD 实现旋钮调色
IoT机器人嵌入式【免费下载链接】johnny-fiveJavaScript Robotics and IoT programming framework, developed at Bocoup.项目地址https://gitcode.com/gh_mirrors/jo/johnny-five点击查看免费下载导读本文以 Johnny-Five 官方示例 docs/grove-lcd-rgb-edison.md 为主线完整讲解如何在 Intel Edison Arduino Breakout 开发板上通过 Grove Base Shield 连接 RGB 背光 LCDJHD1313M1与旋转电位器Rotary Angle Sensor实现转动旋钮实时改变 LCD 背光颜色的完整方案。读完本文你将掌握 Johnny-Five 的Sensor与LCD组件在 Edison 平台上的接线方法、I2C 控制器选型、scale()数值映射以及线性插值驱动bgColor()的实战写法。硬件与平台概览该示例基于 Johnny-Five 的通用抽象层设计Grove RGB LCD 组件可以在任何 Arduino 引脚兼容的硬件平台上工作本文使用的平台是 Intel Edison 的 Arduino Breakout 扩展板。程序通过edison-io这一 IO 插件将 Johnny-Five 与 Edison 的硬件能力桥接起来。需要准备的四件硬件硬件说明Intel Edison Arduino BreakoutEdison 的 Arduino 兼容扩展板提供标准引脚布局Grove Base Shield v2插接在 Breakout 上提供 Grove 标准 4-pin 接口含 I2C 与模拟口Grove - LCD RGB w/ Backlight即 JHD1313M1 控制器驱动的 RGB 背光字符 LCD16×2Grove - Rotary Angle Sensor旋转角度传感器电位器输出 0~5V 模拟电压接线要点来自 eg/grove-lcd-rgb-edison.js 的注释Rotary Angle Sensor 模块→ 插入 Grove Shield 的A0模拟口RGB LCD 模块→ 插入 Grove Shield 的任意I2C 接口LCD 通过 I2C 总线通信无需占用数字引脚。运行示例程序在项目根目录已npm install安装依赖的前提下执行node eg/grove-lcd-rgb-edison.js对应的官方文档命令为node eg/grove-lcd-rgb-edison.js见 docs/grove-lcd-rgb-edison.md两者完全等价。示例源码位于 eg/grove-lcd-rgb-edison.js程序启动后会持续监听 A0 口的旋钮变化并实时刷新 LCD 背光颜色。注意示例依赖外部模块edison-io需要预先通过npm install edison-io安装同时你的 Edison 需要刷入支持 Firmata/I2C 的标准固件。程序结构逐段解析1. 初始化 Board 与 Edison IO 插件var five require(johnny-five); var Edison require(edison-io); var board new five.Board({ io: new Edison() });five.Board接收一个 IO 插件实例new Edison()Johnny-Five 通过该插件向 Edison 发送标准指令。这一模式同样出现在 eg/grove-lcd-rgb-temperature-display-edison.js 等 Edison 平台示例中是 Johnny-Five 平台无关架构的典型体现——Board组件在 lib/board.js 中统一封装了io适配层上层组件Sensor、LCD只面向io接口编程。2. 创建旋转电位器传感器var rotary new five.Sensor(A0);Sensor构造函数在 lib/sensor.js 中实现默认按 10-bit ADC 分辨率0x3FF即 0~1023读取模拟输入并将引脚设置为ANALOG输入模式this.io.pinMode(this.pin, this.io.MODES.ANALOG)。也就是说旋钮在 A0 口上原始读数为 0~1023 之间的整数。3. 创建 JHD1313M1 RGB LCDvar lcd new five.LCD({ controller: JHD1313M1 });LCD组件lib/lcd.js通过controller选项选择驱动协议。JHD1313M1控制器在源码中注册为两个 I2C 地址// LCD: 0x3E // RGB: 0x62 this.address { lcd: options.address || 0x3E, rgb: 0x62 };也就是说一个模块内部实际上是两个 I2C 从设备0x3E负责字符显示HD44780 兼容指令集0x62负责 RGB 背光控制。初始化时源码会执行标准 HD44780 初始化序列sleep(50)等待上电稳定、连续发送功能设置命令、开启显示、清屏、归位随后开启背光并将默认背景色设为黑色this.bgOn(); this.bgColor(options.color || black);默认行列为lines 2、cols 1616×2 字符屏可通过rows、cols等选项覆盖。4. 旋钮值映射与背光调色核心逻辑rotary.scale(0, 255).on(change, function() { var r linear(0xFF, 0x4B, this.value, 0xFF); var g linear(0x00, 0x00, this.value, 0xFF); var b linear(0x00, 0x82, this.value, 0xFF); lcd.bgColor(r, g, b); });这段代码是本示例的精华分三步理解第一步scale(0, 255)线性映射。Sensor.prototype.scale(low, high)在 lib/sensor.js 中实现将 ADC 原始读数0~1023等比例映射到 0~2558-bit区间并存入状态同时把this.isScaled置为true。this.value返回的即映射后的值。第二步change事件监听。源码中Sensor在读回调里对模拟读数做中位数滤波state.median median(samples)以抑制噪声然后发射data事件只有当滤波后的值与上一次相差超过threshold默认1时才发射change事件lib/sensor.js。因此这里用change监听旋钮的实质性转动避免背光被抖动频繁刷新。第三步线性插值计算 RGB。辅助函数linear实现标准线性插值function linear(start, end, step, steps) { return (end - start) * step / steps start; }旋钮在 0~255 范围内转动时RGB 三分量分别从「红色0xFF,0x00,0x00」向「紫色0x4B,0x00,0x82」平滑过渡中间经过黄、绿、青、蓝等中间色实现整段可见光谱的渐变。5.bgColor()的底层实现LCD.prototype.bgColor(red, green, blue)在 lib/lcd.js 中实现接收三种调用形式三个数值、色名如black或 16 进制色值统一经RGB.ToRGB()归一为{ red, green, blue }分量然后通过 I2C 向背光控制器0x62依次写入寄存器this.io.i2cWrite(address, [0x00, 0]); // 模式寄存器选择 RGB 模式 this.io.i2cWrite(address, [0x01, 0]); // 使能寄存器 this.io.i2cWrite(address, [0x04, rgb.red]); // 红色分量 this.io.i2cWrite(address, [0x03, rgb.green]); // 绿色分量 this.io.i2cWrite(address, [0x02, rgb.blue]); // 蓝色分量每次调用返回this支持链式调用例如示例 eg/grove-lcd-rgb-temperature-display-edison.js 中的lcd.bgColor(r, g, b).cursor(0, 0).print(f)。同时 LCD 还提供bgOn()与bgOff()控制背光开关分别向0x62写入0xAA与0x00。延伸字符显示与背光联动的另一种玩法同为 Edison 平台的 eg/grove-lcd-rgb-temperature-display-edison.js 展示了同一块 LCD 的进阶用法使用Thermometercontroller: GROVE接 A0读取温度根据温度区间让背光在「冷→蓝→紫」与「热→红→黄」之间变化同时调用lcd.cursor(0, 0).print(f)在首行打印华氏温度值。其颜色映射同样是linear()线性插值。如果你的项目需要在显示文本的同时用背光做状态指示可直接参考该示例。排错与注意事项I2C 接线必须接 I2C 口JHD1313M1 走 I2C 总线内部地址0x3E0x62接到 Grove Shield 的数字/模拟口无法工作模拟口选择旋钮接 A0Sensor(A0)中的引脚名要与实际接口一致依赖完整性确保johnny-five与edison-io均已安装且 Edison 固件支持标准 I2C 通信背光默认状态初始化时若未传color选项背光默认为黑色bgColor(black)属正常现象首次转动旋钮后颜色即开始变化事件频率change事件带阈值去抖若觉得响应过灵敏或过迟钝可调整Sensor的threshold或freq选项。总结本文围绕 docs/grove-lcd-rgb-edison.md 的官方示例打通了「Intel Edison Grove Shield RGB LCD 旋钮」的完整链路从edison-io的 Board 初始化到Sensor的scale()映射与change事件、LCD的JHD1313M1双 I2C 地址结构再到bgColor()的寄存器级写入。掌握了这套模式你就可以在任意 Arduino 引脚兼容平台上自由组合 Grove 传感器与 RGB LCD快速构建带可视化反馈的物联网交互界面。赞分享IoT机器人嵌入式【免费下载链接】johnny-fiveJavaScript Robotics and IoT programming framework, developed at Bocoup.项目地址https://gitcode.com/gh_mirrors/jo/johnny-five点击查看免费下载相关推荐基于 Johnny-Five 在 Intel Edison 上驱动 Grove RGB LCD全量 CSS 颜色名背景色预览实战基于 Johnny Five 在 Intel Edison 上驱动 Grove RGB LCD全量 CSS 颜色名背景色预览实战 本篇技术指南讲解如何用 JoIoT机器人嵌入式Johnny-Five 在 Intel Edison 上驱动 Grove 气压计BMP180实战指南Johnny Five 在 Intel Edison 上驱动 Grove 气压计BMP180实战指南 本文基于 Johnny Five 仓库中的 groveIoT机器人嵌入式Johnny-Five × Intel Edison 旋钮电位器实战用 Grove Rotary Angle Sensor 控制 LED 亮度Johnny Five × Intel Edison 旋钮电位器实战用 Grove Rotary Angle Sensor 控制 LED 亮度 本篇指南基于IoT机器人嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/1 1:42:41

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

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

阅读更多 →
无法下载Windows系统iso文件 2026/11/1 2:34:07

无法下载Windows系统iso文件

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

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/1 2:01:57

【清华代码熊】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/11/1 3:13:10

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/11/1 2:11:52

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/11/1 3:23:38

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

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

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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