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 보드는 장착 구멍 위치를 수정해야 할 수 있습니다.
시작하는 방법
- README에 링크된 조립 지침 및 사용법 문서를 읽으십시오.
- 나열된 구성 요소를 모으십시오(또는 먼저 시뮬레이터를 사용하십시오).
- 프레임 부품을 3D 프린팅하십시오.
- 회로도에 따라 납땜하고 배선하십시오.
- Arduino 펌웨어를 플래시하고 설정 가이드를 따르십시오.
- 선택적으로 Python 라이브러리를 사용하여 비행을 스크립팅할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트