flybrain. передатчик + приемник + автопилот. powered by stm32

AlexSneg
hav22:

Вообщем мистика. Надо будет попросить Алексея добавить возможность полного сброса содержимого микросхемы флеш памяти (она кстати это умеет сама аппаратно делать), что бы в совсем тяжелых случаях можно было бы начинать с нуля.

PAF:

Алексей? Что это было? Можно подробней? Кнопка это…? То есть сбросить в дефолт все настройки всего? И снова прописать свой же конфиг?

Жмем кнопку, подаем питание. Как начнет мигать светодиод с интервалом в 1 сек, отпускаем кнопку. После этого входим в консоль и даем команду save config

Данные действия загружают начальные значения конфига в память в обход флешки. Чтобы сохранить их надо давать команду save config в КП. Нет гарантий, что начальные значения всем подойдут, но они гарантируют отсутствие глючных, изначально не заданных значений каких-либо переменных. В частности настройку ИМУ и компаса придется задать заново. Но там все быстро, и вроде как параметры налётаны.

hav22:

информация обновляется ровно через каждые 12 секунд. Если например в терминале набрать “mon on baro” (или любой другой датчик), то строчки будут появляться по одной через каждые 12 сек.

Пинцип работы с ЮСБ со стороны АП- накидка данных в выходной внутренний буфер. По протоколу ЮСБ хост сам присылает прерывания выгребает этот буфер. Далее все прерывания ЮСБ и события по выдачи чего-либо в консоль находятся в самых низких приоритетах. То есть, есть вероятность, что какое-то частое событие с более высоком приоритетом не дает другим событиям отрабатываться.

Короче, похожий симптом с задержкой вывода в консоль может наступить из за сбоя I2C шины. Помониторь тестером напряжение питание, которое приходит на датчики. У меня на самой первой макетке питание приходило 3,1В. Так вот этого не хватало, и некоторые датчики вешали I2C.

Далее, если ОСД показывается на экране, то это явно не проблема кварца. Если кварц не запускается, то никакой картинки не будет.

Другим источником высокоприоритетных прерываний является СТДАПП. UART канал с ним работает на частоте 115200. Соответственно с ним или без него такой глюк произошел? Если с ним, выдернуть его, либо приемник.

Еще могу предположить, что поскольку глюк пропал после перезаписи дефолтных параметров, то скорее всего какой-то элемент ОСД с кривыми координатами мог гадить в жизненно-важное пространство ОЗУ. У меня нет в коде 100% защиты, от рисования ОСД чисто в видеобуфер. Если координаты выставить за пределы экрана, то может накрыть какие-то данные. Сброс параметров по кнопке гарантирует начальные координаты в пределах разрешенной видеопамяти. Дима с таким глюком никогда не сталкивался, так как я всегда давал ему платы с уже предустановленным конфигом. А у тебя и у Петра были прошивки, которые работали со старым ОСД версии 1. На вторую версию вы переключили конечно, а вот ресетили ли в дефолт все параметры, это вопрос…

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

PAF:

Их там три… красный, желтый, зеленый. (подозрительно…) Алексей, тот крайний, он красный…

Крайний красный светодиод показывает либо связь по ЮСБ, если кабель подключен (мигает), либо (без ЮСБ) показывает состояние связи с СТДАПП или приемником. Если горит - нет связи, если не горит, то связь есть.

hav22:

Как ведет себя объект (параллелепипед) в окне монитора IMU (в КП) в зависимости от наклона/поворота платы АП если изначально держать плату лицевой стороной (на которой стоит проц) вверх и USB разъемом к себе (аудио/видео разъемом к экрану).

Показометр горизонта в КП - это игрушка. Она может себя по всякому вести в зависимости от того как галочки на экране потыкать. Более того OpenGL своих глюков добавляет, особенно, когда YAW разрешено отслеживать.

