待补充
Paciente8159/uCNC
ESP32
4/5
🧩 软硬件结合
已发布
项目简介
µCNC - Universal CNC firmware for microcontrollers
µCNC 是一款专为微控制器设计的通用 CNC 固件,其灵感来源于 Grbl 和 LinuxCNC,旨在融合两者的优点:既具备 Grbl 的紧凑与高效,又拥有 LinuxCNC 的灵活与模块化。该项目主要解决传统 CNC 固件在硬件适配和功能扩展上的局限性,让开发者能够轻松将固件移植到不同的微控制器架构,并自由定制机器运动学模型和外围工具。
标签
项目特点
**双核灵感**:融合 Grbl 的高效实时控制与 LinuxCNC 的模块化架构,兼顾性能与灵活性。
**硬件无关性**:通过抽象层设计,可轻松移植到 AVR、ARM、RISC-V 等多种微控制器平台。
**自定义运动学**:支持笛卡尔、三角洲、SCARA 等多种运动学模型,用户可编写自己的运动学插件。
**实时多任务**:内置实时任务调度器,支持同时处理 G 代码解析、运动规划、IO 监控等任务。
**外设热插拔**:模块化外设接口,可动态添加或移除主轴、冷却液、探针、限位开关等组件。
**开源社区驱动**:基于 MIT 许可证,代码完全开放,社区贡献活跃,文档和示例丰富。
技术规格
| 支持微控制器 | |
|---|---|
| 最大轴数 | |
| 最大步进频率 | |
| 通信接口 | |
| G 代码支持 | |
| 运动学模型 | |
| 固件大小 | |
| 实时性能 | |
| 输入/输出 | |
| 主轴控制 |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| ATmega328P (Arduino Uno) | 1 | — | 基础配置,也可用其他 MCU |
| A4988 或 DRV8825 | 3-6 | — | 每轴一个,根据轴数配置 |
| 12V/24V 直流电源 | 1 | — | 根据电机和驱动需求选择 |
| USB 转串口模块 (CH340/FT232) | 1 | — | 用于与上位机通信 |
| 机械限位开关 (微动开关) | 6 | — | 每轴两端各一个 |
| MOSFET 模块 (IRF520) | 1 | — | 用于控制主轴启停和 PWM 调速 |
| 继电器模块 | 1 | — | 可选,用于控制冷却液泵 |
| 探针输入接口 | 1 | — | 用于自动对刀或测量 |
| 杜邦线/排针 | 若干 | — | 用于连接各模块 |
| 3D 打印外壳或 PCB 支架 | 1 | — | 可选,用于保护电路 |
能力画像
**记忆与知识检索**:3/5 — 需要查阅文档和社区讨论来配置特定 MCU 和运动学模型,但核心概念有清晰文档。
**动手与操作**:4/5 — 涉及焊接、接线、机械组装和调试,需要一定的动手能力和耐心。
**编程与算法**:4/5 — 需要修改 C 代码来适配硬件和自定义运动学,但框架提供了清晰的 API 和示例。
**设计与建模**:2/5 — 主要关注固件配置,硬件设计(如 PCB 或外壳)不是必须的,但有助于提升项目完整性。
**实验与调试**:5/5 — 需要反复调试步进电机时序、限位开关逻辑和 G 代码执行,使用示波器或逻辑分析仪会大幅提升效率。
**协作与分享**:3/5 — 可以通过 GitHub Issues 和 Discussions 与社区交流,但项目规模较小,协作需求不高。
**学习与研究**:4/5 — 深入理解实时控制、运动学算法和嵌入式系统,适合学习 CNC 和微控制器开发。
**系统集成**:4/5 — 需要将固件、硬件、上位机软件和机械结构整合为一个完整的 CNC 系统,涉及多个层面的集成。
项目图库
所需技能
嵌入式 C 语言编程基础
微控制器(如 Arduino)的使用经验
基本电路知识和焊接技能
步进电机和驱动器的原理与接线
G 代码基础(了解常见指令)
使用 Git 进行版本控制(可选但推荐)
机械组装和调试能力
使用示波器或逻辑分析仪进行调试(进阶)
适用场景
自制小型 CNC 雕刻机或激光切割机
教育用途:学习 CNC 控制原理和嵌入式实时系统
工业自动化:定制特殊运动学模型(如三角洲、SCARA)
改装老旧 CNC 设备:替换原有控制器
研究项目:探索多轴联动、实时插补算法
创客空间:作为开源 CNC 控制器的教学和实验平台