Итак перед этим проведены тесты показателей аналоговых сенсоров на прошивке 1.7, в плату сенсоров была закачана последняя версия прошивки, настроены параметры на используемый тип модуля GPS и включен бинарный вывод - именно этот формат понимает ардупилот в отличие от тестовой программы. В моем случае используется обычный NMEA GPS модультеперь следует соединить ее с платой ардупилота и проверить как они работают в комплексе. Первым делом мною было замечено, что плата сенсоров выждав несколько секунд после сброса (она в это время занимается калибровкой сенсоров, ее нужно выдерживать строго горизонтально и неподвижно) начинает непрерывным потоком выдавать данные с выхода TX на плату пилота вход RX и если попытаться в это время записать в ардупилот новую прошивку или изменившиеся настройки - произойдет ошибка. (но наоборот, плату сенсоров программировать в подключенном к пилоту состоянии можно) Подключаем плату сенсоров
Я сначала полагал что имеет смысл сделать на штыревых разъемах, но так как цепь D6-D8 имеет одноконтактное и соответственно слабое соединение или потребует еще одной вилки на плате сенсоров сбоку, я решил что оптимальнее соединить под пайку жгутом из мгтф закрепленным на краях платы (впоследствии попробую сделать соединение разъемным со стороны пилота, иму будет подключаться в неиспользуемый на стороне пилота GPS разъем ) дорабатываем плату ардупилота чтобы он мог не только стабилизировать крен и таганаж но и управление тягой: это важно канал газа! http://diydrones.com/profiles/blogs/important-ardupilot-users на плате ардупилота он не разведен! поэтому паяем проводками.В прошивке 2.7 в отличие от 2.6 добавлен канал киля - руль направления (RUDDER), для его использования дополнительные соединения выглядят так: Голубой провод подключать по пунктирной линии!!! Подключение приемника и тестирование входов пилота. Первым делом следует выбрать канал по выключателю на котором для ардупилота будет выбираться режим, лучше всего для этого подойдет канал к которому подключен трехпозиционный выключатель на пульте, это позволит использовать три любых режима из 7 возможных на ардупилоте для этого оставляем для первого полета первую позицию на ручном режиме, а два других выбираем любые. #define POSITION_1 MANUALПроверить попали ли значения тумблера в необходимые режимы возможно установив значение #define DEBUG_SUBSYSTEM 7 если плата сенсоров уже подключена то ее можно заблокировать нажатием кнопки сброс на все время загрузки прошивки, зажимаем кнопку и не отпуская ее заливаем установленные параметры. После окончания загрузки можно в окне терминала посмотреть результат переключения тумблера. Если тумблер у Вас только на два положения и его уровень невозможно смешать с другим тумблером, то будет возможно использовать лишь два режима, третий режим в этом случае возможен если приемник поддерживает программирование Failsafe режима - состояние выхода в случае потери сигнала передатчика, в этом случае следует установить уровень Failsafe на канале режима передатчика соответствующий уровню POSITION_2 это позволит использовать 1 и 3 режимы переключателем а 2 на случай потери сигнала. на случай если у приемника нет возможности запрограммировать уровень на управляющем канале в случае отключения приемника на средний уровень - можно включить функцию ардупилота которая по значению в канале газа выходящему из типовой кондиции PWM (импульсы с длительностью 1000 - 2000мс следующие с частотой 50гц) определит что приемник отключен и инициирует событие описанное в закладке events.pde #define THROTTLE_FAILSAFE 1 в версии ardupilot 2.7 есть константа для определения длительности PWM импульса в канале газа которую ардупилот признает как "отключение передатчика". В этом случае необходимо настроить в приемнике уровень сигнала в канале газа для режима "файлсэйф" ниже чем любое возможное значение при включенном приемнике (на аппаратуре "санва 8000" я оттримировал в минимум газ - 1012 мс, по новой сделал бинд - приемник запомнил файлсейф для газа, а затем на две позиции поднял триммер газа-чтобы при включенном приемнике значение газа было около 1060 мс) соответственно константу ставим на серединку#define THROTTLE_FS_VALUE 1045 проведенный тест показал, что событие файлсейф происходит, активизируется режим RTL, однако сервомашинки принимают значения приемника и не реагируют на автопилот если перед выключением приемника был установлен ручной режим - это вызвано тем что используемая мною модель приемника не использует фаилсейф на дискретном канале, используемом для управления режимами ардупилота, вместо чего он запоминает последнее значение этого канала и продолжает его выдавать в канал управления, оставляя аппаратный коммутатор подключенным к выходам приемника, при этом все усилия автопилота тщетны... думаю в некотрых передатчиках это не будет проблемой, а мне следует изучить прошивку atmini которая используется для контроля аппаратного переключателя. В случае установки ручного режима (MANUAL) сервоприводы подключаются через аппаратный коммутатор напрямую к приемнику, минуя процессор пилота, именно поэтому, по крайней мере в первых испытаниях, следует оставлять этот режим на первой позиции и осуществлять на нем взлет до безопасной высоты. После проверки работы переключателя режимов логично проконтролировать визуально остальные каналы, подключив сервоприводы и пошевелив платой сенсоров при выбранном режиме "стабилизация" каналы крена и тангажа должны отрабатывать в положение парирующее изменение позиции модели . Калибровка минимальных и максимальных значений по стабилизируемым каналам может быть определена в тесте "радио" и жестко задана в конфигурации либо может быть выбрана процедура автокалибровки при каждом старте, для чего задайте следующее значение: #define SET_RADIO_LIMITS 1 при этом потребуется всякий раз при включении питания переводить элероны и руль высоты в максимальные и минимальные позиции. фрагмент модуля radio.pde //Remind user every 10 seconds what is going on Serial.println("Reading radio limits:"); Компановка иму + ардупилот + Rembizi OSD Соединил таким образом чтобы и культурно и компактно и можно было разместить иму в центре вращения самолета, пилот рядом с приемником и штекерами сервомашинок, осд - систему рядом с передатчиком Для подключения к ардупилоту использован свободный в данной конфигурации разъем GPS, провод D6- D8 заведен на последний контакт ардупилота. Старый мастер в годы моего юношества, проработавший всю жизнь на "космос", научил меня залуживать мгтф чтобы припой заходил под оболочку и закреплять кабель наплате, с тем чтобы провода не обламывались. В конкретном случае кабель запаян одним концом в иму намертво, а со стороны пилота и осд - разъемные соединения Подобная компоновка оставляет все разъемы для программирования свободными что облегчает программирование и мониторинг. Исправление недоработок платы ардупилотВ ходе тестов по подключению платы сенсоров к ардупилоту мне показалось неудобным что если ИМУ подключена к ардупилоту - то для заливки прошивки или маршрута в ардупилот необходимо либо отключать шлейф ведущий к ИМУ либо зажимать на ИМУ сброс на весь период заливки данных. Чтобы этого неудобства избежать я внес исправления в дизайн платы ардупилота:
эта плата представлена в разделе продукция схема соединений комплекта плат предлагаемых на этом сайтеПитание от FTDI * - соединять если необходимо автоматически запитывать плату автопилота со стороны USB-FTDI адаптера во время программирования маршрута или замены прошивки, в противном случае необходимо подавать отдельное питание с другого источника. Питание от ESC* - соединять в случае если у вас не предусмотрен отдельный источник питания для автопилота. (Рекомендуется использовать отдельный регулятор напряжения) Особенности прошивок и их архивыв разделе Ardupilot |