Телеметрия (часть 1)

Вахтанг
smalltim:

Как и обещал, представляю тестовый пробег новой прошивочки для телеметрии:

Готовую прошивку выложу как только заполучу в руки GPS и обкатаю в деле. Следующая после этой версия будет с тенями под буквами (без необходимости в переделке платы телеметрии)

Могу предоставить во временное пользование GPS модуль, до полетов пока рано, всёравно лежит без дела, а на благое дело пригодится!

ReGet
smalltim:

Как и обещал, представляю тестовый пробег новой прошивочки для телеметрии:

Отличный вариант отображения информации! 😍

Тимофей, дайте ответ в ЛС, пожалуйста. Мы жаждим вкусить плоды вашей работы 😒

smalltim

Уже ответил.

С теньками какая-то жопа получается. Можно легко сделать квадратиками по размерам знакоместа, но это некрасиво. Была идея сделать теньки инверсией и сдвигом битовой матрицы вниз и вправо на 1 “пиксел” (этакие “выпуклые” буквы получаются), но я тогда по клокам не влезаю - буквы расползаются в ширину.
Можно задействовать вместо усложнения цикла вывода просто параллельный вывод через SPI, но его очень хочется иметь свободным для общения с платой телеметрии, да и представьте что случится когда автопилоту вздумается залить очередную запись лога во внешнюю память, а тут параллельно вылезает плата телеметрии со своим выводом на экран через SPI.

Сейчас у меня уходит по 4 клока на “пиксел”. Это грубо говоря 2 NOPа, LSR и OUT. В исходниках всё видно.
Для кучерявых теней надо сделать 2 LSR и 2 OUT. Вроде укладываемся.
Но при этом еще раз в 6 “пикселов” (а буквы у меня такой ширины) надо читать 2 битовые маски новой буквы. Сейчас это укладывается между NOPами, но с двумя выводами одновременно не уложится.
Вот и думаю, как и рыбку съесть, и .хм… остальное сделать.

smalltim

>Могу предоставить во временное пользование GPS модуль, до полетов пока рано, всёравно лежит без дела, а на благое дело пригодится!

Вахтанг, спасибо, уже нежданно-негаданно помогли. Коллега подъехал обновить прошивку телеметрии и поменяться на плату с бародатчиками, и прознав про такое дело решил оставить телеметрию заодно с GPS модулем на недельку 😉

DIM81:

Еще пару вопросов:

  1. Почему при подключенном ПСМ приемнике, телеметрия отображает антенку, но не отображает не одного деления сигнала?, ведь по идее наоборот, даже при помехах должно на ПСМ приемнике показывать полную шкалу сигнала. Кто нибудь пробывал ПСМ приемник подключить к телеметрии?
  2. У меня, если телеметрию включать (подавать питание) одновременно с видеопередатчиком, то видеоизображение становится черным, практически не видно картинку, а буквы телеметрии остаются нормального белого цвета. Если подключать телеметрию раньше - то же самое. Если телеметрию включать позже, все в порядке и картинка нормальная, и буквы белые. Это нормально? Просто приходится из за этого отдельный выключатель на телеметрию ставить 😦 Может это как нибудь лечиться?

DIM81, у меня не было сроду PCM-приемников, но я твердо знаю, что на выходе должен быть обычный рабочекрестьянский PPM. Надеялся, коллеги, владеющие темой, помогут, но почему-то тишина.

По поводу яркости видео: телеметрия из-за белизны буковок чуть-чуть повышает общий уровень белого в кадре, поэтому обычно на какую-то маленькую долю срабатывает автоматический баланс яркости в камере-передатчике, и картинка в целом становится чуть темнее. У Вас, похоже, особо привередливая связка камера - передатчик. Посмотрите, как почерневший экран поведет себя, если камеру на яркий свет и потом в темноту направить?

Expert
DIM81:

Еще пару вопросов:

  1. У меня, если телеметрию включать (подавать питание) одновременно с видеопередатчиком, то видеоизображение становится черным, практически не видно картинку, а буквы телеметрии остаются нормального белого цвета.
  1. А чем у Вы видео просматриваете?, у меня такая ерунда была на “плазме”, когда она пыталась скомпенсировать слишком яркие буквы.
Psw
smalltim:

Сейчас у меня уходит по 4 клока на “пиксел” <>думаю, как и рыбку съесть, и …

20 МГц кварец должен дать 5 клоков на пиксель. По слухам, меги гоняццо неплохо. На счет 24 МГц и 6 клоков на пиксель - тут уже я сумлеваюсь в работоспособности, хотя лично мне было бы не жаль меги для теста.
При стабильном 5 вольт питании самым капризным элементом будет сам кварец на мой взгляд. Реально обойти заменой квареца на внешний генератор - 4 вывода вместо 2 - тогда уж точно тактовый генератор не будет капризничать, но габариты у генератора слегка поболее.

Artie
smalltim:

С теньками какая-то жопа получается. Можно легко сделать квадратиками по размерам знакоместа, но это некрасиво. Была идея сделать теньки инверсией и сдвигом битовой матрицы вниз и вправо на 1 “пиксел” (этакие “выпуклые” буквы получаются), но я тогда по клокам не влезаю - буквы расползаются в ширину.

Не заморачивайтесь с этим делом.

Я когда-то давно делал версию с “аппаратными” тенями (когда сигнал на пуллдаун формируется простенькой схемкой по фронту и спаду выхода “титров”).
На черно-белой картинке это, конечно, выглядит шикарно, но как только подключаем цветную камеру, то все переходы белого/серого начинают “звенеть” разноцветными ореолами… 😦 Различимость букв на фоне неба при этом, разумеется, растет, но вот на всем остальном экране эта ерунда лупит по по глазам так, что уже через минуту ее хочется отключить совсем.
В общем, чтобы это делать корректно для цветного изображения, надо точно фазу считать, а вот на это ресурсов 88 не хватает с гарантией.

