PyCNC
Nikolay-Kha/PyCNC
机器人
4/5
🧩 软硬件结合
已发布
项目简介
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 技术、步进电机控制等知识。
**自动化项目**:作为通用运动控制器,用于需要精确位置控制的项目。