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

igor_v_t
rattis:

Извините, я опять со своими дурацкими вопросами.
Поставил прошивку 2.0.49 (как уже писал, у меня APM 1.0 + IMU 1.4).
Парадокс!
В планере из терминала абсолютно все конфигурируется и тестируется, а стоит переконнектиться с переключателем в FLY-режиме - планер соединяется, но не видит никаких датчиков.
А из терминала все хорошо. И радио видит и моторы командой “motors” запускаются. И данные с ЖПС и прочих датчиков считываются.
Скажите, что я делаю не так. Ведь дело, мне кажется, в ерунде какой-то…
Заранее спасибо!

А я тут операционку на компе переставлял, так как без фреймворка терминал не запускался, а на тот ХР что был фреймворк как то криво ставился и не работало.

alexeykozin

у меня коротыш был на ноге управления blackbox eprom - планер коннектился через раз, то показывет сенсоры то пишет (при выводе терминального окна) о мавлинк чексум еррор

rattis

Я нашел косяк.
Дело в том, что в терминале не всегда проходит команда test -> imu.
Тут два варианта:

  1. Команда отрабатывается. После появдения надписи Init Gyro, нескольких звездочек и выдачи текущих значений переводим слайдер в режим полета и в планере в все датчики видны.
  2. Команда не отрабатывается. Звездочки бегут бесконечно. В планере ничего не работает.
    Проблема или в самих гирах или в процедуре их инициализации. Я склоняюсь к первому варианту.
    Почему? Даже если все нормально, достаточно несколько раз покачать плату и на экране видим беспорядочные кувыркания.
    Переходим в терминал - гира опять не инициализируется, бегут звездочки.
    Подскажите, что еще можно посмотреть или искать непропаи/залипания?

ЗЫ. Фотку платы в высоком разрешении постараюсь сделать завтра.

alexeykozin

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

igor_v_t
alexeykozin:

дело в том что гиры и аксель в апм1 аналоговые поэтому никаких цифровых глюков быть не может

Могут. Возился с баро MS 5611. Датчик читался неустойчиво. Поменял во втором слагаемом int на long в выражении " D = ((((long)buff1[0]) << 16) | (((long)buff1[1])<< 8) | buff1[2] );" и проблемы исчезли. Второй глюк был :
в выражении величина float была разделена на число без точки и стала long. А куски кода между прочим из библиотеки Арду.

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