PyCNC Nikolay-Kha/PyCNC

机器人 4/5 🧩 软硬件结合 已发布
Nikolay-Kha 792 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/5
PyCNC

项目简介

Python CNC machine controller for Raspberry Pi and other ARM Linux boards


PyCNC 是一个高性能的开源 G 代码解释器和 CNC/3D 打印机控制器,它的独特之处在于完全运行在 Linux 驱动的 ARM 开发板上,比如 Raspberry Pi、Odroid 或 Beaglebone。这意味着你不再需要为实时控制单独配备一个微控制器,所有 G 代码的解析和执行都可以在同一块主板上完成,大大简化了硬件架构。

标签

项目特点

**纯 Python 实现**:使用 Python 语言,代码简洁,易于理解和修改。
**DMA 实时控制**:利用 DMA 模块在 Linux 下实现高精度的步进电机脉冲控制,不受 CPU 负载和系统时间抖动影响。
**多平台支持**:支持 Raspberry Pi 1-3、Odroid、Beaglebone 等多种 ARM Linux 主板。
**丰富的 G 代码支持**:支持 G0、G1、G2、G3、G28、G90、G91 等常用 G 代码,以及 M104、M109、M140、M190 等 M 代码。
**硬件看门狗**:使用 DMA 通道作为硬件看门狗,在系统挂起时自动禁用 GPIO 引脚,提高安全性。
**可扩展性**:易于添加新的 G 代码命令和适配新的硬件平台。

技术规格

支持轴数 4 (X, Y, Z, E)
支持主板 Raspberry Pi 1-3, Odroid, Beaglebone 等 ARM Linux 板
步进电机驱动 A4988, DRV8825 等 (DIR + STEP 引脚)
编程语言 Python
运行时依赖 无 (纯 Python)
可选加速 PyPy (JIT 编译器)
支持 G 代码 G0, G1, G2, G3, G4, G17, G18, G19, G20, G21, G28, G53, G90, G91, G92, M2, M3, M5, M30, M84, M104, M105, M106, M107, M109, M114, M140, M190
插补类型 圆弧插补 (XY, ZX, YZ 平面)
其他功能 主轴转速控制、挤出机和加热床加热控制、硬件看门狗

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
Raspberry Pi 2/3 1 或其他支持的 ARM Linux 板
RAMPS v1.4 1 可选,用于简化接线
A4988 / DRV8825 4 用于 X, Y, Z, E 轴
42步进电机 4 根据机器规格选择
加热床 1 用于 3D 打印
挤出机加热棒 1 用于 3D 打印
热敏电阻 (100k) 2 用于加热床和挤出机
ADS1115 1 用于读取模拟温度传感器
12V/24V 电源 1 根据驱动器和加热元件选择
限位开关 6 X, Y, Z 轴各两个 (最小/最大)
散热风扇 1 用于冷却挤出机或主板

能力画像

⚪ 记忆与知识检索: 1/5
🔵 逻辑推演: 3/5
⚪ 表达与交流: 1/5
⚪ 感知与观察: 2/5
⚪ 数理与计算: 3/5
🔵 动手与操作: 4/5
⚪ 狂热与坚持: 3/5
⚪ 创造与创新: 3/5

视频

所需技能

🔧 **动手能力**:需要具备一定的电子焊接和机械组装能力,能够连接 Raspberry Pi、步进电机驱动、限位开关、加热元件等硬件。 💻 **编程能力**:需要熟悉 Python 编程语言,能够阅读和修改项目代码,理解 G 代码指令。 ⚡ **电子电路**:需要了解基本的电子电路知识,如 GPIO 引脚、PWM、I2C 通信等,能够根据电路图进行接线。

适用场景

**DIY 3D 打印机**:作为 3D 打印机的控制器,支持加热床、挤出机等标准功能。
**CNC 雕刻机**:作为 CNC 雕刻机的控制器,支持 G 代码控制主轴和步进电机。
**教育学习**:学习 Linux 下的实时控制、DMA 技术、步进电机控制等知识。
**自动化项目**:作为通用运动控制器,用于需要精确位置控制的项目。