Smalltim OSD and autopilot (часть 1)

baychi
Dronavt:

У меня дома не получается выставить горизонт. Даже кастрюлька кипятка под Изиком не помогает. Сначала “дергался” на эту тему. Но выйдя на улицу горизонт встал в норму.

Как он работает на улице я уже видел в прошлый раз. Здесь что-то не так.
Собственно меня смущает больше не трудность иммитирования, а несоответствие значения на выходе платы, показаниям КП.

foxfly:

Кстати, на родном Co-Pilot е, голова питается от 3,3 В. Соответственно середина- 1,65. Максимальный размах выходного напряжения:1,15-:-2,15 В

Здесь диапазоны сигнала примерно такие-же, с учетом 5 В пропорции (1.2 - 3.7 В). И по значениям напряжения на входе в АП - все похоже на правду, но вот трактовка - не радует.
На первой версии АП любое крайнее состояние легко имитировалось ладонями. Понятное дело, что ровный горизонт дома не сделаешь, но проверить общую логику направлений - хватает.

smalltim
baychi:

Сегодня эксперементировал с пирометрами в домашних условиях. Вынес Z модуль по максимуму. Все равно самик преимущественно видит “перевернутый полет”. Что-бы горизонт отображался вниз ногами, нужно не просто поднести ладонь под нижний глазок (как помню было на старом АП), а практически зажать его пальцами. Это кстати объясняет жуткую дискретность моего авиагоризонта.
Замерил уровни сигнала на выходе платки. Питание - 4.96 В. Средняя точка -2.47 В. Как я понимаю, середине соответсвует значение Z=8000 или 8192 в контрольной панели. Меньше - нормальный полет, все что больше - считается вверх ногами. Так вот значению Z=8000 в контрольной панели соответсвует напряжение 2.3 В на выходе платы. А при 2.48 В (идеальная середина) КП показывает 8500. Это нормально? Или что-то не так с АЦП на плате АП?

А какое число показывает КП для средней точки Z? Напряжение там нормальное, 2.47В. Если показывает сильно в сторону от 8192, то, значит, с АЦП фигня. Точнее, не с АЦП, а с ускоренной математикой. Потому что схематически там ничего нет: с разъема сигнал идет прямо на АЦП через резистор в 1кОм.

Посмотри, пожалуйста, напряжение и число в КП для средней точки для XY головы. Она ближе к истине?

Еще прекрасным критерием будет подача на вход VCC или GND прямо с того же разъема пироголовы. Если числа в КП будут верные, то с самим АЦП все в порядке.

Возможно, я не всегда корректно усредняю показания по пачке выборок с АЦП, включая в сумму одно значение с предыдущего канала АЦП. Раньше это маскировалось бОльшим числом выборок, а сейчас вылезло. Странно, что вылезло только у тебя.
Если ошибка программная, то найти и прибить ее просто. Жду чиселок 😃

baychi:

Сегодня эксперементировал с пирометрами в домашних условиях. Вынес Z модуль по максимуму. Все равно самик преимущественно видит “перевернутый полет”. Что-бы горизонт отображался вниз ногами, нужно не просто поднести ладонь под нижний глазок (как помню было на старом АП), а практически зажать его пальцами. Это кстати объясняет жуткую дискретность моего авиагоризонта.
Замерил уровни сигнала на выходе платки. Питание - 4.96 В. Средняя точка -2.47 В. Как я понимаю, середине соответсвует значение Z=8000 или 8192 в контрольной панели. Меньше - нормальный полет, все что больше - считается вверх ногами. Так вот значению Z=8000 в контрольной панели соответсвует напряжение 2.3 В на выходе платы. А при 2.48 В (идеальная середина) КП показывает 8500. Это нормально? Или что-то не так с АЦП на плате АП?

