Проект Мегапират на самик!
Где я не прав в этой цепочке ?
Вот здесь:
серва в ServoOUT встала в середину
Серва остаётся в положении, в которое Вы её оттриммировали для ровного полёта.
Read/Write считывает/сохраняет все настройки из/в память СУ.
выбор Frame type на главном экране?
В ручном полете я установил
Встречаю эту фразу уже не раз. Ничего понять не могу. Вы уже летаете на Иксе, или как?
Нет , пока тестирую на столе, жду GPS.
тьфу ты, черт, забыл совсем… аварийный возврат домой не включится, если высота над стартом ниже 30м. Во избежание, так сказать.
Это сделано чтоб не попер домой на земле? Но ведь то что он не летит можно определить по скорости относительно земли? А что будет при потере управления на 20 метрах в Manual режиме ?
данные от СУ на ногу Rx жпс-модуля проходят при включении питания?
Да, пакет проходит через несколько секунд после подключения батареи, как раз мотор пищать песенку начинает.
Но со стороны GPS-датчика ничего не изменяется, частота остается 10Гц. Я не против)
разделитель целой и дробной части должна быть точка. Мда, нужно срочно покончить с этим…
Разве для одной запущенной отдельно взятой программы нельзя объявить точку? Когда-то я использовал вроде переменную DecimalSeparator. Что-то аналогичное должно быть.
DecimalSeparator
Андрей, если бы дело заключалось только в самой программе, эта проблема даже не стояла бы. Проблема в том, что используется вызов javascript GoogleAPI методами OLE, лежащий на веб-странице в контейнере IE5. Параметры передаются через тип TVariant текстовой строкой, иначе вообще не работает. И оно плевать хотело, какой разделитель в системе - подавай точку, и все.
Если бы знал более вменяемый вариант лицензируемой для бесплатного пользования ГИС - обязательно применил бы. Все эти красивые 3D-глобусы, отображаемые в ардупилоте и других прогах, происходят из нелегального использования карт Google и легко могут быть подвергнуты судебному иску. Хотя бы за кеширование карт.
не буду тут лить, варианты какие-то должны быть. Еще бывают вылеты, когда отлеживается наземка с подключенным СУ, а тут в другом окне я чего-нибудь плотное загружать начинаю, особенно после постоя машины. Вот тут “бумс, бумс, бумс…” начинается размножение сообщений… Ну зато вспоминаю, что не отключил…
вызов javascript GoogleAPI
а обработки исключений там нет? Я с этой штукой не знаком, пардон, но вроде такие уважаемые авторы (google таки), совсем что ли сырец предлагают, хоть и бесплатно?
Ладно, не буду отвлекать… Сегодня вожусь с ОСД, на разные телики результаты разные, только на одном старом ЭЛТ удовлетворительно показывает, но и на нем синхронизация срывается когда шевелятся машинки. Накинул блокировочных кондеров на сервовыходах, ощутимо не помогло.
а обработки исключений там нет? Я с этой штукой не знаком, пардон, но вроде такие уважаемые авторы (google таки), совсем что ли сырец предлагают, хоть и бесплатно?
Попробую проанализировать.
Гугл тут как бы и ни при чем. Вылетают не ошибки Exception, которые являются осознанным ответом драйвера на некорректное действие, а ошибки доступа к памяти, которые выбрасывает менеджер памяти виндовс на уровне ядра. Т.е. происходит запись в сегмент памяти, который был выделен для функции, но потом кем-то стал занят или освободился.
Как их перехватывать, я не знаю.
Периодический вылет этих окошек совпадает с поступлением очередного пакета с координатами от СУ. При этом инициируется длинная цепочка процедур по вызову JavaScript через OLE, дабы отобразить текущие координаты на карте гугла.
Функция вызова скрипта внутри контейнера OLE, т.е. внутри IE5, сперва проверяет наличие в нем непустого хандлера HTTP-документа, потом составляет список джава-скриптов, содержащихся в нем, потом ищет наличие требуемого скрипта, пытается передать в него параметры и получить ответ.
При отсутствии чего-либо в цепочке, возвращается пустой ответ и ничего не должно рухнуть. По теории.
На практике, судя по всему, при задержке выполнения из-за загрузки компа или еще как-нибудь, иногда получается два одновременных вызова javascript через один хандлер. И при этом все разрушается так хитро, что вроде и все элементы в цепочке есть, и скрипт есть, но адрес его хандлера неправильный, и в результате прога пишет данные куда не надо, и виндовс начинает ее посылать. Как это отловить - большая проблема.
Череда окошек может возникнуть даже при таскании мышкой карты в окне.
По поводу выбора ГИС я имел в виду уже готовые библиотеки под С++, а не браузерную страницу, как сделано сейчас. Бесплатных и при этом без нарушения лицензии использования - нет.
то сделано чтоб не попер домой на земле? Но ведь то что он не летит можно определить по скорости относительно земли? А что будет при потере управления на 20 метрах в Manual режиме ?
Ничего не будет, кроме надписи на ОСД.
Мера временная, далее будет сделано более четкое определение, что модель побывала в воздухе и все еще в нем находится, т.е. можно ли наваливать газ и тащиться домой. Даже с отрицательных высот.
Ладно, не буду отвлекать… Сегодня вожусь с ОСД, на разные телики результаты разные, только на одном старом ЭЛТ удовлетворительно показывает, но и на нем синхронизация срывается когда шевелятся машинки. Накинул блокировочных кондеров на сервовыходах, ощутимо не помогло.
У меня сегодня была такая же проблема - думал проблема в плате (уже хотел писать Игорю…) - при шевелении платы или с пульта сервой срывалась синхра на ОСД с уходом в черточки (проверил на четырех сервах - две аналог одна цифра, одна аналог Футаба…) - думал пипец…
Потом догодался сменить внешний импульсный ВЕС на регуль (испытывал на столе - вместо движка включил серву и питал все от ВЕСка…) - при подключении регуля со своим ВЕСом - симптомы пропали полностью! Возможно ВЕС какал в канал или его нехватало (заметил уже раньше на нем - с цифрами он явно не дружит…).
Попробуй…
У меня тоже сервы влияли на сигнал, стал использовать отдельный бек, стало все нормально. На квадрике эта проблема отсутствует, т.к. серв нет.
Олег, что бы нам придумать с разными углами обзора камер, вопрос остается открытым.
Сегодня вожусь с ОСД, на разные телики результаты разные, только на одном старом ЭЛТ удовлетворительно показывает, но и на нем синхронизация срывается когда шевелятся машинки.
при шевелении платы или с пульта сервой срывалась синхра на ОСД с
У меня тоже сервы влияли на сигнал,
Есть простое решение, вернее, схема подключения.
Камера и видеопередатчик должны подключаться землей непосредственно к СУ, и никуда больше. От СУ уже землю к батарее и проч. разводить с разъема Batt и сервоколодки. Т.е. плата СУ - это “центр вселенной” по земле.
Если вам кто-то портит питание: регуль или внешний ВЕС - уберите (поднимите) VD5, который рядом с Audio, и питайте СУ через ВАТТ1.
что бы нам придумать с разными углами обзора камер
Придумывать особо не надо: у меня еще со времен bvHUD в коде ОСД есть отдельный параметр viewport scale - “угол обзора” - который сейчас фиксирован под мою камерку. Остается вывести его на наземку - и все.
Добавил в баглист
===
Посмотрел сейчас, проект Х на СТМ32 завтра разменяет 4-й месяц своей жизни, если судить по баглисту. Папка весит 124 МБ со всеми субпроектами, тестбенчами и утилитками. 1170 файлов, из них даташитов штук 20 на 30 мб. Удивляюсь, когда успел столько набыдлокодить 😃 Большая часть, наверно, штатные библиотеки stdperiph.
===
НАЗЕМКА, обновление 9
Сделана предзагрузка карты при запуске программы.
Предотвращение одновременного вызова javascript несколькими процедурами.
Смена разделителя параметров на @. Должно победить вылеты с региональной “запятой”. Также теперь можно в строке поиска использовать пунктуацию.
Сделана предзагрузка карты при запуске программы.
Ага, прогруз при запуске программы чувствуется, лучше не торопиться с нажатиями кнопок… Но сообщения пока летят. Появилось новое сообщение (‘?-W’ is not a valid integer value.) Если ничего не делать, после долбежки по ушам программа сама вылетает совсем.
Значит, так и сделаем: Alt GPS будет показывать высоту по GPS абсолютную, баро - высоту над точкой старта.
А AltASL и AltGPS пока не трогал в наземке? Я не гоню, ни в коем случае… Интересуюсь)
Серва остаётся в положении, в которое Вы её оттриммировали для ровного полёта.
Read/Write считывает/сохраняет все настройки из/в память СУ.
Игорь, большое спасибо за помощь.
Только что провел эксперимент на столе.
Режим - Manual.
Отклоняю стик элеронов вправо до конца, 1 канал ушел в максимум(по RadioIN), серва 1 ушла в максимум(по servoOUT)
Нажимаю Neutral продолжая держать стик - 1 канал ушел в середину, серва тоже вернулась в середину.
Куда копать.
Никак не могу понять про запрет включения автопилота на маленькой высоте. Почему не будет работать следующая схема:
Высота > 30 - включаем автопилот
Высота < 30 и скорость по GPS > N - включаем автопилот
Высота < 30 и скорость по GPS < N - НЕ включаем автопилот
Наверное тут не все так просто…
Олег, может вы поможете разобраться.
P.S. Про переключение в Stable из Manual при пропадании управления.
Это неправильно, поправил в 2.0.2417
Проверил только что, после пропадания сигнала остается так же в Manual, сервы встают в середину. А вот после появлени сигнала - переключается в Stable, хотя канал управления (5) дает сигнал для Manual.
тьфу ты, опять появились окошки 😦 Откатил версию наземки назад. Разбираюсь.
Отклоняю стик элеронов вправо до конца, 1 канал ушел в максимум(по RadioIN), серва 1 ушла в максимум(по servoOUT)
Нажимаю Neutral продолжая держать стик - 1 канал ушел в середину, серва тоже вернулась в середину.
так… если это в мануале, то что-то неправильно у меня. В мануале должно оставаться, как было. Реакция на кнопку должна быть только в стабе. Сейчас исправлю.
Разрешать включение автопилота внизу при определенной скорости - значит не включать, если, скажем, самолет почти висит против ветра у земли, скрытый за препятствием и связь пропала.
Разрешать включение автопилота внизу при определенной скорости - значит не включать, если, скажем, самолет почти висит против ветра у земли, скрытый за препятствием и связь пропала.
Да, я понимаю что в этом случае автопилот не включится, но сейчас то автопилот не включится вне зависимости от скорости. Мое предложение расширить область действия автопилота. То есть если самолет летит низко и не против ветра - его спасет автопилот, сейчас как я понимаю автопилот просто не запустится.
Баг с триммерами устранен (попытка №2)
Включение возврата теперь будет, если скорость >20 кмч. И пофигу на высоту.
2.0.2422
Включение стабле в ФС не досмотрел, на окошки забил до завтра. Спатььььь
после пропадания сигнала остается так же в Manual, сервы встают в середину.
а где вы смотрите, что мануал? в окошке autopilot setup? или в navigation главного окна?
а где вы смотрите, что мануал? в окошке autopilot setup? или в navigation главного окна?
На главном экране, написано Manual. Еще я пытаюсь покрутить плату - серва не реагирует - значит не Stable.
Включение возврата теперь будет, если скорость >20 кмч. И пофигу на высоту.
2.0.2422
Ага, но теперь будут обделены те кто летит высоко против ветра… А так if (height>30) || (speed>20) нельзя ?
Включение возврата теперь будет, если скорость >20 кмч. И пофигу на высоту.
Аааааа!!! А мультироторы? У них скорость =0 и очень часто!!!
Аааааа!!! А мультироторы? У них скорость =0 и очень часто!!!
Я и предлагаю (height>30) OR (speed>20). Хотя про мультироторы тож как-то забыл в начале.
После этого алгоритма у нас остануться 2 опасных варианта
1.Самолет летящий низко против ветра
2.Коптер висящий низко.
Есть идея. А что если в этих случаях попытаться поуправлять моделью и посмотреть на реакцию то есть:
Вывести в горизонт. Если после пропадания управления уже была в горизонте то крен 10 градусов и обратно (для коптеров можно YAW).
Посмотреть на отклик - если все ок - значит летим. если не ок - значит что-то не так, и нечего мучать модель ?
но теперь будут обделены те кто летит высоко против ветра
Аааааа!!! А мультироторы?
Писал же, мера временная!!! Зацепились, не пойми за что. Сергей, с триммерами вопрос теперь снят?