Выбрать главу

Рис. 6.22. Настройка частоты обновления навигационных данных

Чем выше частота обновления данных, тем точнее работает функция позиционирования и удержания в полетном контроллере. В зависимости от модификации приемника и прошивки, некоторые модули u-blox могут работать с частотой 10 Гц. Но есть нюансы. Путем некоторых ухищрений, введя команду $PMTK220, 100*2F в ручном режиме, можно заставить любой приемник NEO-6 выдавать пакеты данных с частотой 10 Гц. Но если при этом сам чипсет приемника не способен производить измерения с частотой более 5 Гц, то очевидно, что при частоте вывода пакетов 10 Гц каждый пакет данных будет дублироваться, и реального прироста скорости обновления мы все равно не получим.

Чтобы проверить возможности вашего варианта приемника, введите в настройки следующие параметры: Measurement Period = 100 ms; Navigation Rate = 1. Если при этом поле Navigation Rate не становится розовым, а после нажатия кнопки Send под ней не появляется сообщение об ошибке, значит, ваш приемник может обновлять данные с частотой 10 Гц. В этом случае не забудьте увеличить скорость порта до 115 200 бод, иначе для передачи потока данных не хватит скорости порта.

Убедившись, что с новыми настройками приемник функционирует нормально, можете сохранить их в энергонезависимую память. В левом столбце выберите строку CFG (Config), в правой части установите переключатель Save current configuration (рис. 6.23) и нажмите кнопку Send. На этом настройка завершена. Перейдите в меню Tools | GNSS Configuration и сохраните текущую конфигурацию в отдельный файл. Это поможет при необходимости быстро восстановить настройки.

Рис. 6.23. Сохранение текущих настроек в энергонезависимую память

Подключение приемника к полетному контроллеру

Приемник подключается к порту SERIAL2, причем достаточно подключить лишь выход Тх ко входу Rx2 полетного контроллера, т. к. мы подключаем заранее настроенный приемник и настройка "на лету" средствами прошивки нам не понадобится.

В случае использования прошивки MultiWii 2.3 вносить изменения в настройки практически не потребуется. Необходимо найти следующие строки и убедиться, что они раскомментированы:

#define GPS_SERIAL 2

#define GPS_BAUD 57600

#define NMEA

#define MAG_DECLINATION x.xxf

Этих строк достаточно для того, чтобы начать использовать функцию GPS. Убедитесь, что параметр GPS_BAUD соответствует скорости последовательного порта приемника, а в параметре MAG_DECLINATION правильно указано магнитное склонение для вашей местности. Про настройку этого параметра было сказано ранее, в разделе о настройке прошивки MultiWii.

Строку //#define INIT_MTK_GPS в нашем случае следует оставить закомментированной. Она активирует процедуру автоматической настройки параметров приемников на основе чипсета МТК и в нашем случае не подходит для приемников u-blox.

Строка #define GPS_LED_INDICATOR включает мигание светодиода В при поступлении данных с приемника. Пока нет захвата спутников 3D Fix, светодиод мигает в такт поступающим пакетам данных с приемника. В режиме 3D Fix одна короткая вспышка соответствует пяти спутникам, две вспышки — шести спутникам и т. д.

Данным GPS присуща случайная погрешность, поэтому координаты пользователя не застывают в некой точке, а с каждым новым измерением "прыгают" внутри окружности, представляющей собой границы зоны погрешности. Соответственно, если квадрокоптер будет идеально отслеживать координаты каждого измерения, то в режиме удержания позиции он начнет хаотично метаться внутри окружности с радиусом 2–4 м. Поэтому данные GPS подвергают усреднению и фильтрации.

Строка #define GPS_LEEAD_FILTER активизирует режим предиктивной фильтрации, чтобы скомпенсировать задержку данных GPS, когда коптер быстро сменил позицию, а новые координаты еще не поступили. Алгоритм фильтра пытается ввести предсказание, координат на основании известного ранее вектора движения и данных об ускорениях с акселерометра.

Строку //#define GPS_FILTERTING лучше оставить закомментированной. Это фильтр с сильным усреднением для компенсации шумов данных, когда данные распределены внутри зоны погрешности чересчур хаотично. Фильтр вносит большую задержку в работу функции позиционирования. Может быть полезен при использовании старых модификаций приемников.