А какое число показывает КП для средней точки Z? Напряжение там нормальное, 2.47В. Если показывает сильно в сторону от 8192, то, значит, с АЦП фигня. Точнее, не с АЦП, а с ускоренной математикой. Потому что схематически там ничего нет: с разъема сигнал идет прямо на АЦП через резистор в 1кОм.

Посмотри, пожалуйста, напряжение и число в КП для средней точки для XY головы. Она ближе к истине?

Еще прекрасным критерием будет подача на вход VCC или GND прямо с того же разъема пироголовы. Если числа в КП будут верные, то с самим АЦП все в порядке.

Возможно, я не всегда корректно усредняю показания по пачке выборок с АЦП, включая в сумму одно значение с предыдущего канала АЦП. Раньше это маскировалось бОльшим числом выборок, а сейчас вылезло. Странно, что вылезло только у тебя.
Если ошибка программная, то найти и прибить ее просто. Жду чиселок 😃

baychi:

Сегодня эксперементировал с пирометрами в домашних условиях. Вынес Z модуль по максимуму. Все равно самик преимущественно видит “перевернутый полет”. Что-бы горизонт отображался вниз ногами, нужно не просто поднести ладонь под нижний глазок (как помню было на старом АП), а практически зажать его пальцами. Это кстати объясняет жуткую дискретность моего авиагоризонта.
Замерил уровни сигнала на выходе платки. Питание - 4.96 В. Средняя точка -2.47 В. Как я понимаю, середине соответсвует значение Z=8000 или 8192 в контрольной панели. Меньше - нормальный полет, все что больше - считается вверх ногами. Так вот значению Z=8000 в контрольной панели соответсвует напряжение 2.3 В на выходе платы. А при 2.48 В (идеальная середина) КП показывает 8500. Это нормально? Или что-то не так с АЦП на плате АП?

А какое число показывает КП для средней точки Z? Напряжение там нормальное, 2.47В. Если показывает сильно в сторону от 8192, то, значит, с АЦП фигня. Точнее, не с АЦП, а с ускоренной математикой. Потому что схематически там ничего нет: с разъема сигнал идет прямо на АЦП через резистор в 1кОм.

Посмотри, пожалуйста, напряжение и число в КП для средней точки для XY головы. Она ближе к истине?

Еще прекрасным критерием будет подача на вход VCC или GND прямо с того же разъема пироголовы. Если числа в КП будут верные, то с самим АЦП все в порядке.

Возможно, я не всегда корректно усредняю показания по пачке выборок с АЦП, включая в сумму одно значение с предыдущего канала АЦП. Раньше это маскировалось бОльшим числом выборок, а сейчас вылезло. Странно, что вылезло только у тебя.
Если ошибка программная, то найти и прибить ее просто. Жду чиселок 😃

baychi
smalltim:

А какое число показывает КП для средней точки Z?

В среднем - 8160. При манипуляциях вокруг пирометров: от 8145 до 8176
При замыкании (без разъема) средней точки на GND - 0, на +5В - 16368.
При замыкании сигнала на GND - 670, на +5В - 16368.

smalltim

От 8145 до 8176 - это практически идеальная точность.

1023 отсчета соответствуют VCC. Намерянные тобой 2.47В - это
(2.47/4.96)*1023 и еще умножить на 16 - оверсэмплинг по 16 выборкам. Получается 8151.

16368 - это 16*1023, тоже ок.
670 при замыкании выхода ОУ на землю - не совсем понятно, земля из-за ненулевого сопротивления проводков приподнимается на ((670/16)/1023)*4.96=0.2В. Многовато.

Можно попросить тебя о еще одном одолжении?
Пожалуйста, оберни самик или пиродатчики например полотенцем, чтобы обеспечить нулевую разницу температур, и напиши, какие напряжения получаются на разъемах голов и все числа, которые КП говорит на странице диагностики горизонта. Спасибо!

sptry

