Итак, продолжаем заниматься никому не нужной ерундой. Приехали железки, и можно потыкать паяльником.
Идем согласно ранее озвученному плану:
Готового дрона нема, но есть железки. Стандартный стек F405 (не совсем стандартный, но здесь не об этом) + дальнобойка crossfire. Припаиваем приемник к стеку, биндим, прошиваем полетник и настраиваем приемник в INAV.
Кстати, по ходу пьесы вырисовывается шо INAV похоже гадость, и нужно уходить в бетафлай. Но об этом позже.
Проверяем - все работает, мы видим каналы приемник в INAV.
Дальше согласно ранее продуманному плану, отпаиваем приемник от полетника, и припаиваем его к uart малины. Дальше нужно полетник припаять ко второму uart малины, но здесь нас ждет первый сурпрыз - на малине из коробки только 1 uart. Пичаль
Но немного гуглинга и правки /boot/config.txt и у нас нарисовывается новый uart. То, что нужно.
Ну и чтобы 2 раза не ходить, припаиваем на полетник серву. Циферки хорошо, но лучше все проверять наживую.
Получается примерно такая икебана
Все, паяльник прячем, больше он пока не нужен. Пришло время тыкать кнопки.
Лепим новый скрипт на питоне. Открываем оба наших юарта, и пишем с первого (приемник) во второй (полетник). Здесь пришлось немного повозиться, но в результате все завелось, и работает без задержек.
Хрен знает чего, но форум не грузит локальные видео, даже не большие. Ну, пусть будет так
Т.е. на текущем моменте малина выступает как мост между приемником, и полетником. Дальше нужно научить ее управлять полетником самостоятельно. Штош, смотрим что у нас есть.
Crossfire имеет свой протокол данных - CRSF. Гуглим спецификацию протокола и находим
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
Ну, вроде обычная хреновина. Однако изначально хотел реализовать это на протоколе SBUS. Он более старый и медленный, но используется во многих полетниках и аппах. Однако попытка натянуть
сову на глобус заставить crossfire работать с SBUS через INAV результата не принесли, хотя мануал для бетафлай есть.
Штош...
мальчик, девочка, какая в жопу разница нам все равно че потрошить.
Но раньше чем изобретать велосипед, ищем готовые решения. А вот оно - библиотека для работы с CRSF.
Ставим либу, парсим наш юарт, и у нас уже не просто слепой мост - теперь малина видит все каналы, а это есть хорошо. Однако, прямой необходимости ПОНИМАТЬ что шлет оператор, я сейчас не вижу - хотя не исключаю какие либо сценарии, где нужно будет корректировать управление оператора. Намного важнее это организовать прямое управление полетником с малины. И это есть у меня.
Дописываем пару строк в скрипт, и мы уже самостоятельно формируем пакеты для полетника. Что придумать для проверки.... да просто пошевелим сервой. Медленно ее поворачиваем в одно положение, после чего резко возвращаем обратно, и так в цикле.
Хуяк, хуяк и в продакшн.
Что получилось? Автономный модуль. Вроде что простого сервой пошевелить - а хуй там. Серва на полетнике. Точно также вместо сервый управляются моторы дрона (которых правда щас нету
) - только переменную в другую позицию поствить. Полетник думает, что им управляет оператор, но это не так. Аппаратура выключена. На малине есть управление всеми каналами и реальном времени, и это более-менее внятно работает.
Дальше попробую собрать телеметрию с полетника, и имея уже такой апи, что-то сочинить. Правда что я сочинять буду не зная питона - большой вопрос.