Skip to content

PX4 Прошивка DroneCAN

PX4 може працювати як прошивка на багатьох периферійних пристроях DroneCAN. Є кілька переваг цього:

  • PX4 має вбудовані драйвери для широкого спектру датчиків та периферійних компонентів.
  • PX4 має міцну реалізацію драйвера DroneCAN, яка пройшла кілька років полевих випробувань.
  • PX4 постійно розвивається. Ви регулярно отримуєте доступ до останніх покращень.
  • Код оцінки та керування PX4 дозволяє легко створювати "розумні" канноди, такі як інтегровані модулі AHRS.
  • Прошивка повністю відкритого коду (PX4 має ліцензію BSD).

Збірка прошивки

Дотримуйтесь документів зі збірки PX4 точно так, як ви збудували б вбудоване програмне забезпечення для контролера польоту. Конфігурації збірки пристрою зберігаються тут. Після встановлення інструменту PX4, склонуйте джерела та зіберіть. Наприклад, для побудови для цілі Ark Flow:

sh
git clone --recursive https://github.com/PX4/PX4-Autopilot
cd PX4-Autopilot
make ark_can-flow_default

Це створить вихідний файл у build/ark_can-flow_default з назвою XX-X.X.XXXXXXXX.uavcan.bin. Дотримуйтесь інструкцій на Оновлення прошивки DroneCAN, щоб оновити прошивку.

Інформація про розробника

Цей розділ містить інформацію, яка є актуальною для розробників, які хочуть додати підтримку нового апаратного забезпечення DroneCAN до автопілота PX4.

Встановлення завантажувача DroneCAN

WARNING

Зазвичай пристрої DroneCAN поставляються з попередньо встановленим завантажувачем. Не слід дотримуватися інструкцій у цьому розділі, якщо ви не розробляєте пристрої DroneCAN, або (випадково) пошкодили / видалили свій завантажувач.

Проект PX4 включає стандартний завантажувач DroneCAN для пристроїв STM32.

Завантажувач займає перших 8-16 КБ флеш-пам'яті і є першим кодом, що виконується при увімкненні живлення. Зазвичай завантажувач виконує ініціалізацію пристрою низького рівня, автоматично визначає швидкість передачі даних на шині CAN, виступає як клієнт динамічного ідентифікатора вузла DroneCAN для отримання унікального ідентифікатора вузла та очікує підтвердження від контролера польоту перед продовженням завантаження програми.

Цей процес забезпечує можливість відновлення пристрою DroneCAN від недійсного або пошкодженого програмного забезпечення додатка без втручання користувача, а також дозволяє автоматичне оновлення програмного забезпечення.

Побудуйте прошивку завантажувача, вказавши той самий периферійний цільовий об'єкт з конфігурацією збірки canbootloader замість конфігурації default.

Наприклад, для побудови для цілі Ark Flow:

sh
git clone --recursive https://github.com/PX4/PX4-Autopilot
cd PX4-Autopilot
make ark_can-flow_canbootloader

Бінарний файл потім може бути спалахнутий на мікроконтролері за допомогою вашого улюбленого відлагоджувача SWD/JTAG, такого як Чорна Магія Sonda, ST-Link або Segger JLink.

Налаштування прошивки

Переважно, вбудоване програмне забезпечення периферійних пристроїв працює так само, як і версії програмного забезпечення контролера польоту. Проте, більшість модулів вимкнено - лише драйвери сенсорів, драйвер DroneCAN та внутрішня інфраструктура (uORB, тощо) увімкнені.

Комунікація DroneCAN обробляється модулем uavcannode. Цей драйвер відповідає за комунікацію з боку виробника - він отримує дані сенсорів/виконавчих пристроїв з uORB, серіалізує їх за допомогою бібліотек DroneCAN та публікує їх по CAN. У майбутньому це, ймовірно, буде об'єднано з модулем uavcan, який відповідає за драйвери з боку керуючого пристрою (споживача), які отримують/десеріалізують дані з шини CAN та публікують їх через uORB.

Система збірки також створює прошивкові бінарні файли, призначені для прошивки через загрузчик DroneCAN через підтримку мигання [PX4's DroneCAN flashing support] або DroneCAN GUI, крім стандартних сирових бінарних, ELF та .px4 прошивкових файлів.