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

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ж

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

Cеpж

Коллеги, нужна помощь.
Пытаюсь настроить режим FAILSAFE на ардукоптере. Он должен срабатывать при уровне газа менее 975μs. На такой уровень и нужно настроить фейлсейф на приёмнике. Но моя Турнига не хочет выдавать уровень меньше 989. Что делать?
Может можно где-то в прошивке коптера (049) увеличить это значение?

Cеpж

Извиняюсь за глупый вопрос выше, он исчерпан. Всё легко настраивается в пленере. Надеюсь завтра провести полевые испытания по фейлсейфу!

Cеpж

Проведённые сегодня испытания по автовозврату при потере сигнала потерпели полное фиаско.
При выключении приёмника, коптер глушит моторы и всё…
Настраивал так:
1 установил в пленере параметр THR_FAILSAFE 1
2 настроил FAILSAFE на приёмнике (минимально возможный газ)
3 настроил на передатчике уровень “нормально минимального газа” (больше чем при FAILSAFE)
4 откалибровал радио аппаратуру в пленере.
При проверке:
1 включил коптер
2 зафиксировал “базу” по ЖПС
3 отлетел более 10 метров (как указано в инструкции)
4 выключил передатчик.
5 фиаско.

Вопрос. Кому нибудь удалось настроить FAILSAFE?

Cеpж

Турнига, приёмник Спектрум. Аппаратура отрабатывает вроде нормально

Wishnu

А на турнигу можно поставить передатчик спектрум?
Приемник поддерживает фейл сейф?
Спрашиваю, потому что деволтный передатчик\приемник у турниги вообще фейл сейф не поддерживают

Cеpж

У меня стоит модуль Spektrum DM9. Приёмник 8 каналов, поддерживает FS. Работает не плохо.
По поводу настройки режима автовозврата по FS. Я понял так, что этот режим ещё в доработке и ожидается в новых прошивах.

Alex27111972
Cеpж:

Проведённые сегодня испытания по автовозврату при потере сигнала потерпели полное фиаско.
При выключении приёмника, коптер глушит моторы и всё…
Настраивал так:

Может я ужо от темы отошел, но чет как то все это муторно… Когда я баловался с файл сейвом (правда в полете не испытывал) было все проще на АПМ1, на вкладке где идет установка режимов, выключал передатчик, в планере сразу подсвечивалась определенная позиция, в которой соответственно выставляем тот режим который нужен (ну например РТЛ). Это касается старой прошивки ППМ меги 328-й. А то что написано в Вики, это уже про новую прошиву меги 328-й котррая появилась в ноябре 11-го года.

igor_v_t
Alex27111972:

Может я ужо от темы отошел, но чет как то все это муторно… Когда я баловался с файл сейвом (правда в полете не испытывал) было все проще на АПМ1, на вкладке где идет установка режимов, выключал передатчик, в планере сразу подсвечивалась определенная позиция, в которой соответственно выставляем тот режим который нужен (ну например РТЛ). Это касается старой прошивки ППМ меги 328-й. А то что написано в Вики, это уже про новую прошиву меги 328-й котррая появилась в ноябре 11-го года.

На АРМ 1 которая с Атмега 1280 при пропадании сигнала газ ставал на 900 остальные на 1500 и это было признаком пропадания сигнала и Вы интуитивно все првильно настроили. В новой прошивке мне пока не удалось выделить признак пропадания сигнала, поскольку система помнит последний. То что приемник помнит последний принятый сигнал не здорово, так как надо бы информацию о его пропадании иметь.