Johnny-Five
johnny-five
机器人
⭐⭐⭐☆☆ (3/5)
🧩 软硬件结合
已发布
项目简介
Bocoup开发的JavaScript机器人及IoT编程框架。
Johnny-Five是一个基于JavaScript的机器人编程框架,专为Node.js环境设计。它提供了一套统一且简洁的API,用于控制各种硬件设备,如传感器、电机、显示器等,支持多种微控制器平台(包括Arduino、Raspberry Pi、BeagleBone等)。Johnny-Five的核心理念是让开发者能够使用JavaScript这一流行语言来编写机器人程序,从而降低机器人编程的门槛,并利用Node.js的非阻塞I/O和丰富生态系统。 Johnny-Five的主要功能包括对多种硬件组件的抽象控制,如数字和模拟输入/输出、PWM、I2C、SPI等通信协议,以及伺服电机、直流电机、步进电机、LCD屏幕、温度传感器、距离传感器等常见设备的驱动。它还提供了事件驱动模型,允许开发者监听传感器数据变化并做出响应。此外,Johnny-Five支持多板协作,可以同时控制多个微控制器,实现复杂的机器人系统。 Johnny-Five适合对机器人技术感兴趣的JavaScript开发者、Web开发者以及创客。它特别适合那些希望利用JavaScript生态系统的丰富库和工具来构建机器人项目的用户。
标签
项目特点
**跨平台支持**:支持 Arduino、Raspberry Pi、Beagle Bone、Intel Galileo 等数十种主流开发板。
**基于 Firmata 协议**:通过 Firmata 固件与微控制器通信,实现硬件抽象。
**丰富的 API**:提供 LED、伺服电机、传感器、LCD 显示屏、按钮等常见硬件的控制接口。
**高度可组合**:可与 Express.js、Socket.io 等 Web 框架,以及蓝牙手柄、无人机等其他硬件项目无缝集成。
**大量示例**:包含 362 个带有代码和电路图的示例程序,方便快速上手。
**活跃的社区**:由 Nodebots 社区维护,提供论坛、Gitter 聊天室等支持渠道。
技术规格
| 编程语言 | |
|---|---|
| 通信协议 | |
| 支持的硬件 | |
| IO 插件 | |
| 最低 Node.js 版本 | |
| 安装方式 |
项目资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| Arduino Uno 或兼容板 | 1 | — | 推荐 Sparkfun Inventor's Kit |
| LED | 1 | — | 用于 Hello World 示例 |
| 电阻 (220Ω) | 1 | — | 限流电阻 |
| USB 数据线 | 1 | — | 连接 Arduino 到电脑 |
| 杜邦线 | 若干 | — | 面包板连接 |
| 面包板 | 1 | — | 用于搭建电路 |
所需工具
| 工具 | 用途 | 是否必需 |
|---|---|---|
| 计算机 | 运行 Node.js 和编写代码 | ✅ 是 |
| Arduino IDE | 上传 Firmata 固件到开发板 | ✅ 是 |
| 文本编辑器/IDE | 编写 JavaScript 代码 | ✅ 是 |
| USB 数据线 | 连接开发板到计算机 | ✅ 是 |
| 面包板 | 搭建电路原型 | ▢ 推荐 |
| 万用表 | 调试电路 | ▢ 推荐 |
能力画像
记忆与知识检索
逻辑推演
表达与交流
感知与观察
数理与计算
狂热与坚持
创造与创新
项目图库
所需技能
🔧 **动手能力**:需要能够搭建简单的电路(面包板、连接 LED 和电阻),上传固件到 Arduino 开发板。
💻 **编程能力**:需要掌握 JavaScript 基础(Node.js 事件驱动编程),了解异步回调或 Promise。
⚡ **电子电路**:需要了解基本电子知识(LED、电阻、面包板使用),但入门门槛较低,适合初学者。
适用场景
**教育学习**:适合初学者学习编程、电子和机器人技术,通过 JavaScript 控制硬件。
**快速原型开发**:利用丰富的 API 和示例,快速搭建物联网或机器人原型。
**创客项目**:制作交互式装置、智能家居设备、机器人小车等。
**教学演示**:在课堂或工作坊中演示硬件编程概念。