minimOSD S.PORT Frsky
Здравствуйте.
Прошу помощи и участия в адаптации железа minimOSD для отображения данных из S.port Frsky.
Идея: есть пульт Taranis QX7 - у него по s.port всегда бежит телеметрия. Я проверил - есть RSSI, SWR, RXbat, GPS, FLVS напряжения и т.д. все датчики!
Подключаем minimOSD к пульту и к монитору\очкам и получаем OSD на земле.
Плюсы:
0. телеметрия через 2.4ГГц надежно передается, в отличие от слабого vtx 5.8 (мощный vtx не предлагать)
- логи на microSD
- OSD имеет массу, греется с тяжелым радиатором и кушает большой ток от большого аккумулятор а на земле
- на модели только камера и vtx
- камера и vtx не имеют разрыва на OSD
- “говорилка” пульта громко выдаст алармы!
- логи с карточки можно посмотреть на Гоогл.картах.
Что сделано:
- декодер s.port работает, данные с датчиков получены
- для GPS есть расчет дистанции и направления домой
- OSD не сделано
С MAX7456 сложности. В сети куча кода, который то не запускается, то ссылки битые, то свежая Ардуино IDE ругается.
github.com/musgravehill/sportOSD
Заказал micro minimOSD.
Схем в интернете нет, прозвонить плату временно не могу.
Но, похоже, что используется стандартная распиновка SPI, кроме SS = d6.
Значит, можно использовать стандартную библиотеку SPI, а не software SPI с дерганьем кастомных пинов.
VSYNC идет на d2 - надо сделать прерывание и выставлять флаг, разрешающий перерисовку экрана?
Настройка самая примитивная без программ.
Позицию каждого датчика сделать через константы. Например, POSITION_VBAT_X= 30; POSITION_VBAT_Y= 48;
Это наиболее просто без EPPROM и пр.
Для домашней позиции GPS: включаем модель и ждем. OSD должно получить координаты 100 раз. Можно проверить, чтобы среднее отклонение было ± несколько последних цифр. Сохранить в GPS_HOME сотую полученную позицию или среднее по сотне полученных. На OSD показать 30 секунд “GPS HOME = lat, long”
Сделал GPS Home.
500 раз считываем не-нулевую позицию и сохраняем ее в качестве домашней.
Обновление OSD сделал по прерыванию d2 VSYNC. Неясно, falling или raising надо…
Схема micro minimOSD в поиске. Пины SPI неизвестны.
OSD работает.
Сложности с таблицей шрифтов. Часть букв битая.
Какой-то нехороший человек заменил в таблице шрифтов буквы ABCDEF на их всевозможные аналоги А, В(вэ), С(эс) (рус) и прочие похожие, чтобы испортить.
Пришлось брать шрифты из mwOSD.
Теперь нужно делать логику и вывод данных.
Стрелка на дом работает. Вращается с учетом текущей позиции и направления движения.
Осталось сделать компас.
Компас работает.
TODO сглаживание и фильтрация показателей.
Еще вычисление отн.высоты. Возможно, горизонт по акселю или s6r посмотреть.
Еще кол-во спутников в ток.
Внимание!
Библиотека MAX7456 и FrskySPORTdecoder конфликтуют.
Декодер sport не получает информацию.
Смогу ли разобраться с этим - неизвестно.
Конфликт решен!
Остается проверка всех датчиков и алгоритмов на железе.
TODO индикатор цикла на экране: зависло или тикает.
Испытал Micro MinimOSD.
Вход S.port повесил на пин CurrentSensor, который идет на А1 в Атмега.
Всё работает.
Таким образом, с подключением к micro или обычной minimOSD проблем нет.
При отсутствии видеосигнала телеметрия отображается, но подергивается.
молодчина!
штука нужная и полезная
Еще бы видео с итогом работы 😒