Smalltim OSD and autopilot (часть 2)
модель, летящая с скоростью ветра, поворачивает против ветра. Линейная скорость относительно земли всегда ноль (самолет висит над одной точкой), и ускорения никакого нет. Воздушная -есть.
Мы компенсируем ЦЕНТРОБЕЖНЫЕ УСКОРЕНИЯ, а они возникают от поворота и зависят только от скорости поворота и его радиуса.
Представьте себе что Земли нет. Мы в глубоком космосе. Разве от этого ускорения отменяются? 😃
Коллеги, я не отдыхаю уже, включаюсь в повседневный ритм.
Коллеги, про слет прошивок и питание я уже подробно описывал, но это было давно и, похоже, было не так актуально.
Опишу еще раз, тем более, что появились новые мысли.
На старте АП при подаче питания прошивка не слетает. Несмотря на медленное поднятие напряжения питания (специально сделан плавный старт импульсника) ничего такого не происходит. Почему, станет понятно после следующих абзацев.
Прошивка может повреждаться именно при отключении питания. Происходит это из-за включенной записи логов, и объясняется следующим:
Флешка под логи работает в страничном режиме, по 528 байт. Если проц в какой-то момент хочет записать лог в память, то он считывает страницу, обновляет ее часть, и записывает обратно во флешку. Так вот, если в момент попытки записать данные в лог отключить питание, то проц может успеть стартануть процесс чтения страницы и начать притухать или отресетиться из-за падения напряжения питания.
Флешка в этот момент продолжает лить в проц данные (до 528 байт) через интерфейс SPI, а это, при условии, что процессор находится в состоянии ресета, соответствует режиму программирования процессора. В итоге флешка вливает мусор в проц и прошивка портится.
BOD биты в проце стоят по дефолту, 011, что соответствует 2.6В. Флешка, по всей видимости, сохраняет работоспособность при меньшем напряжении питания, и исправно гонит данные в проц.
Решений проблемы может быть несколько:
-
Поднять BOD Level до 4В и выше. Через DFU программатор это никак не делается, только отдельным внешним программатором. Я посмотрю, можно ли заставить телеметрию ввести проц АП в режим программирования и обновить процу BOD биты.
-
Поставить аппаратный формирователь ресета. На новом железе так и сделано, но оно не выпускается пока.
-
Переделать алгоритм работы с флешкой, чтобы минимизировать или вовсе исключить вероятность жизни флешки собственной жизнью, пока проц полуживой после отключения питания.
Я как раз сейчас подумал, что при записи логов можно не считывать страницу памяти, всё равно она будет целиком перезаписана.
Обязательно изменю это и отправлю на проверку baychi, у него, как раз, “вредный” экземпляр АП.
В худшем случае при отключении питания пропадет страница с последними записями - несколько секунд работы АП.
Как временную меру сейчас можно отключить запись логов в Контрольной Панели, это практически убирает вероятность слета прошивок.
как самостоятельно рассчитать значение центробежного ускорения для ИМУ от Smalltim (без автопилота!)?
Линейную скорость в метрах в секунду умножайте на угловую скорость в радианах в секунду, получите величину ускорения.
Линейная скорость - скорость относительно земли по ГПС.
Угловая скорость - курс по ГПС сейчас минус курс по ГПС секунду назад, это надо перевести в радианы.
У меня ГПС 5-герцовый, поэтому я считаю сейчас минус 200 миллисекунд назад.
BOD биты в проце стоят по дефолту, 011,
Ты уверен? Проверял? А то в некоторых даташитах написано, что по дефолту там стоят 111 - BOD отключен. А в других 100. 😃
- Поставить аппаратный формирователь ресета.
Ясно. Как раз нашел AD706S с порогом в 2.93 В. Буду колхозить. Там кнопка ресета к +5 В подвешена внешним резистором или тока внутренним?
RESET флэешки с ресетом проца объединен, надеюсь?
Представьте себе что Земли нет. Мы в глубоком космосе. Разве от этого ускорения отменяются?
Александр, забавно, но именно этот пример, чуть ли не дословно хотел привести в доказательство своей правоты… 😃 Действительно был неправ, привязывая скорость к земле, а подразумевая некую инерциальную систему координат в не слишком искривленном пространстве… 😃 Для центробежного (ну строго говоря центростремительного…) ускорения не нужен воздух, не нужна земля, нужно только изменение направления линейной скорости. Как уже написал Тимофей, нехитрыми преобразованиями получаем: a=W^2*r; r=V/W; итого a=W*V;
Получается что по ветру V будет больше и, при той-же скорости поворота, ускорение будет больше…
Странно, почему Тимофей так сложно считает скорость поворота, ведь она в явном виде получается от гироскопа.
И даже самые старые алгоритмы банального DCM именно так корректирует центробежку…
Странно, почему Тимофей так сложно считает скорость поворота, ведь она в явном виде получается от гироскопа
Мне тоже странно. Тем более в КП это режим так и называется: коррекция по ДУС и воздушной скорости. 😃
- Поднять BOD Level до 4В и выше.
Это не поможет, если это верно.
при условии, что процессор находится в состоянии ресета, соответствует режиму программирования процессора.
Процу нужен порог ниже флешкиного.
Флешка в этот момент продолжает лить в проц данные (до 528 байт) через интерфейс SPI, а это, при условии, что процессор находится в состоянии ресета, соответствует режиму программирования процессора. В итоге флешка вливает мусор в проц и прошивка портится.
… Как временную меру сейчас можно отключить запись логов в Контрольной Панели, это практически убирает вероятность слета прошивок.
Глюк найден, это радостно, теперь хоть понятно почему и отчего это происходит. Значит с логом пока летаем только в тестовых полётах и ждём полноценного решения (повторюсь - многим и вариант паяльником памахать подойдет, так что если будет опубликовано промежуточное решение такого рода - будем и ему рады).
Мужики, покажите (лучше с фото) как разместить баро датчик скорости? Надо ли вставлять трубочки?
Коллеги, немного оффтопика. Я специально не заходил на форум пару дней, ибо как раз пару дней назад словил на нашем форуме локер виндовс, который уведомил, что я занимаюсь просмотрм всякого детского порно и прочей ерунды, виндовс мой заблокирован и мне теперь надо какому-то засранцу положить 2000 руб на счет, чтоб разблокировать виндовс.
Заразу я эту прибил сразу, но факт неприятен. Сделал пару дней отдыха от форума, пока администрация разбирается с засранцами.
Могу ошибаться, но, похоже, словил эту заразу именно на нашем форуме. Пользуюсь Интернет Эксплорером, не могу заставить себя перейти на всякие оперы и хромы.
Значит с логом пока летаем только в тестовых полётах и ждём полноценного решения
Обсудили это с Тимофеем по телефону. Есть одна программнная идея. Вечером или завтра опропробую ее на своем глючном комплекте. А уж если не поможет, запаяю супервизор.
Странно, почему Тимофей так сложно считает скорость поворота, ведь она в явном виде получается от гироскопа.
Я считаю в двух вариантах, по ГПС и по бародатчику скорости, выбор есть в Контрольной Панели.
Если считать по ГПС, то и скорость надо брать относительно земли, и угловую скорость по курсу относительно земли, иначе математика не имеет смысла и начинаются глупые вопросы с по ветру / против ветра.
Если считать по собственной скорости в воздухе, то (игнорируем скольжения) угловых скоростей с гироскопа достаточно.
Мужики, покажите (лучше с фото) как разместить баро датчик скорости? Надо ли вставлять трубочки?
Вывести тонкостенную трубку срезом в набегающий поток воздуха в любом удобном месте, но исключить места, где поток ускоряется или замедляется, обтекая детали модели. Т.е., если это передняя кромка крыла, то 1-2 см вперед от нее. Если это сбоку от фюзеляжа. то на 2-3 см вбок от стенки фюзеляжа.
Тонкостенную трубку можно удлинить до соска датчика, например, силиконовой трубкой . О сечении можно сильно не беспокоиться, мы не поток передаем на датчик, а давление.
Там кнопка ресета к +5 В подвешена внешним резистором или тока внутренним? RESET флэешки с ресетом проца объединен, надеюсь?
Ресет внешним резистором притянут к +5В. Ресет флешки и проца объединен.
Получается что по ветру V будет больше и, при той-же скорости поворота, ускорение будет больше…
Если использовать данные с гироскопов, то надо брать обязательно линейную скорость модели в воздухе, а не относительно земли.
Тогда все измерения будут делаться в подвижной системе отсчета, (в идеале инерциальной, т.е. равномерно и прямолинейно) движущейся вместе с воздушной средой, и вопросов не возникнет.
В барадатчике два соска. Оба надо так выводить?
Андрей, бародатчик скорости это датчик относительного давления, т.е. меряет разницу между давлениями на двух сосках. Как раз то, что нам надо для измерения скорости: на одном соске статическое давление воздуха на данной высоте, а на втором соске статическое плюс давление набегающего потока. Так что один сосок мы оставляем внутри фюзеляжа, а второй выводим на трубочку.
Тот сосок, что нужно выводить на трубочку, расположен дальше от ног датчика (ног подогнуты под брюхо датчика и угадываются под термоусадкой).
иначе математика не имеет смысла и начинаются глупые вопросы с по ветру / против ветра.
Не вижу никаких вопросов… Скорость поворота никак не зависит от по ветру или против… И именно ее в чистом виде с достаточной точностью дает гироскоп. Зависит только линейная, которую в чистом виде замерить невозможно… Если летать блинчиком с возможным ветром, лучше брать GPS. Если наворачивать вертикальный пилотаж в штиль- баро.
Ладно, больше не буду оффтопить…
Вот этот гпс модуль будет работать со смаллтим?
Да, только позаботьтесь о его питании. АП выдает на ГПС 5 вольт, а этому модулю надо 3.3 - 4.2В.
Да, только позаботьтесь о его питании. АП выдает на ГПС 5 вольт, а этому модулю надо 3.3 - 4.2В.
Если просто АП с мини ОСД подключить к КП и подключить модуль гпс, в диагностике должны быть какие то данные от гпс?
АП подключили 3 банками, соответственно. На гпс идет 3.3в.
Пока что то не работает. Никаких данных, обмена пакетами между гпс и АП не идет.
Толи что то делаем не так, толи модуль мертвый…
Пока что то не работает. Никаких данных, обмена пакетами между гпс и АП не идет. Толи что то делаем не так, толи модуль мертвый…
ГПС воткнули в АП или в телеметрию? Втыкайте в АП.
В диагностике он должен начать показывать, сколько NMEA сообщений в секунду приходит от модуля, даже если не нашел спутники.
Скорость COM порта на GPS надо выставить на 38400, 8N1
гпс идет 3.3в. Пока что то не работает.
Там нет батарейки. Значит навреняка один из контактов разъема предназначен для ее подключения. Соедините его с +3.3 В для начала, без этого модуль не запуститься. Наличие NMEA пакетов можно увидеть по слабому мерцанию зеленого светодиода на плате АП.
ГПС воткнули в АП или в телеметрию? Втыкайте в АП.
В диагностике он должен начать показывать, сколько NMEA сообщений в секунду приходит от модуля, даже если не нашел спутники.
Скорость COM порта на GPS надо выставить на 38400, 8N1
Все понятно, втыкали в осд! 😃
Спасибо!
Братья по секте Smalltim, начал вторую большую компанию против АП, в связи с этим вопрос - к АП подключаю только два пиродатчика,(OSD не подключен) размещаю все это хозяйство на капоте автомобиля на улице, питание и показания через USB при этом в контрольной панели КРЕН:самолет перевернут на 169 градусов (вверх ногами) ТаНГАЖ почти горизонтально. Крен приходит в норму только если XY датчики из горизонтальной плоскости повернуть в вертикальную. Это нормально? И как с этим бороться*?
Не могу найти то ли в инструкции то ли на форуме вроде видел, как миксовать каналы, если на каждый элерон своя сервомашинка? на передатчике включить микс флаппероны или только в автопилоте можно смешивать каналы? Если не трудно киньте ссылку…