16 February 2011

Строим мультикоптер, часть третья

DIY
Часть 1 | Часть 2 | Часть 3 | Часть 4

Продолжаем разминать мозги и получать новые навыки.




Пока мы мучили гироскопы и акселерометры, в головах и на бумаге вырисовалась более подробная схема аппарата, с учетом предположения, что функции стабилизации и остальные функции следовало бы разделить между двумя независимыми процессорами:


Компоненты мультикоптера


AHRS CPU — принимает от АЦП (к примеру, пусть это будут два недорогих MCP3208, работающих на шине SPI) оцифрованные данные от сенсоров (50 раз в секунду хватит за глаза), фильтрует их, вычисляет наклоны аппарата, вычисляет необходимые для стабилизации скорости вращения пропеллеров (возможно, алгоритмом ПИД-регулирования, самое простое и популярное), посылает значения этих скоростей контроллерам моторов шине I2C, а те, в свою очередь, питают моторы (векторное управление, если не ошибаюсь). Остается еще куча свободных ножек и немного вычислительных способностей, чтобы управлять сервомашинками, выравнивающими камеру (сервомашинки стандартно управляются ШИМ-сигналом).

Сенсоры — описанные ранее 3 гироскопа, 3-осевой акселерометр, 3-осевой магнитометр (замечательно показывает ориентацию в плоскости, параллельной земле), опционально — датчик давления для измерения высоты. Все датчики запросто можно брать аналоговыми, они дешевле, быстрым АЦП преобразованием займутся две вышеупомянутых микросхемки (у одной не хватит каналов).

Pilot CPU — непосредственно автопилот, задающий второму микроконтроллеру желаемый наклон аппарата и камеры и обеспечивающий связь с землей. Также он замеряет напряжение на батарее, получает координаты от GPS (возможно, чтобы летать по ключевым точкам, записанным на SD-карточке, либо записывать свой маршрут на нее же) и передает команды контроллеру камеры.

Camera control — микроконтроллер, который будет полезен для управления камерой (спуск, зум и прочее). Может передавать команды камере по ИК, или напрямую проводами.

Видеопередатчик — удобнее всего брать стандартный, такой используется в охранных видеосистемах.

Радиомодемы — можно взять популярную X-Bee, работающую по протоколам ZigBee (2,4 ГГц), но намного дешевле будет какой-нибудь модем на чипсете СС1100 (433 МГц), у него неплохие характеристики и детальный даташит.

В качестве пульта управления (а также для отображения состояния устройств) будет использоваться ноутбук, а для связи с модемом понадобится еще один микроконтроллер.

Проектирование главной платы


Для наших целей вполне хватит вычислительной мощности двух микроконтроллеров АТмега (под другие мы вообще не умеем писать софт), обвязка для них минимальная. Рисуем стандартную разводку портов ввода-вывода микроконтроллеров на коннекторы, к которым потом присоединим периферийные устройства на док-платах.

Важный момент в том, что периферийные устройства работают на разных напряжениях: сервомашинки и контроллеры моторов на 5 В, а модем, gps, сенсоры и sd-карточка — на 3,3. К счастью, распределение напряжений вышло выгодное. Микроконтроллер, отвечающий за стабилизацию мультикоптера будет работать на 5 В (это обеспечит нам еще и возможность использовать его на частоте 16 МГц), он же связан с пятивольтовой шиной I2C, ведущей к контроллерам моторов, и пятивольтовой SPI, подключенной к пятивольтовому же АЦП (с другой стороны АЦП сравнивает сигналы от трехвольтовых сенсоров с трехвольтовым reference, так что все сочетается). Микроконтроллер-пилот работает на 3,3 В (что ограничивает его тактовую частоту 8 МГц, но нам больше и не нужно), и связан со всей оставшейся периферией по 3,3 В шинам. Остается вопрос, как связать два микроконтроллера. Нам снова улыбнулась удача, осталась более-менее свободная шина I2C, которая имеет всего два провода и простую схему сопряжения напряжений:


Надо заметить, до этого я электроникой почти не занимался, и многое мне было в новинку. Но мне помогал мой соратник в нашем мультикоптерном деле (описанная схема была рождена в длительных с ним дискуссиях). Начинал я это все рисовать в Sprint Layout, однако оный товарищ посоветовал Proteus, и это был очень дельный совет. Proteus — замечательная и удобная система проектирования схем, так что я советую ее всем, кто собирается заниматься этим нелегким делом.

Далее рисуем схему со всеми нашими устройствами:


Не помню уже, почему я не захватил всю схему, когда готовил скриншоты к публикации, но в кадр не попало только пару коннекторов и блок питания, обеспечивающий нам раздельное питание 5 В, 3,3 В, и отдельно отфильтрованные 3,3 В для питания сенсоров.

Переключаемся в режим разводки платы, и тут начинается самый творческий процесс.


Когда найден компромисс между перфекционизмом и криворукостью, можно расслабиться, включив 3D-визуализацию получившейся платы:


Вся плата заняла около 15 сантиметров по ширине и столько же — по длине. Аналогичным образом рисуем док-платы для периферийных устройств (эти док-платы можно будет удобно вставлять в разъемы «материнской» платы).

Изготовление плат


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

Изготавливаем док-плату для GPS:


И главную плату:

(на втором снимке видно, как проступает рельеф дорожек после прижимания фольги утюгом, а на последней все не так плохо, как кажется, это просто шлифовка такая)

Теперь нужно просверлить и металлизировать отверстия для создания контактов между двумя слоями платы. В домашних условиях крайне сложно добиться «честной» металлизации (когда металл оседает на стенках отверстия), поэтому в отверстие вставляют медную проволоку и запаивают с двух сторон. Однако, я решил попробовать небольшую вариацию этого способа с расклепыванием проволоки (таким образом она меньше торчит и легче припаивается). Две вещи, которые мы намотали на ус в этот раз: сверлить много отверстий самодельной мини-дрелью очень сложно, и, если делать расклепывание проволоки, площадь контактных кругов нужно делать больше.


И еще, для удобной подачи проволоки, ее можно заправить в автоматический карандаш вместо грифеля, а сверлить отверстия строго перпендикулярно плате поможет нехитрое приспособление. Однако, перпендикулярное сверление не поможет, если слои платы совмещены недостаточно точно, поэтому тем, у кого руки как у меня, я посоветую все же пользоваться фоторезистом.

Рама, первая попытка


Развлечения ради, расскажу, как не надо делать раму. Ее не надо делать из хлипкого текстолита и углепластиковых профилей сечением 5х5 мм, они не выдержат чего-либо серезнее 300-граммового квадрокоптера, для наших целей нужен минимум 1,5 мм алюминий и алюминиевые трубы сантиметрового диаметра. Ну а если хочется совсем уж красот, прочности и малого веса, тут только один вариант: углеродное волокно в несколько слоев, пропитанное эпоксидной смолой («карбон»).



На последней фотографии заметно то, что емко характеризует понятие Epic fail: концы пропеллеров касаются друг друга. Не знаю, из-за чего, но у меня ничего из перечисленного выше (а также ниже) не получалось с первого раза. Если можно было что-то прикрутить не той стороной, я обязательно это делал, хотя перепроверял перед этим не раз. Печально.

Раздел, который не хотелось писать


У меня для вас есть плохая и хорошая новость. Плохая состоит в том, что все «творчество» на этом заканчивается. Мы осознали, что на проект потрачено уже больше тысячи долларов и около года времени, а результаты, мягко говоря, за горами. На написание софта более-менее с нуля требуется как минимум еще полгода времени, на отладку — еще столько же. А учитывая мою криворукость и ограниченность в финансах, можно с уверенностью сказать «не взлетит».

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

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

Заключение


Разработка электронных устройств — весьма интересное и увлекательное занятие. Но не имея опыта в этом деле и команды вдохновленных и энергичных коллег, в сухом остатке останется только опыт. Ну и, может быть, нескучная дипломная работа.

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

Продолжение следует.
Tags:ЛУТэлектроникапроектирование платразводка платмультикоптер
Hubs: DIY
+80
11.5k 86
Comments 96