Ставишь камеру на смолет, выводишь на телек с камеры. ОСД должно отслеживать горизонт при наклоне. Это единственно правильный вариант. А у тебя на видео оно с точностью до наоборот работает. Соответственно ты интуитивно параметрами реверса по рулям скомпенсировал. И всё бы ничего, но высотомер почему-то перестал работать. Не могу сказать почему, очень странное поведение. Не могло в дырку что-то попасть? Или может поток воздуха из какой-то щели туда задул? Не могло возникнуть давление избыточное в отсеке, где АП расположен, из за набегающего потока воздуха? Температура. Нет ли поблизости от BMP085 источников высокой температуры? По началу вроде работало, а потом резко переглючило. Закачай сюда лог чергного ящика этого полета, давай посмотрим на поведение высоты из лога.

по поводу алгоритмов снижения…
На этой неделе соберу все в кучу по новым фичам и испытаю на самолете. В принципе снижение сейчас должно быть более плавным. Дима правильно заметил, сейчас высота быстро падает, хотя попытки дифференцированного подхода к высоте в зависимости от расстояния у меня были заложены. Только это не срабатывает из-за задержки вариометра. У него лаг почти 2 сек. Соответственно оно как бы играет тангажом в результате. Здесь я тоже доработал, надо посмотреть как будет теперь.

Проблема то ведь в чем основная? А в том, что показание тангажа, не соответствуют реальному набору или сбросу высоты. В этом смысле меня радует оптимизм Тимофея, где он в своей теме недавно описывал алгоритм автовзлета с подбором тангажа. Конечно для того крыла, что у него на видео, на полном газу тангаж глубоко по фиг, оно и так ракетой в небо. А Скай в этом смысле очень тухлый аппарат. Он на небольшые углы тангажа начинает реагировать с задержкой до 2-3 секунд. И в Скае показания тангажа уж точно не отражают реальной ситуации с набором и сбросом. У меня была уже завязка на тангаж, так я на малой высоте в тестах, чуть в землю самолет не загнал, так как тангаж показывал +10, а самолет все равно еще снижался. Можно конечно требовать от пользователя добиться с помощью триммеровки тангажа именно реальной картины, но насколько это вообще разумное требование? А вот если не успели еще этот момент настроить, или не знаете как это сделать. И как быть в этом случае? Вообщем сейчас протестим, как поменялось поведение сброса высоты на автовозврате, перестало ли качать. Еще раз сопоставим показания тангажа и вариометра, там примем решение, на сколько доверять показаниям тангажа. Собственно самое гланое - малые высоты. Там решение надо принимать быстро и нет времени ждать, когда вариометр соизволит предоставить правильные показания.

Drou:

И вопрос возник, еще . АП рулит рудером или нет? Его самому надо подмиксовывать ?

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

AlexSneg
telion:

Наконец преодолел рубеж в 10км. Слетал почти ночью на 30 км.

Ни фига себе, 90 минут. У тебя там диванчик, минибар, пиво?
Ты принципиально летел до потери связи? Я бы не рискнул, наверное. Можно смело записываться в табличку рекордов Александра (Баучи)

telion
AlexSneg:

Ни фига себе, 90 минут. У тебя там диванчик, минибар, пиво?
Ты принципиально летел до потери связи? Я бы не рискнул, наверное. Можно смело записываться в табличку рекордов Александра (Баучи)

С приездом!
Да, диванчик был бы в самый раз, да и все остальное тоже не помешает 😉
В этом полете тестировали патч на РУ и ВМГ, на АП была возложена задача возврата самолета. Я как бы АП доверяю, так что я рискнул, всеж уже больше 200 часов с ним налетал! Кстати, во всех моих полетах рудер не в ту сторону работал. В общем, тест его нужен.
В табличку уже записался 😃

PAF

Сижу, пытаюсь сообразить, что могло убить проц? АП был упакован, соединен с СТДАПП шлейфом и подсоединена батарея. Закончив с видео, снял гнездо и убирая со стола крыло сдвинул СТДАПП уголком к АП соединение произошло со стороны разъема видео. Хочу сообразить, что еще кроме проца может понадобиться? Питание, ОСД?

AlexSneg
PAF:

Хочу сообразить, что еще кроме проца может понадобиться? Питание, ОСД?

Если честно я так и не понял, у тебя 12В от видео попало на какой-то пин разъема?

telion:

Кстати, во всех моих полетах рудер не в ту сторону работал. В общем, тест его нужен.

Да, будет на днях. Вчера не успел еще все новинки на самолете проверить.

PAF