Сегодня провёл настроечные работы в поле с компом.
Удалось настроить возврат домой, но с приличной раскачкой по крену. По тангажу раскачки нет. Делает круги радиусом метров 70 над базой, высота примерно целевая.
Играл двумя параметрами: чувствительностью и резкостью реакции. Чувствительность 55%, резкость 35%.
Во время одного из полётов, врезался в провода высоковольтки:). Морда почти в мочалку, потроха все наружу. Но, поскольку очень хотелось найти лекарство от раскачки, решил испытания не прекращать. Замотал мордочку скотчем вместе с клубком проводов и продолжил полёты.
Ставил различные комбинации, но лучше результат не становился. Лишь при комбинации Чувствительность 55%, резкость 50% самик резво развернулся на базу и, кажется без раскачки попытался лететь в мою сторону, но тут сдох акк и он плавно сел в 150 метрах от меня. Так что чистота эксперимента была нарушена.
Если интересно, есть видео с борта, как Изи, качаясь крутит круги вокруг меня. Но снимать начал уже после краша и видео (видимо из-за него) ужастного качества.

baychi
sptry:

670 при замыкании выхода ОУ на землю - не совсем понятно, земля из-за ненулевого сопротивления проводков приподнимается на ((670/16)/1023)*4.96=0.2В. Многовато.

На всякий случай прозвонил эти цепи. Неполядок не выявил. Сопротивление от разъема до ножки меги - строго 1 кОм. Единственное, что смутило - при неподключенных разъемах приодатчиков, на всех входах АЦП - 16368. Ты там случайно подтяжку к +5 В не включил?

smalltim:

Пожалуйста, оберни самик или пиродатчики например полотенцем, чтобы обеспечить нулевую разницу температур, и напиши, какие напряжения получаются на разъемах голов и все числа, которые КП говорит на странице диагностики горизонта.

С полотенцем: нейтраль XY=8610 U=2.50 В
нейтраль Z=8160 U=2.48 В
X=8680; U=2.50 В;
Y=8576; U=2.53 В;
Z=8512; U=2.48 В

При посадке всех входов, кроме Z нейтрали на GND, КП показывает - 670-672;
При замыкании на +5 В, на всех входах - 16368.

670 - похоже на делитель 1к/10к, если предположить включенную подтяжку к +5В. 😃

baychi
sptry:

Во время одного из полётов, врезался в провода высоковольтки

Видимо ЛЭП была достаточно высоковольтной, с большим расстоянием между проводами. На 6/10 кВ изик легко мог бы перекрыть фазы, и тогда Вы бы не мордочку скотчем заматывали, а в угольках копались. Повезло. 😃

kulikof

господа подскажите почему такая большая разница в показаниях между джипс и бариками, особенно высота

sptry

Наверняка у обоих датчиков существуют свои погрешности и они, накладываясь, дают ощутимую разницу в показаниях.
Дмитрий, как Вы выводите такие графики? Научите. Хотелось бы и у себя такие сравнения сделать.

kulikof

1 лог из АП скачиваете
2 делаете импорт в ексель, разделитель точка с зяпятой
3 выделяете нужный столбец и жмакаете кнопку построить график

ексель может зависнуть если будет большое количество значений в графике, лучше не превышать 1000

sptry:

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

а мне кажется что математика от Тима виновата
чем больше высота тем больше разница в показаниях

давайте сравнимся, выложите плз графики логов ваших полетов

nmrz

возможно, не совсем верный алгоритм температурной коррекции (либо неточное измерение забортной температуры по той или иной причине)

насчет скорости тут все просто - по ветру путевая скорость (по GPS) больше чем воздушная, против ветра наоборот, что и видно по графику

baychi
kulikof:

а мне кажется что математика от Тима виновата чем больше высота тем больше разница в показаниях

Выведите параллельно график температуры. На 800 м падение температуры должно быть порядка 5 градусов, по сравнению с началом полета.
Как у Вас стоит термодатчик?

