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で動作します。ロボットのモーターコントローラーおよびピンインターフェースとして機能します。Raspberry Piはシリアル接続を介してGコードコマンドを送信し、このファームウェアはそれらを解釈してロボットのX、Y、Z軸を動かし、センサーを読み取り、水バルブを制御し、ステータスをPiに報告します。このファームウェアがないと、Piは高レベルの命令を物理的な動きに変換する方法がありません。
仕組み
ファームウェアはArduino言語(C++の変種)で書かれており、受信コマンドを読み取るメインループを中心に構成されています。フローは次のとおりです。コントローラーはGコードまたはFarmコマンドを受信し、処理してから、Movement(軸運動用)やPinControl(Arduinoピンの読み取り/書き込み用)などの適切なハンドラーにディスパッチします。標準的なGコード(絶対移動用のG00、ホーミング用のG28など)とFarm固有のコマンド(パラメータ書き込み用のF22、ピン値設定用のF41など)の広範なセットをサポートしています。また、アイドル、コマンド成功、エラー、軸状態、キャリブレーション進行状況を示すレポートメッセージ(Rコード)をPiに送信します。
重要な詳細:ファームウェアは移動する前に設定の承認が必要です(F22 P2 V1 Q0を送信)。エンコーダー、ストール検出、電流センサーなどの異なる機能を持つ複数のFarmBotボードバージョン(RAMPS、FARMDUINO、Express)をサポートしています。開発者はArduino IDE、Make、またはVSCodeを使用してコンパイルおよびアップロードできます。ファームウェアはFarmBot OSに自動的にバンドルされますが、独立して開発することもできます。
対象読者
このプロジェクトは、FarmBotハードウェアを扱い、低レベル制御ファームウェアをカスタマイズまたは拡張したい開発者、愛好家、研究者向けです。また、ArduinoファームウェアがCNCや3DプリンターのようなシステムのGコード解析とモーター制御をどのように処理するかを研究している人にも役立ちます。READMEは、Arduinoプログラミング、Gコード、基本的な電子工学に精通していることを前提としています。
ハイライト
- Raspberry PiとFarmBotのモーター、センサー、ピン間のブレインとして機能します。
- モーション、ホーミング、キャリブレーション、ピンI/O、パラメータ調整のための包括的なGコードとカスタムFarmコマンドをサポートします。
- 詳細なエラーコード、軸状態、キャリブレーション進行状況をPiに報告します。
- 基本的なRAMPSからエンコーダーとストール検出を備えた高度なFARMDUINOまで、複数のボードバージョン向けに設計されています。
- 移動速度、加速度、エンコーダー動作、ピンガードを調整するための大規模なパラメータリスト(200以上の設定)が含まれています。
- Arduino IDE、Make(Linux)、またはVSCodeでコンパイルでき、FarmBot OSの外部で独立したプロジェクトとして実行できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト