فریمور متن‌باز

هسته‌ی کنترل پرواز؛ باز، خوانا و قابل تغییر.

فریمور ESPFlight نرم‌افزار اصلی روی کنترلر پرواز است و پایدارسازی، کنترل موتورها، منطق ایمنی، تله‌متری و ارتباط شبکه را مدیریت می‌کند.

espflight / flight_control.cpp
// control loop
imu.update();
failsafe.evaluate();
controller.stabilize();
motors.write();

// keep the pilot informed
telemetry.publish();
نسخه پایدار فعلی · Firmware v 1.0.0 · Protocol 2
هسته فعلی

به‌اندازه‌ی کافی ساده برای یادگیری و به‌اندازه‌ی کافی ساختاریافته برای توسعه.

01

پایدارسازی

داده‌های IMU و کنترل PID در حلقه‌ی اصلی کنترل پردازش می‌شوند تا Roll، Pitch و Yaw پایدار بمانند.

02

وضعیت ایمنی

ARM/DISARM صریح، مدیریت قطع ارتباط، وضعیت باتری و محدودیت‌های ایمنی پرواز.

03

کنترل شبکه

پیدا کردن دستگاه، ارتباط WebSocket، مدیریت کنترل فعال و دریافت تأیید برای فرمان‌های مهم.

04

تله‌متری

وضعیت سیستم و داده‌های پرواز به‌صورت زنده برای اپلیکیشن همراه ارسال می‌شوند.

05

پرواز کمکی

در صورت وجود سخت‌افزار لازم، کمک ارتفاع و فرایندهای برخاست و فرود روی کنترل پایدارشده‌ی پایه اضافه می‌شوند.

06

پیکربندی

هنگامی که پهپاد متصل است، پارامترهای کنترل را می‌توان از طریق اپ تنظیم کرد.

ESPFlight Protocol 2

یک مسیر ارتباطی مشخص و قابل پیش‌بینی بین کنترلر پرواز و اپلیکیشن.

در ESPFlight، ارتباط بین اپلیکیشن و فریمور بخشی از طراحی اصلی سیستم است؛ نه مجموعه‌ای از پیام‌های پراکنده و موقت.

  • پیدا کردن دستگاه با UDP
  • کانال کنترل و تله‌متری WebSocket
  • فرمان‌های صریح ARM / DISARM
  • مدل مالکیت تک‌کنترلر
  • ACK برای فرمان‌های سطح بالا
  • مهلت زمانی ارتباط (Timeout) و منطق ایمنی پرواز
اپ ESPFlight
پیدا کردن دستگاه UDP کنترل + تله‌متری WebSocket
فریمور ESPFlight
مرز امنیتی شبکه در v1 Protocol 2 برای شبکه محلی خصوصی و مورد اعتماد طراحی شده است. نسخه v1 حمل‌ونقل رمزنگاری‌شده یا احراز هویت رمزنگاری‌شده در برابر کلاینت مهاجم روی همان شبکه فراهم نمی‌کند؛ بنابراین برای کنترل پرواز از شبکه عمومی یا مشترکِ غیرقابل اعتماد استفاده نکنید.

کد را بخوانید، بسازید و بهترش کنید.

ESPFlight فریمور v1.0.0 تحت مجوز MIT متن‌باز است؛ بنابراین می‌توانید آن را بخوانید، از آن یاد بگیرید، تغییر دهید، بازتوزیع کنید و مطابق شرایط مجوز در پروژه‌های شخصی یا تجاری به کار ببرید.

مشاهده کد منبع انتشار v1.0.0 مستندات فریمور مطالعه مجوز MIT
یادداشت شناخته‌شده v1.0.0

برای اصلاحات مستندی که بدون تغییر tag انتشار ثبت شده‌اند، فایل Errata رسمی فریمور را بررسی کنید.

مشاهده Errata رسمی ↗