slides

Тим ! Респект за “недельку” ! Не спеши, заберу готовый вариант с автопилотом, так что лучше даже облетать несколько раз.

По поводу теней - я конечно не спец по разработке телеметрий и изготовлению сверхлегких ЛА (😉), но может действительно не заморачиваться, а сделать квадратики под буквами. Не постоянно, а отключаемо (автоматически, думай как, может оценивать общий фон ???, а еще лучше - вручную, “рывками” переключателя на пульте…).

daring

У топовых Spektrum/JR приемников имеется Data port, в который во время полета они отдают информацию о текущем качестве приема сигнала. Вот здесь: www.rcgroups.com/forums/showpost.php?p=9853072&pos… есть краткое описание протокола. Существует ли техническая возможность добавить в smalltim’овскую телеметрию поддержку отображения качества сигнала с этих приемников?

slides
daring:

У топовых Spektrum/JR приемников имеется Data port, в который во время полета они отдают информацию о текущем качестве приема сигнала. Вот здесь: www.rcgroups.com/forums/showpost.php?p=9853072&pos… есть краткое описание протокола. Существует ли техническая возможность добавить в smalltim’овскую телеметрию поддержку отображения качества сигнала с этих приемников?

Мы это обсуждали. Ну подумайте, у кого эти приемники ? В моей коллекции только один ! А у других ? Потом, сигнал раскодирован ? По-моему надо сделать так, чтобы активация схемы происходила на первом канале - стик газа (файл сейф единственный канал на семерке) в “0”.
Делаем так:

  1. биндим приемник, когда стик в нулевом значении.
  2. Далее в меню передатчика программируем нижнюю точку не “-100%”, а положим “-95%”.
  3. Калибруем рабочий диапазон газа регуля с данными настройками, то есть для регуля “выключено” будет не -100 на передатчике, а -95%, что будет считаться нулем.
  4. Как только телеметрия поймает забинденный истинный ноль - это потеря сигнала (мотор уже выключился), тут же включается автопилот.

Так что Тим, прошивочку мути, чтобы с канала газа показания считывало !😝

smalltim

>Существует ли техническая возможность добавить в smalltim’овскую телеметрию поддержку отображения качества сигнала с этих приемников?
У Atmega8 один USART интерфейс, который уже занят: на нем висит GPS.
Теоретически, поскольку GPS отстреливается гораздо реже, чем DataPort, можно в паузах между пачками приходящими с GPS переконфигурировать USART на 115200/8/N/1 и читать что приходит от DataPort, но для этого надо сделать много разных вещей:

  1. Перед приемом данных с DataPort удостовериться, что в ближайшие 1.36мсек не будет данных с GPS
  2. смириться с пропуском большей части приходящих пачек с DataPort
  3. Ввести проверку контрольной суммы в код парсинга GPS строк
  4. Убедиться, что опрос DataPort попадает в “окно” кадра на экране, свободное от отрисовки
  5. Развязать (диодами?) выход GPS и выход DataPort.

То есть, в проинципе, оно возможно, но очень-очень геморройно.
С автопилотом - просто, как мычание: у телеметрии один USART, у автопилота еще USART, творим что хотим.

slides

Ну я и говорю - проще надо решать этот вопрос ! См. пост 1923

smalltim

Записал на С замечательный компактный и шустрый целочисленный алгоритм CORDIC, считающий за 16 оборотов цикла, в котором только сложения и сдвиги (как корень из 32-битного целого числа, см. исходники) арктангенс и заодно совершенно бесплатно, как побочный продукт, расстояние от самолета до базы.
Скормил ему 10000 случайных наборов координат, соответствующих удалению от 0 до 60 км в случайном направлении.
Получил по набору из 10000 опытов:

  • максимальную ошибку определения азимута - 0.11 градусов,
  • максимальную ошибку определения расстояния до базы в абсолютном значении - 22.55м
  • максимальную ошибку определения расстояния до базы в процентах от величины расстояния - 0.56%.

CORDIC крут!
Теперь переложить на ассемблер - и готов новый алгоритм определения и отображения позиции базы.

ReGet

А сложно дописать инициализацию нужной скорости и 5Гц режима для GPS LS20033?

Панкратов_Сергей

А еще проще программкой

MiniGPS_1.32.rar
Все очень наглядно.
Не нужно вводить длинные команды

Или вопрос был о том, будет ли или что нужно дописать, чтоб телеметрия с 5 гц работала?

ReGet
Панкратов_Сергей:

Или вопрос был о том, будет ли или что нужно дописать, чтоб телеметрия с 5 гц работала?

Да, вопрос о работе 5Гц модуля (LS…) с телеметрией Тимофея. Может можно дописать нужные команды для модуля на этапе инициализации телеметрии, если это не сложно? Привлекает обновление информации 5 раз в сек

smalltim

Я планирую в прошивке автоматическое определение модуля, EM406A это или LS20031, и если это LS, я его пинками автоматически перевожу на 5 Гц.

smalltim

Убрал одну ошибочку в cordic’e, получил максимальную ошибку определения угла - 0.1 град, расстояния - 2м.

maloii
smalltim:

Убрал одну ошибочку в cordic’e, получил максимальную ошибку определения угла - 0.1 град, расстояния - 2м.

А алгоритм на всеобщее обозрение 😉 ?