okalachev/flix

Making an ESP32-based quadcopter from scratch

그것이 무엇인가

Flix (flight + X의 약자)는 ESP32 마이크로컨트롤러를 중심으로 구축된 오픈 소스 쿼드콥터 드론입니다. 하드웨어와 소프트웨어 모두 처음부터 설계되었으며 상업적 용도보다는 교육 및 연구를 위한 것입니다.

현재 상태

  • 버전 1.1이 3D 프린팅 프레임으로 존재합니다. 이전 버전 0도 존재합니다.
  • 프로젝트는 실제로 비행합니다. 데모 비디오는 README에 링크되어 있습니다.
  • 전용 PCB(Flix2라고 함)가 개발 중입니다.
  • 위치 제어 기능(위치 자동 유지)도 개발 중이며, 상단 카메라를 사용한 데모가 있습니다.

주요 기능

  • 범용, 일반 시판 부품(ESP32 보드, IMU 센서, 브러시드 모터, MOSFET 등)으로 제작되었습니다.
  • Arduino로 작성된 간단하고 깔끔한 펌웨어 — 코드 2,000줄 미만.
  • Wi-Fi 또는 ESP-NOW(단거리 무선 프로토콜)를 통해 MAVLink 프로토콜을 사용하여 통신합니다.
  • USB 게임패드, 리모컨 또는 스마트폰으로 제어할 수 있습니다.
  • 구성 및 분석을 위한 무선 명령줄 인터페이스가 포함되어 있습니다.
  • 실제 드론과 동일한 Arduino 코드를 실행하는 Gazebo로 구축된 정밀 시뮬레이터가 있습니다.
  • 스크립팅 및 자동 비행을 위한 Python 라이브러리를 제공합니다.
  • 비행 제어 이론 및 실습에 관한 교과서가 개발 중입니다(quadcopter.dev에 있음).

하드웨어

  • 메인 보드: ESP32 Mini(ESP32-S3 및 ESP32-C3 보드도 지원).
  • 센서: GY-91(MPU-9265) 또는 기타 MPU-9250/MPU-6500 보드, ICM20948V2 또는 GY-521(MPU-6050).
  • 모터: 4× 8520 3.7V 브러시드 모터.
  • 프로펠러: 55mm 또는 65mm.
  • 스위칭: 4× MOSFET 트랜지스터(UMW 100N03A 또는 유사 제품 — README는 다른 제조업체를 경고함).
  • 배터리: 3.7V Li-Po, 권장 25C, 1000mAh 이상.
  • 프레임: 3D 프린팅(STL 및 STEP 파일 제공), 권장 인쇄 설정(0.2mm 레이어, 0.4mm 라인, 100% 인필).
  • 컨트롤러 옵션: CC2500 기반 송신기(예: BetaFPV LiteRadio), Wi-Fi를 통한 2스틱 게임패드 또는 기타 옵션.
  • 선택 부품: SBUS 인터페이스가 있는 RC 수신기, 더 안정적인 전원을 위한 부스트 컨버터, 배터리 전압 분배기.

조립 및 배선

  • README는 간소화된 연결 다이어그램과 모터 연결 방식(MOSFET 배선)을 제공합니다.
  • IMU 보드를 ESP32에 연결하기 위한 핀별 테이블(VSPI 통해)과 4개의 모터를 특정 GPIO 핀에 연결하기 위한 테이블이 포함되어 있습니다.
  • 선택적 RC 수신기는 UART2에 연결합니다. 선택적 배터리 전압 분배기는 ADC1 핀에 연결합니다.
  • 필요한 도구: 3D 프린터, 납땜 인두, 납땜 와이어, 드라이버, 멀티미터.

소프트웨어 및 시뮬레이션

  • 시뮬레이터는 Gazebo 내에서 원래 Arduino 코드를 실행하므로 시뮬레이션 동작이 실제 드론과 일치합니다.
  • Python 라이브러리(tools/pyflix에 있음)는 스크립팅 및 자동 비행을 가능하게 합니다.
  • README는 문서 기사에 링크합니다: 조립 지침, 사용법(빌드/설정/비행), 시뮬레이션 가이드, Python 라이브러리 문서, 펌웨어 아키텍처 개요, 문제 해결, 로그 분석.

커뮤니티 및 리소스

  • 개발을 추적하는 공식 Telegram 채널(러시아어): t.me/opensourcequadcopter.
  • 공식 Telegram 채팅(영어/러시아어): t.me/opensourcequadcopterchat.
  • 드론 개발에 대한 상세한 Habr 기사(러시아어).
  • 문서에는 사용자 빌드 갤러리가 유지 관리됩니다.

중요한 주의 사항

  • 이것은 DIY 프로젝트입니다. README에는 조립 및 설정이 쉽지 않다고 명시되어 있습니다.
  • 보증 없이 "있는 그대로" 제공됩니다. 저자는 손상, 부상 또는 손실에 대해 책임을 지지 않습니다.
  • 일부 구성 요소에는 엄격한 요구 사항이 있습니다(예: 정확한 3.7V 모터, 특정 MOSFET 제조업체, 일치하는 프로펠러 구멍 직경).
  • IMU 보드의 기압계는 현재 사용되지 않습니다.
  • 프레임은 GY-91 보드에 최적화되어 있습니다. 다른 IMU 보드는 장착 구멍 위치를 수정해야 할 수 있습니다.

시작하는 방법

  1. README에 링크된 조립 지침 및 사용법 문서를 읽으십시오.
  2. 나열된 구성 요소를 모으십시오(또는 먼저 시뮬레이터를 사용하십시오).
  3. 프레임 부품을 3D 프린팅하십시오.
  4. 회로도에 따라 납땜하고 배선하십시오.
  5. Arduino 펌웨어를 플래시하고 설정 가이드를 따르십시오.
  6. 선택적으로 Python 라이브러리를 사용하여 비행을 스크립팅할 수 있습니다.

관련

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