smalltim

Внутренние резисторы подтяжки включены, да. Неужели они работают даже когда функция порта меняется с обычного ввода-вывода на работу АЦП?

Коли так, позор мне, надо доки внимательней читать. Наверняка там где-то мелким шрифтом, как говорится…

По поводу отличия баровысоты от ГПС высоты - я сам голову ломаю, математику проверил, всё ок, температура корректная, да и не даст она такой погрешности. Я даже график погрешности построил. Чем больше высота, тем меньше влияние разной инерционности баро и гпс (баро шустрее) и тем ближе чоотношение высот к 1.12, т.е. баро на 12% завышает.

Помедитировать на код у меня вреиени не было, летать надо было.
Прилечу- вылечим, фигня.

baychi
smalltim:

По поводу отличия баровысоты от ГПС высоты

Не помню что-бы в прошлом году у меня существенно отличались баро и GPS высота. Летал и на 750 м и на 830 м. Вечером дома еще раз гляну те ролики, но по памяти - значимой разницы там не было. По крайней мере по доступным роликам, что выложены на Vimeo - до 400 м расхождения высот - нет.

smalltim:

Внутренние резисторы подтяжки включены, да.

Тогда попробую их пока аппаратно скомпенсировать. Не помнишь, там 20 кОм или 22?

sptry
kulikof:

давайте сравнимся, выложите плз графики логов ваших полетов

Спасибо за науку, графики освоил! Пока у меня телеметрия не работает - соответственно нет бароданных в логах. Просмотрел старые видеозаписи с телеметрией - максимальная разница 10-12 метров на высоте 300м, баро показывает больше.

serj
smalltim:

Внутренние резисторы подтяжки включены, да. Неужели они работают даже когда функция порта меняется с обычного ввода-вывода на работу АЦП?
.

Да, если порт настроен на вход, то без разницы включен ацп или нет. Подтяжки работают как и работали.
Это тебе не кортекс с 8 битами конфигурации каждой ноги 😃

smalltim

Спасибо, baychi, serj.
Точно помню, что на старом АП я не включал подтяжки. На новом - на ППМ входах точно есть, а на порту с АЦП - не помню.

Мне кажется, аппаратно компенсировать не стоит, я уже скоро вернусь.
Пока скачаю доку на Мегу, помедитирую.

baychi
smalltim:

Мне кажется, аппаратно компенсировать не стоит, я уже скоро вернусь.

У меня из всех праздников, хорошо если завтра полетать получится. 4 SMD резистора можно за 15 минут прям на разъем припаять. Потом отпаяю. Просто без этого Изя на автопилоте не полетит, пробывал уже. 😃

Dronavt

Только что вернулся с полетушек.
АП Изика таскает, но несколько “грубовато”. В чем это проявилось - пойму просмотрев видюшку в спокойной обстановке. Смутила скорость, с которой он носился в круге, хотя было выставлено удержание скорости.
Провел небольшую выборку по своим записям относительно GPS и баро. Разница действительно есть, причем накапливается с набором высоты. Самая маленькая дельта получилась с “зеленой” телеметрией, причем в минус. Тогда как нынче баро опережает GPS.
Выборка здесь.
Цветами резделены полетные дни. “Зеленая” платка самая нижняя. Выборки делались наугад, в прямолинейном полете.

kulikof

на графике скорости в момент когда был включен пилот (с 630 по 720 точку) видно что пилот не держит заданную скорость 45 кс/ч а носится на скорости от 50 до 75 км/ч по барику

глюк?

Dronavt

Вот видюшка сегодняшних полетушек. При спокойном просмотре неадектватного поведения не обнаружил. Жестокое кабрирование убралось. Резковато рулит по крену - дело настроек.
Из интересных моментов - при курсе на базу держит целевую скорость, при развороте над базой (читай уход от базы) начинает разгоняться. Нужно будет попробовать повторить еще разок.