перевенутый СТДАПП уголком въехал под штырьки АП. На этом угле есть 5в. Поскольку заметил не в тот же момент видимо так около минуты оставалось. USB был отключен. Все рассоединил. Отключил батарею. Снова включаю. АП уже мертв. Измеряю, 3.5в с шлейфа - 0.в. Разъединяю - 3.5 есть.
Даю USB на АП, 3сек. МСР жжет палец.

EHOT
Сами_знаете

“революция стоит того если она умеет защищаться”

Предохранитель был? Эх, Петр, Вы не первый 😌

PAF
EHOT:

Предохранитель был? Эх, Петр, Вы не первый

Да вот, еще как то не сложилась картина происшедшего. Да и какой же предохранитель спасет, когда проц тихо умирает от повышения на десятые доли вольта?

EHOT

Я предполагаю, что при коротыше выгорел какой-то элемент. Ток ессно в скачок прыгнул. Если б стоял фьюз - мог бы разомкнуть питание. Фьюз, однако, не достаточное средство. Необходимое.
Хорошо б какой-либо монитор-откусыватель питания иметь.
Есть ли такие?

AlexSneg
PAF:

Даю USB на АП, 3сек. МСР жжет палец.

Если 5В пришло на штырь питания АП, то боюсь, что все очень печально. Оно попадет везде. Единственная надежда, что проц сгорел и замкнул шину ранее, чем что-то еще ёкнулось. 5В вырабатывается линейником, при КЗ он защиту включает. Соответственно, надеятся только на то, что что-то одно сгорело первым. Снимай проц, подавай питание. Если 3,3В появится, тогда есть надежда, что все остальное живо. В противном случае все равно по очереди снимать все микры и проверять, не появится ли 3,3В.

EHOT:

Предохранитель был? Эх, Петр, Вы не первый

Фьюз не спасает, он на ток реагирует. А если ток вылез за 1А, то уже поздно пить баржоми, все уже случилось.

EHOT:

Если б стоял фьюз - мог бы разомкнуть питание.

5В вырабатывается от 78L05 оно при токе 150мА само как фьюз сработает.

PAF
AlexSneg:

Если 5В пришло на штырь питания АП

Штырь был занят шлейфом. Оно могло попасть на штырь АП Video. И да, 7805 был теплый. Если МСР1702 дохнет 5 вольт пройдет сквозь?

AlexSneg
PAF:

Если МСР1702 дохнет 5 вольт пройдет сквозь?

Я думаю нет, хотя экспериментов таких не ставил.
Если 5В попало на видео штырь, то накрылся скорее всего либо ОУ, либо элементы логики, которые ОСД формируют. Процессор ну никак не мог получить 5В с разъема видео.

Если 5В попало на выход звука, то вообще ничего не могло случиться, так кондер разделительный, он не пропустит постоянку. Попробуй аккуратно снимать вентили с платы, может это они коротят землю и питание. А MCP греется так как КЗ присутствует из за какой-то дохлой микры.

Но реально я не вижу способа, как бы +5В могло повредить МК. Это напряжение контактирует только с ОУ и с двумя логическими буферами. Единственный момент - как поведет себя ОУ, если ему на вход подали больше, чем его напряжение питания. Не пропустит ли его на общее питание платы. Ну тут уж только гадать.

PAF

До проца я снял все что к ОСД. Со снятием проца кз ушло, шина 3.3 имеет к земле более 3кОм. Попробую подать питание Через СТДАПП? Снятый проц имеет коротыш 12, 18, 19, 31,32, 34, 63, 64

AlexSneg

Да. Подавай. Только сначала убедись, что он 3,5В вырабатывает правильно. Как подашь, привинти ГПС антенну. Дождись спутников, чтобы светик заморгал. Если моргать будет, то скорее всего только проц накрылся. Если бы реально 5В на питание пролезло, то ГПС модуль не смог бы выжить.

PAF
AlexSneg:

Если моргать будет,

GPS жив.

Drou

Доброго времени. Не могу откалибровать компас… брешет на 90 гр. Калибровал много раз… или что то в настройках не так стоит… Ибо вродь больше не жаловался никто…

telion
Drou:

брешет на 90 гр. Калибровал много раз

