待补充 fivdi/pigpio

3/5 🧩 软硬件结合 已发布
fivdi 348 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/5
待补充

项目简介

Fast GPIO, PWM, servo control, state change notification and interrupt handling with Node.js on the Raspberry Pi


pigpio 是一个专为树莓派设计的 Node.js 库,它封装了底层的 pigpio C 库,让开发者能够用 JavaScript 轻松控制树莓派的 GPIO 引脚。这个项目解决了在 Node.js 环境下对树莓派硬件进行高速、精准控制的需求,特别适合需要实时响应的物联网和机器人项目。

标签

项目特点

**高速 GPIO 控制**:基于 C 库的底层封装,提供微秒级的精确时序控制,远超普通 Node.js GPIO 库的性能。
**丰富的硬件接口**:支持 GPIO 输入/输出、PWM(脉宽调制)、中断检测、波形生成、I2C、SPI 和串口通信。
**事件驱动架构**:利用 Node.js 的事件循环,实现非阻塞的硬件响应,适合实时监控传感器状态。
**跨版本兼容**:支持树莓派全系列(包括 Zero、3B+、4B 等),并兼容 32/64 位系统。
**低延迟波形**:内置波形生成引擎,可创建复杂的时序信号,用于步进电机、LED 灯带等场景。
**活跃社区维护**:GitHub 星数 348,持续更新,文档清晰,示例丰富。

技术规格

编程语言 JavaScript (Node.js)
底层依赖 pigpio C 库 (v1.78+)
支持硬件 树莓派全系列 (GPIO 0-27)
PWM 频率范围 1 Hz - 125 MHz
PWM 分辨率 1 微秒 (µs)
波形精度 1 微秒 (µs)
中断响应时间 < 10 微秒
最大 GPIO 数 28 (BCM 编号)
通信协议 GPIO, PWM, I2C, SPI, UART
操作系统 Raspberry Pi OS (32/64-bit)
Node.js 版本 v10.0.0 及以上

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
树莓派 (任何型号) 1 推荐 3B+ 或 4B
杜邦线 若干 用于连接外设
面包板 1 可选,用于原型搭建
LED 灯 1+ 测试输出用
电阻 (220Ω-1kΩ) 若干 限流保护
按钮开关 1+ 测试输入用
传感器 (如 DHT11) 1 可选,用于 I2C/GPIO 测试
Node.js (v10+) 1 运行环境
pigpio C 库 1 系统依赖 (`sudo apt install pigpio`)
pigpio npm 包 1 `npm install pigpio`

能力画像

**记忆与知识检索**:3/5 — 需要查阅官方文档和 API 参考,但核心概念(GPIO、PWM)较简单。
**动手与操作**:4/5 — 需要连接杜邦线、面包板等硬件,涉及物理接线和调试。
**编程与算法**:3/5 — 主要使用 JavaScript 编写控制逻辑,涉及事件监听和异步编程,但算法复杂度低。
**设计与建模**:2/5 — 无需复杂建模,但需要设计电路连接图和时序逻辑。
**实验与调试**:4/5 — 硬件调试依赖万用表或示波器,软件调试需处理异步错误和时序问题。
**协作与分享**:2/5 — 单人或小团队项目,可通过 GitHub 提交 issue 或 PR 协作。
**学习与研究**:4/5 — 涉及嵌入式系统、Node.js 底层 I/O 和实时控制理论,学习曲线适中。
**系统集成**:3/5 — 可集成到物联网平台(如 MQTT、Home Assistant)或机器人框架中。

所需技能

基础 JavaScript/Node.js 编程 树莓派基础操作(SSH、文件传输、系统安装) 电子电路基础(GPIO、电阻、LED、面包板) 异步编程概念(回调、Promise、事件) 基本调试能力(日志、万用表、示波器) 了解 I2C/SPI/UART 协议(可选但加分)

适用场景

**智能家居**:控制灯光、风扇、门锁等设备
**机器人控制**:驱动电机、读取编码器、生成步进信号
**传感器数据采集**:读取温度、湿度、距离、运动传感器
**LED 灯光秀**:精确控制 RGB LED 灯带或矩阵
**工业自动化原型**:模拟 PLC 控制逻辑
**教育实验**:学习嵌入式系统和硬件编程
**物联网网关**:作为边缘节点处理传感器数据并上报云端
**音频/视频触发**:基于外部事件触发摄像头或音频播放