Ардукоптер: прошивки, настройки, софт

alexeykozin

Имхо встроенный жпс “редкостное гавно” не зря есть опция купить без него.
есть в точь таком же формфакторе пин-совместимая модель как говорится “на три рубля дороже”
но уже на чипсете MT3339 он гораздо более чувствительный, с прошивой axn 2.10

тот что идет в комплекте globaltop pa6b
тот который новая, хорошая модель pa6c

как отличить - на сериал номере что на бумажке сбоку антенны
если написано p6 а дальше цифры - это B модель
а если P6C а дальше цифры - это C модель

Sir_Alex
alexeykozin:

Имхо встроенный жпс “редкостное гавно” не зря есть опция купить без него.

В чем заключается Г? У мну то же 3329, вроде пашет нормально.

alexeykozin
Sir_Alex:

В чем заключается Г? У мну то же 3329, вроде пашет нормально.

я пробовал порядка десятка модулей, втч несколько на чипсете 3329, некоторые из них вполне неплохие,
достаточно быстро ловят лок даже в неидеальных условиях, мало дрифтуют например quectell l10, безымянный китаец на 3329 после обновления прошивки.
конкретно PA6B у меня две штуки, одна интегрирована на APM2 а вторую купил отдельно в РФ, обе в тех же самых условиях что и остальные модули очень долго ловят лок (иногда вообще часами) а поймав его дают значительный дрифт как по координатам так и по высоте, я оставляю возможность, что возможно я такой невезучий что мне досталось два дефектных модуля подряд поэтому - ИМХО

Cеpж

Алексей, подскажите пожалуйста, можно ли к APM-1 подключить модуль GPS от мини тимометрии?
И использовать его для Арду и для телеметрии параллельно.

alexeykozin

если вопрос ко мне (тут много Алексеев) то втупую соединить тх двух устройств с rx gps модуля а tx модуля на два rx устройств - получателей нельзя,
каждое из управляющих устройств по цепи tx-> rx будет пытаться настроить жпс модуль на свой протокол, и скорость передачи данных.
Если одно из устройств умеет определять существующую скорость жпс модуля и подстраиваться под нее то вполне возможен вариант когда от управляющего устройства идет tx на rx gps
а tx gps модуля идет на RX обеих устройств параллельно.

насколько я понимаю в прошивках апм по умолчанию стоит автоопределение скорости модуля, передачи ему настройки на нужную скорость, и ожидания данных на этой скорости,
тоесть при таком коде APM не сможет работать по подключению только одного сигнала, но так как код открыт то тут ничего невозможного нет, важно только чтобы телеметрия и жпс модуль могли настраивать скорость порта, скорость обновления и перечень nmea строк необходимых для ардупилота.
Если же телеметрия сама умеет определять скорость жпс и довольствоваться теми строками которые идут с модуля (у такой обычно нет управляющего соединения tx телеметрии - rx gps, так было в китайской версии remzibi osd которую мне прислали ) то полное соединение делаем с АПМ а на rx телеметрии соединяем только tx gps и общий

Cеpж

Алексей, спасибо за подробное объяснение! Выходит - всё возможно! Ведь на телеметрию smalltim идёт только один сигнальный провод -TX.
А как разобраться куда что подключать? Ведь на штатном датчике шесть проводов, а на телеметрийном всего пять контактных площадок. И что в прошивке Арду надо поменять?


PS Хотя, я не уверен, что телеметрия умеет определять скорость. Возможно она настроена на единственную определённую… тогда, видимо, ничего не получится.

alexeykozin

наоборот если единственная определенная то все проще,
если не совпадет то подправить скорость в ардупилоте, важно чтобы это было чтото вменяемое порядка 38400 -57600 ибо при темпе выдачи данных 5 раз в секунду нужно хотябы 38400 а при 10Гц уже нужно 57600 для полного набора nmea строк.
для начала можно просто попробовать соединить, и если не пойдет попробовать подкрутить gps библиотечку

Cеpж

