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-Code 명령을 보내고, 이 펌웨어는 이를 해석하여 로봇의 X, Y, Z 축을 이동하고, 센서를 읽고, 물 밸브를 제어하고, 상태를 Pi에 보고합니다. 이 펌웨어가 없으면 Pi는 고수준 명령을 물리적 움직임으로 변환할 방법이 없습니다.

작동 방식

펌웨어는 Arduino 언어(C++ 변형)로 작성되었으며 수신 명령을 읽는 메인 루프를 중심으로 구성됩니다. 흐름은 다음과 같습니다. 컨트롤러는 G-Code 또는 Farm 명령을 수신하고 처리한 다음 Movement(축 이동용) 또는 PinControl(Arduino 핀 읽기/쓰기용)과 같은 적절한 핸들러로 디스패치합니다. 표준 G-Code(절대 이동용 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-Code 파싱 및 모터 제어를 처리하는 방법을 연구하는 모든 사람에게 유용합니다. README는 Arduino 프로그래밍, G-Code 및 기본 전자 제품에 대한 친숙함을 가정합니다.

하이라이트

  • Raspberry Pi와 FarmBot의 모터, 센서 및 핀 사이의 두뇌 역할을 합니다.
  • 모션, 홈링, 보정, 핀 I/O 및 파라미터 튜닝을 위한 포괄적인 G-Code 및 사용자 정의 Farm 명령을 지원합니다.
  • 상세한 오류 코드, 축 상태 및 보정 진행 상황을 Pi에 보고합니다.
  • 기본 RAMPS에서 인코더 및 스톨 감지 기능이 있는 고급 FARMDUINO까지 여러 보드 버전용으로 설계되었습니다.
  • 이동 속도, 가속도, 인코더 동작 및 핀 가드를 조정하기 위한 대규모 파라미터 목록(200개 이상의 설정)을 포함합니다.
  • Arduino IDE, Make(Linux) 또는 VSCode로 컴파일할 수 있으며 FarmBot OS 외부에서 독립 프로젝트로 실행할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트