Полетные режимы вашего квадрика и направление на экране аппы
телеметрийный модуль + osd+ mavlink arduino все с одного порта?
да вроде все должно работать. попробуйте TX и GND с ардупилота раздать всем устройствам, а RX подключить только к одному - наиболее важному для вас. Также попробуйте вариант раздать все линии. Посчитайте питание устройств, при необходимости запитайте раздельно, а не все от ардупилота. Полетайте невысоко, понаблюдайте за просадками питания. Многим было бы интересно, если вы опишите результаты тестов здесь.
да вроде все должно работать. попробуйте TX и GND с ардупилота раздать всем устройствам, а RX подключить только к одному - наиболее важному для вас. Также попробуйте вариант раздать все линии. Посчитайте питание устройств, при необходимости запитайте раздельно, а не все от ардупилота. Полетайте невысоко, понаблюдайте за просадками питания. Многим было бы интересно, если вы опишите результаты тестов здесь.
Да конечно, но это не скоро.
- Проверьте MUX - он тоже может пострадать при проблемах при одновременном подключении отдельного источника питания и USB
- Можно использовать другой UART2, если UART0 спалили, но потребуется небольшое (пара строк кода) внесение изменений в исходники ардукоптера
и запайка джампера
Спасибо за ответ. В общем, ситуация сейчас следующая - Nano прошита нормально, активно мигает при старте, а потом с периодом 1сек, и при подключении D5 на аппе высвечивается NO MAV. Т.е. сигнал с Ардуино идет. На порту телеметрии сейчас “тишина” - получается, это у меня вылетел порт MUX TX/RX судя по схеме. Чем мне это грозит? Я так понимаю порт телеметрии можно джамперами перекинуть с MUX на UART2, подскажите - где это в прошивке править? На порту UART0 сигнал присутствует, т.е. он рабочий. Через USB связь есть. Получается, мне микросхему TS5A23157 нужно менять?
На порту UART0 сигнал присутствует, т.е. он рабочий
- Если живой, то попробуйте взять телеметрию не с разъема, а с боковых контактов UART0 - если будет работать, то можно и не менять ничего, просто будете вручную по очереди подключать разъемы USB/телеметрии.
- По ремонту MUX - позадавайте вопросы в соответствующей теме про ардупилот - наверняка люди помогут.
- Про UART0->UART2
запаяйте джампер и сделайте это:
This is done by modifying system.pde around line 149 to look like this(AC 3.1RC7).
//#if CONFIG_HAL_BOARD != HAL_BOARD_APM2 // we have a 2nd serial port for telemetry on all boards except // APM2. We actually do have one on APM2 but it isn’t necessary as // a MUX is used hal.uartC->begin(map_baudrate(g.serial3_baud, SERIAL3_BAUD), 128, 128); gcs3.init(hal.uartC); //#endif
Только сначала попробуйте залить в ардупилот старую версию ардукоптера, в которой уже поменян UART0 на UART2
теоретически данные должны пойти в стандартный порт телеметрии, только с UART2, независимо от состояния MUX
- Если живой, то попробуйте взять телеметрию не с разъема, а с боковых контактов UART0 - если будет работать, то можно и не менять ничего, просто будете вручную по очереди подключать разъемы USB/телеметрии.
Я ошибся - телеметрия живая, ее не было т.к. запитался от USB. В общем, проблема остается как была раньше - при подключении телеметрии в RX Arduino меняется вид сигнала.
См. осцилограммы. 1ая - сигнал телеметрии до подключения, вторая - после.
Похоже, разобрался:
- При подключении напрямую к UART0 - все заработало, сигнал в норме (как на 1 осциллограмме).
- При подключении к порту телеметрии - не работает, сигнал как на 2ой осцилограмме.
- Провел эксперимент - TX c порта телеметрии посадил через резистор 2к на шину +5в. И получил ровно такую же картину - просадку сигнала в сторону +5в как на 2ой осциллограмме.
Выводы: С порта TX телеметрии (MUX TX) идет очень слаботочный сигнал, который не предполагает наличии в цепи резисторов, подтягивающих на +5в шину. Т.е. сигнал не стандартный для TTL логики. На Arduino Nano стоит стандартный FTDI конвертер, который запитывается даже при отсутствии подключения USB, при этом лог “1” с TX FTDI заведена на RX Arduino через резистор 1к. В результате сигнал просаживается (осцилограмма 2) и прием от APM не работает.
Вообще, странно, в даташите на MUX микросхему TS5A23157 указан макс ток ключа 50 мА, подтяжка через 1к на +5в дает ток всего 5 мА, стандартная логика 74ALS держит при лог “0” 8 мА. В моем случае (не выпаивать же FTDI) поставлю стандартный TTL повторитель на 74ALS, надеюсь, все заработает.
P.S. Плохо, что в Er9X не видно пропадания связи с телеметрией, в OpenTX сразу пишется NO DATA.
Все, наконец дошло. Посмотрел по схеме, оказывается, UART0 подключен к микросхеме MUX через резистор 1к. В итоге при лог “0” с TX UART0 мы получаем делитель 2:1 (1к резистор в APM, 1к резистор в Arduino Nano). Значит на Nano нужно ставить повторитель. Надеюсь, мои изыскания кому-то пригодятся. Не все Arduino “одинаково полезны”.
при подключении телеметрии в RX Arduino меняется вид сигнала.
а как сейчас организовано питание и что с землей?
Плохо, что в Er9X не видно пропадания связи с телеметрией, в OpenTX сразу пишется NO DATA.
В новой версии это реализовано следующим образом: при пропадании сигнала телеметрии начинает мигать строка с полетным режимом, армингом и числа в % RX TX
а как сейчас организовано питание и что с землей?
Земля с Arduino общая, 2 контура питания APM соединены перемычкой (т.е. +5в Inputs соединен с +5в Outputs). Питание от BEC в ESC.
Еще пожелание - отображать координаты GPS, при этом, если телеметрия пропала, отображать последние значение. Очень может помочь при поиске упавшего аппарата, и тогда FrSky хаб со своим датчиком можно спокойно убрать будет. Я так понимаю на один экран это уже не влезет, может быть можно сделать 2 экрана - один с оперативной информацией для полета, второй - дополнительной для контроля, поиска и т.п.
Еще пожелание - отображать координаты GPS, при этом, если телеметрия пропала, отображать последние значение.
на 4 экране телеметрии так реализовано. причем еще до меня. По крайней мере у меня так и работает - координаты на 4 экране отображаются всегда. При отсутствии связи они мигают.
А как прошить Hex в ардуинку а то что то не работает xloader я шью через Ft232, т.е. RX TX?
Сам отвечу, просто вовремя ресет нажать надо чтобы залило прошивку. Жалко времени нет шас так бы все проверил, но да ладно завтра.
А как прошить Hex в ардуинку а то что то не работает xloader я шью через Ft232, т.е. RX TX?
ну хотя бы логи или скриншоты дайте, а то так сложно помочь, когда никакой инфы нет.
может вам проще будет из Arduino IDE прошить:
- Скачиваете Arduino IDE
- Устанавливаете любой SVN клиент, например этот
- В командной строке “svn checkout er9x-frsky-mavlink.googlecode.com/svn/trunk/ er9x-frsky-mavlink” - скачиваются исходники
- Из появившейся папки er9x-frsky-mavlink/mavlink-driver/libraries устанавливаете в пару кликов библиотеки в Arduino IDE (погуглите - описание этого процесса легко найти)
- В Arduino IDE открываете файл er9x-frsky-mavlink/mavlink-driver/APM_Mavlink_to_FrSky/APM_Mavlink_to_FrSky.ino
- В Arduino IDE Сервис -> Плата -> выбираете вашу ардуину
- В Arduino IDE Сервис -> Порт -> выбираете ваш порт
- В Arduino IDE в панели инструментов жмете вторую кнопку слева (выглядит как стрелка вправо) - все компилируется и заливается в ардуину
- Profit!
ну хотя бы логи или скриншоты дайте, а то так сложно помочь, когда никакой инфы нет.
может вам проще будет из Arduino IDE прошить:
- Скачиваете Arduino IDE
- Устанавливаете любой SVN клиент, например этот
- В командной строке “svn checkout er9x-frsky-mavlink.googlecode.com/svn/trunk/ er9x-frsky-mavlink” - скачиваются исходники
- Из появившейся папки er9x-frsky-mavlink/mavlink-driver/libraries устанавливаете в пару кликов библиотеки в Arduino IDE (погуглите - описание этого процесса легко найти)
- В Arduino IDE открываете файл er9x-frsky-mavlink/mavlink-driver/APM_Mavlink_to_FrSky/APM_Mavlink_to_FrSky.ino
- В Arduino IDE Сервис -> Плата -> выбираете вашу ардуину
- В Arduino IDE Сервис -> Порт -> выбираете ваш порт
- В Arduino IDE в панели инструментов жмете вторую кнопку слева (выглядит как стрелка вправо) - все компилируется и заливается в ардуину
- Profit!
ОЙ спасибо! Прошил с помошью Arduino Hex Uploader and Programmer! как написал выше просто нада вовремя сбросить ардуинку.
Собрал с Arduino Nano, в цепи RX включил повторитель на КР1533ЛП16. Теперь все работает.
Спасибо за разработку, все работает. Вывел с Ардупилота 3 линии TX на телеметрию на ОСД и на ардуинку, без проблем а RX оставил только на телеметрию.
предложения приветствуются…
SCnt - satelites count. может нагляднее будет не SCnt, а CSat?
hdop - это аббревиатура, может лучше HDOP?
GAlt - по-мне, так вообще ненужный параметр
dhm - distance to home - опять аббревиатура, предлагаю DTH
“A - ток с датчика 3dr power module (или аналог)” и “напряжение батареи аппы” может быть местами поменять?
может нагляднее будет не SCnt, а CSat?
согласен. а может вообще просто “sat” ?
hdop - это аббревиатура, может лучше HDOP?
Тут маленькие буквы с умыслом - заглавные буквы перетягивают на себя акцент внимания.
В шрифте er9x почему-то цифры ощутимо меньше, чем буквы, даже по ширине.
Заглавные буквы подряд в количестве больше двух мне видятся “выпячивающимися” и заслоняют собой цифры. Хотя мое мнение может оказаться субъективным.
Можно проголосовать - кто за hdop - ставьте “Спасибо” за этот пост, а кто за HDOP - за предыдущий.
“A - ток с датчика 3dr power module (или аналог)” и “напряжение батареи аппы” может быть местами поменять?
напряжение лучше оставить в целях “совместимости” для тех кто уже привык, т.к. на остальных экранах телеметрии напряжение в этом же месте.
После сегодняшних полетов возник вопрос как показывает высоту в метрах сантиметрах или еще как? А то у меня на земле показывает 330 а на высоте 600 что это?
на остальных экранах телеметрии напряжение в этом же месте.
Вот кстати, этот параметр (напряжение аппы) можно вообще исключить - батарейка аппы вряд ли сядет во время полета, ни к чему отвлекать внимание пилота на нее. Тем более, что пульт можно настроить на критический уровень и он будет пищать.
Некорректно отображаются координаты GPS и и абсолютная высота над уровнем моря (на экране с координатами). Через FrSky хаб отображается корректно.
Очевидно, что число после точки нужно делить на 6000, чтобы корректно отображались доли минуты в десятичном формате. С высотой не понял - вроде в 10 раз больше, но тоже не точно.
Ниже пример в картинках (FrSky, Mavlink, Garmin):
Некорректно отображаются координаты GPS…
Корректно, только не в десятитысячных градуса, а в минутах и секундах.
0,9176 градуса это как раз 55 минут 7 секунд.
Нужно в десятитысячных, конечно, сделать если брать как стандарт “де факто” гугл мап и яндекс карты.
Только фирменный дисплей FrSky FLD-02 будет показывать с ошибкой тогда (там в минутах).
Корректно, только не в десятитысячных градуса, а в минутах и секундах.
0,9176 градуса это как раз 55 минут 7 секунд.
Нужно в десятитысячных, конечно, сделать если брать как стандарт “де факто” гугл мап и яндекс карты.
Только фирменный дисплей FrSky FLD-02 будет показывать с ошибкой тогда (там в минутах).
Да в общем, не важно в каком формате отображать, лишь бы он был стандартным и верно интерпретировался. Логично, что все, что идет после десятичной точки, должно быть долей в десятичном формате. Поэтому, либо нужно подвинуть точку на 2 знака вправо, либо отображать после запятой не секунды 0-59, а все-таки доли минуты. Нельзя ли отображать, как на скриншоте Garmin - там все четко и понятно.
А по высоте есть соображения? У меня в Mission Planner отображается корректная абсолютная высота над уровнем моря в параметре altasl
А нужна ли она:
абсолютная высота над уровнем моря
? Может достаточно высоты относительно Home?
А нужна ли она:? Может достаточно высоты относительно Home?
Конечно нужна, для поиска упавшего аппарата. Например, в горах, важно знать абсолютную высоту (речь идет не об основном экране, а об экране с координатами GPS).
По GPS высоте. В следующей версии, которая сейчас в работе, сделано так:
Пока дизарминг - получаем с ардуины и выводим на все экраны абсолютную высоту над уровнем моря в текущей точке, если имеем 2D или 3D Fix. Например, 88 метров. Далее арминг и взлет. Ардуина с контроллера получает высоту GPS, допустим 100м, вычитает 88м и посылает на пульт новое значение - 12м, которое отображается на всех экранах (и на стандартных, где предусмотрена GALT, и на нашем, пятом экране, с пометкой GAl - GPS altitude).
Да, для поиска упавшего аппарата в горах придется запомнить высоту в точке взлета и прибавить в уме к значению на экране.
Передача двух высот раздельно (и абсолютную и относительно точки взлета) с ардуины в пульт считаю непозволительно расточительным расходованием полосы пропускания, ограниченной аппаратно в телеметрии FrSky, величиной 9600 бит/с. (Именно по причине недостаточной ширины канала в новой версии не будет данных accX, accY, accZ).
Передавать весь полет абсолютную высоту над уровнем моря не вижу смысла, т.к. в уме трудно будет быстро высчитывать реальную высоту в процессе управления квадриком
GPS высота в полете может пригодится просто для информации, для сравнения с показаниями высотомера, ну и для нештатных ситуаций типа резкого изменения атмосферного давления, приводящего к искажению показаний высотомера, основанного на измерении давления. Сам с таким не сталкивался, но вроде такое вполне возможно.
Следует учитывать, что данные с высотомера передаются на пульт каждые 200мсек, а данные GPS примерно раз в секунду, поэтому показания в конкретный момент времени при наборе высоты или снижении могут различаться. При неизменном атмосферном давлении и зависанием аппарата в течение одной-двух секунд на одной высоте показания по GPS и по барометру должны быть одинаковые, с учетом VDOP.