FirePick Delta 项目日志:基于 OpenPnP 的开源微型工厂构建
软件拓扑与运行理论
OpenPnP 作为高层控制引擎,编排拾取放置元件等任务。其架构集成众多库和子系统,通过专用模块将数据传递给电机控制器。由 Jason von Nieda 在 FirePick Delta 项目前创建,OpenPnP 仍处于 alpha 阶段,但在多台生产机器上已证明可靠。我们现已扩展其文档,为社区带来完全透明度。
JAR 图标引用的 Java 模块可替换或扩展,以定制机器配置。除配置模型外,每个模块均可在 machine.xml 中指定。即使无 Java 经验,声明式方法也允许指向 .java 文件,规定类实例化和行为,保持代码库模块化和可维护。OpenPnP 自带参考文件,支持使用 TinyG 运动控制、单头、单喷嘴、单执行器、拖带供料和向下看摄像头的标准拾取放置设置。我们已改编并扩展这些文件,以支持 FirePick Delta 所需的高级功能。
运动驱动: 我们的定制运动控制器板受 RepRap RAMPS 1.4 和 Melzi 启发,运行分叉的 Marlin 固件。OpenPnP Marlin 驱动将笛卡尔指令转换为控制板的 G 代码。虽功能正常,但将三角洲运动学和 Z 探针修正卸载到树莓派可提供更高精度和速度。FireFUSE 填补空白,将笛卡尔坐标转换为三角洲空间,应用校准偏移,并将修正后的 G 代码传回 Marlin。OpenPnP 与 FireFUSE 对话仅需兼容驱动,目前正在开发中。
摄像头驱动与视觉框架: OpenPnP 原生摄像头支持落后于 500 万像素树莓派摄像头。Karl Lew 以 FireSight 解决此问题,这是一个建立在 OpenCV 之上的开源视觉库。它暴露高层管线 API,无需深厚 C++ 知识即可简化复杂图像处理。FirePiCam 是定制的 raspistill 封装,直接捕获图像到 FUSE 文件系统,保护 SD 卡寿命。firerest-client Java 库再将这些图像反馈给 OpenPnP 用于实时视觉。
GUI: 捆绑的 OpenPnP GUI 功能有限且难融入现代工作流。我们正用 Node.js、Express、AngularJS 和 Bootstrap 开发基于 Web 的界面,可在任何支持 HTML5 的浏览器运行。node-java 桥允许从 JavaScript 无缝调用 OpenPnP 核心 Java API,绕过旧 GUI 同时保留完整机器控制。
硬件拓扑与运行理论
核心控制器选用树莓派 Model B+,因其高性价比和充足 GPIO 排针。Broadcom 2835 性能虽 modest,但在预算内可靠处理计算机视觉和 Web 服务。系统设计为可跨其他 SBC 移植——BeagleBone Black、Allwinner A4、Intel Galileo 或 Mini‑ITX——但树莓派仍是首选基线。
ERPIHAT01 HAT 扩展板
遵循 RPi HAT 规范,我们推出 FirePick Delta HAT(ERPIHAT01),一款无杂乱扩展树莓派能力的夹层板。
- 提供 16×2 字符 LCD 接口,接线至树莓派 GPIO。
- 包含旋转编码器、按钮开关(带 LED)和 12 V→5 V 降压供电树莓派的连接器。
- 树莓派摄像头模块直通连接器,允许延伸至三角洲末端执行器。
- 配备压电蜂鸣器,由树莓派单 PWM 引脚驱动,比用音频插孔更便宜。
- 按 HAT 规范,提供必需的 EEPROM 芯片和 +5 V 反向馈电保护,支持通过 GPIO 而非 micro‑USB 供电。
更多详情:FirePick Delta 开源微型工厂项目日志
制造工艺