FarmBot/farmbot-arduino-firmware
Arduino firmware that executes g-code like commands over a serial line to move the FarmBot and operate the tool mount
解决的问题
该固件运行在FarmBot(一种精密农业机器人)内部的Arduino Mega 2560上。它充当机器人的电机控制器和引脚接口。树莓派通过串行连接发送G代码命令,该固件解释这些命令以移动机器人的X、Y和Z轴,读取传感器,控制水阀,并将状态报告回树莓派。没有这个固件,树莓派将无法将高级指令转化为物理运动。
工作原理
该固件使用Arduino语言(C++变体)编写,并围绕一个读取传入命令的主循环进行组织。流程是:控制器接收G代码或Farm命令,处理它,然后分派给适当的处理程序,例如Movement(用于轴运动)或PinControl(用于读写Arduino引脚)。它支持广泛的标准G代码(如G00用于绝对移动,G28用于归位)和Farm特定命令(如F22写入参数,F41设置引脚值)。它还向树莓派发送报告消息(R代码),以指示空闲、命令成功、错误、轴状态和校准进度。
关键细节:固件需要配置批准后才能移动(发送F22 P2 V1 Q0)。它支持多种FarmBot板版本(RAMPS、FARMDUINO、Express),具有不同的功能,如编码器、失速检测和电流传感器。开发人员可以使用Arduino IDE、Make或VSCode编译和上传。固件自动捆绑到FarmBot OS中,但也可以独立开发。
适用人群
该项目适用于使用FarmBot硬件并希望自定义或扩展低级控制固件的开发人员、爱好者或研究人员。它也对任何研究Arduino固件如何处理G代码解析和CNC或3D打印机类系统的电机控制的人有用。README假设读者熟悉Arduino编程、G代码和基本电子知识。
亮点
- 充当树莓派与FarmBot电机、传感器和引脚之间的桥梁。
- 支持全面的G代码和自定义Farm命令,用于运动、归位、校准、引脚I/O和参数调整。
- 向树莓派报告详细错误代码、轴状态和校准进度的状态。
- 设计用于多种板版本,从基本的RAMPS到带有编码器和失速检测的高级FARMDUINO。
- 包含大量参数列表(200多个设置),用于调整移动速度、加速度、编码器行为和引脚保护。
- 可以使用Arduino IDE、Make(Linux)或VSCode编译,并可以作为独立项目在FarmBot OS之外运行。
相关
- 项目
- 项目
- 项目
- 项目