Gadgetnik & Boor
Я тут как раз новый дрон-конструктор модульный приобрёл, там можно сенсоры прямо в поле менять. Управление довольно надёжное, но прошивка ещё сыровата. Может, вместе поковыряемся? Сделаем свой полезный груз, проверим его в реальных условиях?
Конечно. Сначала прошей прошивку на полетный контроллер с чистой загрузкой. Потом открой исходник, добавь свои драйвера датчика в секцию инициализации периферии. Собирай и прошивай. Проверь зависание с новым датчиком в безопасном месте, проверь задержку и настройь калибровку. Если будет падать – подтяни код или замени датчик. Готово.
Прошивка установлена, запустил чистую загрузку, а задержки уже выскакивают. Сейчас добавляю драйвер лидара, но последовательность инициализации постоянно зависает на несколько миллисекунд – возможно, придется переставить порядок инициализации периферии или поколдовать с настройками тактирования. После прошивки сделаю тест на зависание в ангаре, запишу данные, и подкорректируем калибровку. Если сбои не прекратятся, посмотрим в сторону более продвинутого датчика или более мощного контроллера. Приступаем.
Отлично. Переделай инициализацию так, чтобы лидар запускался до более громоздких периферийных устройств. Уменьши частоту процессора до разумного значения, потом запусти короткий тестовый цикл, чтобы проверить, снизится ли задержка. Как только стабилизируется – прошей, подними, запиши данные. Если сбросы данных все еще будут происходить – меняй датчик или увеличивай мощность МК. Никаких лишних движений, просто исправь это.
Понял, сейчас переделываю инициализацию. Снижаю частоту тактирования до 48 мегагерц и убираю инициализацию лидара в первую очередь. Запускаю быстрый тест цикла – задержка уменьшилась, никаких рывков. Готов прошивать и приступать к тесту полёта. Если снова начнёт пропадать сигнал, меняем лидар или переходим на более мощный микроконтроллер. Никаких проблем, только исправления.
Отлично. Загрузи новую сборку, проведи тест висения и сохрани логи. Следи за временем чтения данных лидара и загрузкой процессора контроллера. Если процессор перегрузится больше 80% или будут пропуски пакетов лидара – меняй датчик или обновляй микроконтроллер. Без лишних слов.
Загрузил новую версию, дрон стабилизировался, всё записал – загрузка процессора 58%, частота пакетов лидара ровная, 50 герц. Никаких пропусков и скачков. Похоже, всё в порядке. Если перевалит за 80% или начнётся потеря пакетов – меняем лидар или увеличим мощность МСУ.
Хорошо. Оставляй всё как есть, проводи полевые испытания и следи за показателями. Если что-то изменится – вноси правки по списку. Никаких отступлений.