Денис, посмотрите описание к прошивке “FlyingBrain-0.1.0.255.zip”, начиная с нее ввели “магнитное склонение для вашей местности”. Посмотрите, возможно это ваш случай.

Drou

Нет:) оно выставлено нормально, и там ошибка до 10гр. максимум, игрался и этой настройкой тоже, не помогает…

AlexSneg

Для постановки диагноза давай сначала уточним вот что

Без относительно того, что север не в той стороне, куда показывает, если плату вращать вдоль горизонта, показания совпадают, не плывут? Например выбери какое-нибудь направление, засеки сколько YAW показывает в градусах, затем поверни плату, подожди секунд 30, затем верни в первое положение. Как в этом эксперименте ведет себя показания YAW (эти показания третий столбец в команде cat on stab). Есть ли плаванье или возвращается в изначальное (то, которое засек) значение? Если плывет, то как долго успокаивается.

Если плату положить и не трогать долго. YAW держится или уплывает?

Сделай дамп mon on magво время поворота платы в горизонте, кинь сюда, давай посмотрим. Значение X,Y должны меняться по закону синуса, Z должна быть константой (примерно).

Короче, компас это и есть YAW. Соответственно, заработает YAW, заработает и компас. И в принципе, не важно куда он показывает, главное, чтобы одинаково было и не плавал. Сделай cat imu, кинь сюда, давай посмотрим что там. заодно еще cat mag сделай.

Кстати, например, в машине у меня компас сходит с ума.

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

Drou
AlexSneg:

Сделай дамп

Во вложении 3 файла.
Компас не дрожит вращается хорошо (вродь) возвращается на место с точностью до градуса.
в логе сперва стоит на восток, потом на север, потом на восток.
Но вот вспомнил, что к плате приклеена шайба железная для утяжеления платы на антивибрационных подвесах… Но блин , имхо или компас бы не работал вообще…

mon_damp.rarmon_on_stab.rar

AlexSneg

EKF_Accel_Variance=10000.0000 исправить на 3000
EKF_Accel_Gravity_Cut_Off=0.3000 исправить на 0.15
EKF_Gyro_Use_Fir=0 исправть на 1
EKF_Accel_Use_Fir=0 исправить на 1
EKF_Mag_Use_Fir=0 исправить на 1
EKF_Accel_Freq_Fir=100.0 исправить на 4
Trimmer_Roll=3.748 пока поставить 0
Trimmer_Pitch=-1.248 пока поставить 0

Эти значения по умолчанию?
Mag_ref_x=0.200
Mag_ref_y=0.000
Mag_ref_z=-0.600

Если на 180 градусов вращать ось X (первая колонка) становится ли положительной? у тебя в логах она исключительно отрицательная.

читаем внимательно комменты
mozgolet-navigator.narod.ru/index/0-30

от 30.05.2013 и 27.05.2013

Для магнитометра сперва (если еще не делали), откалибровать и вращая плату в горизонте по сырым данным компаса убедиться, что составляющая Z остается примерно постоянной и должна быть в районе минус 0,7-0,5 (56-ой градус с.ш.) в зависимости от широты места проживания. Если этого добились, то удерживая плату в горизонте (по показаниям акселерометра, вытащите на экран одновременно и данные акселя и данные компаса) запишите на бумаге значение Z магнитометра. Затем, вращая плату в горизонте, найдите положение магнитометра, при котором значение X будет близко к нулю и в этот момент снимите показания по Y

Во-первых; необходимо настроить компас. Для этого сначала настроить магнитометр, как это описано в предыдущей прошивке. Важно! чтобы по X был минимум(в идеале 0), по Y - максимум с положительным знаком +, по Z - то отрицательное значение, которое намерили. Далее в новой КП в настройках стабилизатора на первой закладке необходимо вбить свое магнитное склонение для вашей местности.

Еще добавлю, что если ось Х магнитометра не обращается в ноль на каком-то этаме поворота, то МАГ не очень качественно калиброван. Либо ты калибровал его до того, как железку приделал снизу. X и Y должны попеременно то до максимума доходить (~0.2) то близко к нулю приближаться, короче зависимость SIN и COS, а ось Z должна оставаться неизменной ~0.7 или 0.6 (при условии, что плата вращается строго в горизонтальной плоскости)