待补充 Paciente8159/uCNC

ESP32 4/5 🧩 软硬件结合 已发布
Paciente8159 368 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/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 控制器的教学和实验平台