Выяснил - телеметрия работает на 38400. Пытаюсь разобраться в библиотеках GPS - пока тёмный лес… Прошивка 049. Нашёл там четыре библиотеки:
GPS_IMU,
GPS_MTK,
GPS_ NMEA,
GPS_UBLOX.
В какой и что поковырять?
Пока пробую подключить без изменения кода.

Cеpж

Попробовал подключиться. Телеметрия работает как прежде нормально, а Арду не видит датчика - ни в Пленере ни на плате (светодиод не мигает и не горит). Надо что-то в прошивке ковырять…

alexeykozin
Cеpж:

Выяснил - телеметрия работает на 38400. Пытаюсь разобраться в библиотеках GPS - пока тёмный лес… Прошивка 049. Нашёл там четыре библиотеки:
GPS_IMU,
GPS_MTK,
GPS_ NMEA,
GPS_UBLOX.
В какой и что поковырять?
Пока пробую подключить без изменения кода.

судя по прошивке 049
попробуйте:
добавить в файл defines.h сделующую строку
# define GPS_PROTOCOL GPS_PROTOCOL_NMEA
чтоб получилось так:

//////////////////////////////////////////////////////////////////////////////
// GPS_PROTOCOL
//

# define GPS_PROTOCOL GPS_PROTOCOL_NMEA

#ifndef GPS_PROTOCOL
# define GPS_PROTOCOL GPS_PROTOCOL_AUTO
#endif

а скорость 38400 установлена для Serial1
в system.pde процедуре инициализации ардупилота

// GPS serial port.
//
// Not used if the IMU/X-Plane GPS is in use.
//
// XXX currently the EM406 (SiRF receiver) is nominally configured
// at 57600, however it’s not been supported to date. We should
// probably standardise on 38400.
//
// XXX the 128 byte receive buffer may be too small for NMEA, depending
// on the message set configured.
//
#if GPS_PROTOCOL != GPS_PROTOCOL_IMU
Serial1.begin(38400, 128, 16);
#endif

Covax

Серж, сделайте как здесь написано www.rcgroups.com/forums/attachment.php?attachmenti…, все заработает. Правда там чуток поискать надо где эти строчки теперь лежат. В 49й все изменения происходят вот в этих файлах, библиотеки править не нужно:

ArduCopter49.zip

Cеpж

Код в прошивке изменил (спасибо Алексею и Сергею - пригодилась информация от обоих).Добавил строку:
# define GPS_PROTOCOL GPS_PROTOCOL_NMEA
Сигнал с датчика проходит на Арду, есть определение координат в пленере! Индикация фиксации координат на плате АРМ работает как обычно (моргает потом горит). Попробовал не использовать сигнал ТХ от АРМ к датчику (разрывал контакт, перевключал) - всё работает!
Но… Смалтим телеметрия не показывает координаты и прочие данные , хотя количество спутников показывает правильно. Разбираюсь с телеметрией.

alexeykozin

скорее всегоардупилот изменил набор строк, и нужной строки нет в списке,
надо у автора телеметрии уточнить список nmea строк необходимых ему и поменять в библиотеке AP_GPS
файл ap_gps_nmea.cpp в процедуре init строку инициализации пмтк (если жпс на мтк чипсете)

вот как строка выглядит по умолчанию
“$PMTK314,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n” // GGA & VTG once every fix
в ней включены “единичками” определенные строки,
нужно поменять нолики на единички в для тех нмеа строк которые нужны
описание команды $PMTK314 в доке по NMEA

Cеpж

Алексей, большое спасибо за подсказку, вроде всё получилось! В исходнике телеметрии разобраться не смог. Но, методом научного тыка, стал подставлять единички и информация на телеметрии появилась!
“$PMTK314,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n” // GGA & VTG once every fix

Так что - пока всё ок!Этот датчик намного чувствительней штатного и теперь я вижу, что поступает на АРМ от ЖПС!

alexeykozin

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

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

serfot32

ArduCopter 2,4 - кто тестил, новую прошивку, отпишитесь?

serfot32

не удержался и обновился на 2,4
первые впечатление хорошие, пока только на квартире висел.
ЗЫ на arduino-0100-relax эта проша тест проходит 😃, не то что 2,3 - калл

Cеpж

Смело! Ждём полевых испытаний.