Поиск:  
  
Технологии робототехники
Фотогалерея
Книжная полка
Доска объявлений
Форумы
Контакты

  






  ***

Как сделать дешёвый роботизированный микровертолёт.


РобоКлуб/Проекты/Мобильные/Как сделать дешёвый роботизированный микровертолёт.



Как сделать дешёвый роботизированный микровертолёт

Эта статья - описание того, как самому собрать дистанционно управляемый вертолет весом всего 300 грамм.

Copyright © 2005 [email protected]


Содержание

1. Введение
2. Готовые компоненты
2.1. Платформа вертолёта
2.2. Встроенный компьютер
2.3. Другое оборудование
3. Аппаратное обеспечение
3.1. Стабилизатор напряжения
3.2. Широтно-импульсный модулятор
3.3. Джойстик от Xbox
4. Программное обеспечение
4.1. Многоканальный широтно-импульсный генератор
4.2. Эмулятор Bluetooth приёмника
4.3. Эмулятор Bluetooth передатчика
5. Сборка системы
6. Эксплуатация
6.1. Дистанционное управление через Bluetooth
7. Отказ от гарантии
8. Похожие open-source проекты
9. Планы
9.1. Уменьшение веса
9.2. Точность широтно-импульсного генератора
9.3. Датчики
9.4. Качество и класс (QoS) Bluetooth
9.5. Канал передачи данных WiFi
9.6. Джойстики с Bluetooth
9.7. ПО управления полёта
Ссылки
Глоссарий

Список рисунков

1. Схема встроенного контроллера, входящего в обычный коммерческий набор для микровертолёта.
2. Детальная схема и изменения (отмечены красным) платы радиоприёмника.
3. Конфигурация микшера xpad_ccpm120_mode2.mix.
4. Коэффициенты для 120° CCPM-микширования.
5. Вертолёт + ARM + Linux.
6. Вид сзади с разъёмом на дочерней плате ввода/вывода.
7. Общая схема дистанционного управления через Bluetooth.

Список таблиц

1. Выходы широтно-импульсного модулятора приёмника радиосигналов.
2. Примеры конфигурации многоканального широтно-импульсного модулятора.
3. Многоканальные широтно-импульсные модуляторы.
4. Назначение штырьков ввода/вывода дочерней платы Gumstix.

1. Введение

Цены на радиоуправляемые модели вертолётов достигли уровня, когда все типы робототехнических проектов становятся осуществимыми. В этом документе описывается, как создать способный летать в 3-х мерном пространстве 300-граммовый вертолёт со встроенной ОС Linux и каналом передачи данных Bluetooth всего за 500 евро.

В качестве подтверждения работоспособности идеи мы предлагаем программное обеспечение, позволяющее удалённо управлять вертолётом с помощью джойстика от ПК через канал Bluetooth. В будущем работа будет сконцентрирована на интеграции датчиков (инерциальные датчики, высотомер, магнитный компас, GPS, камера) и программного обеспечения управления полётом (стороннего производителя или специально разработанного).

2. Готовые компоненты

2.1. Платформа вертолёта

Любителям радиоуправляемых моделей на данный момент доступно несколько недорогих микровертолётов: Ikarus Piccolo, MS Hornet, Carboon, Dragonfly, Hummingbird, Tiny, Aerohawk. Они являются существенно уменьшенными версиями настоящих вертолётов, причём появление этих моделей стало возможным благодаря технологическому развитию аккумуляторов. Некоторые модели имеют роторы с фиксированным общим шагом, другие - как с циклическим, так и с общим шагом. Большинство моделей обладает отдельным двигателем хвостового винта, а не хвостовым ротором регулируемого шага.

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

В этом проекте мы используем микровертолёт ARF, в комплект которого входят:

  • Предварительно собранный вертолёт с ротором общего шага, два щёточных двигателя и три миниатюрных сервопривода

  • Набор электронных компонент с 6-канальным радиоприёмником, гироскопом по углу рыскания и приводом двигателя

  • 6-канальный радиопередатчик на 41 МГц с жёстко смонтированным CCPM-микшированием

  • Литиево-полимерный аккумулятор на 11,1 В, 850 мА*ч

  • Зарядка для аккумулятора.

Вертолёт весит 270 г и может поднимать как минимум 50 г полезного груза.

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

К счастью, в некоторых коммерческих микровертолётах "чёрная коробка" может быть "сломана" довольно легко. На самом деле она состоит из двух плат, взаимно соединённых с помощью 2x3-штырькового разъёма (см. рис. 1):

  • Общая плата радиоприёмника с семью 3-штырьковыми выходами широтно-импульсного модулятора, которые идут на сервоприводы

  • Плата питания/гироскопа с контроллерами питания, гироскопа, двигателей и контроллером безотказной работы.

Рис. 1. Схема встроенного контроллера, входящего в обычный коммерческий набор для микровертолёта.

Схема встроенного контроллера, входящего в обычный коммерческий набор для микровертолёта.

В таблице 1 перечислены выходы широтно-импульсного модулятора, два из которых служат для внутреннего соединения двух плат.

Таблица 1. Выходы широтно-импульсного модулятора приёмника радиосигналов.

Канал Предназначение
1 Правый сервопривод
2 Передний сервопривод
3 Основной двигатель (внутренне подключён к плате питания/гироскопа)
4 Хвостовой ротор (внутренне подключён к плате питания/гироскопа)
5 Не используется
6 Левый сервопривод
B Не используется (12 мс синхронизирующие импульсы)

Использован может быть любой подобный вертолёт. Основные требования:

  • Контроллер должен понимать сигналы с широтно-импульсной модуляцией. Использование импульсно-кодовой модуляции потребовало бы больших затрат, особенно при создании собственного механизма кодирования.

  • Контроллер должен уметь делить мультиплексированный сигнал с широтно-импульсной модуляцией между FM радио приёмником и демультиплексором (см. раздел 3.2), или по крайней мере переводить входящие сигналы с широтно-импульсной модуляцией на приводы двигателей.

  • Вертолёт должен быть достаточно мощным, чтобы поднимать, по крайней мере, 30 г полезного груза.

  • Аккумулятор должен иметь запас по току 200 мА для питания дополнительных цепей

2.2. Встроенный компьютер

Мы использовали одноплатный компьютер Gumstix со следующими параметрами:

  • 200 МГц XScale PXA255 процессор (ARM)

  • 4 Мб флэш-памяти с предустановленной ОС Linux-2.6.10 и дополнительным ПО

  • 64 Мб SDRAM

  • Контакты ввода/вывода общего назначения

  • Дочерняя плата ввода/вывода с контактными площадками на 2.54 мм

  • Шина I2C

  • Модуль Bluetooth с антенной

  • Полная среда разработки ПО

Некоторые возможности, которые не были использованы:

  • Аппаратный генератор сигналов с широтно-импульсной модуляцией: Предназначен для управления яркостью и контрастом ЖК-монитора. Нам кужно больше, чем два канала.

  • Клиентский USB-интерфейс: предназначен для КПК, основанных на ARM. usbnet является полезной возможностью при работе с Gumstix, однако вместо неё мы будем использовать Bluetooth.

2.3. Другое оборудование

  • Компьютер с USB и Bluetooth под управлением Linux

  • Xbox-совместимый контроллер

  • Регулируемый источник питания на 12 В и 5 А

  • 10 МГц аналоговый осциллограф (рекомендуем)

3. Аппаратное обеспечение

3.1. Стабилизатор напряжения

Плата питания/гироскопа имеет два регулятора напряжения на +5 В. Они подключены параллельно и отмечены на плате как CX1117-5.0. Реактивная составляющая тока равно 50 мА.

Поскольку эти каналы на +5 В выведены для каждого подключения к серводвигателю (включая те, которые не используются), то будет удобно запитать Gumstix от них. Для того, чтобы обеспечить дополнительный ток (всего 100-200 мА), возможно потребуется заменить эти два регулятора напряжения на более мощную моделью 7805, которая монтируется снаружи.

3.2. Широтно-импульсный модулятор

Для управления вертолётом мы переделали плату радиоприёмника таким образом, что Gumstix может посылать свои собственные сигналы с широтно-импульсной модуляцией в демультиплексор модулятора платы.

Почему бы не отказаться полностью от платы приёмника и не генерировать пять модулированных сигналов с помощью Gumstix ? Наш подход имеет несколько преимуществ:

  • Не нужно создавать свой блок управления.

  • Всего три провода между Gumstix и вертолётом (земля, +5 В и мультиплексированный сигнал с широтно-импульсной модуляцией).

  • Демультиплексор модулятора добавляет ещё один уровень электрической изоляции между Gumstix и силовой электроникой.

На рис. 2 показана схема обычного радиоприёмника и изменения, которые мы сделали. Надо просто разрезать правильный провод силового блока управления и подсоединить оба конца к 2-контактному коннектору, который находится снаружи пластикового корпуса. Хронограммы должны помощь найти нужные сигналы.

Рис. 2. Детальная схема и изменения (отмечены красным) платы радиоприёмника.

Детальная схема и изменения (отмечены красным) платы радиоприёмника.

Изначальная функциональность может быть восстановлена путём отключения Gumstix и использования перемычки.

3.3. Джойстик от Xbox

Контроллеры Xbox достать можно почти везде, они недороги и имеют чётко определённую функциональность (в отличие от джойстиков для ПК). Они могут быть подключены к ПК путём замены родного коннектора на USB.

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

4. Программное обеспечение

Исходный код ПО можно скачать тут: http://perso.wanadoo.fr/pascal.brisset/chromicro/dist/chromicro-1.0.tgz.

4.1. Многоканальный широтно-импульсный генератор

pxa_mpwm.ko - это основанный на таймере многоканальный генератор модулированных сигналов для PXA255, реализованный как загрузочный модуль ядра для linux-2.6.10gum.

Его можно настроить на генерацию одного многоканального модулированного сигнала и/или многих одноканальных модулированных сигналов через контакты ввода/вывода общего назначения (GPIO). GPIO контакты, каналы и временные параметры задаются таким образом, как показано в таблице 2.

Таблица 2. Примеры конфигурации многоканального широтно-импульсного модулятора

Задача Параметры
Один выходной сигнал с 6 мультиплексированными каналами широтно-импульсного модулятора modprobe pxa_mpwm gpio=61 nchans=6 tmin=500 tmax=1500 tpause=500 tsync=12000
То же самое с одноканальным сервовыходом кроме CH5 modprobe pxa_mpwm gpio=61 nchans=6 servo=58,59,60,62,-1,63 tmin=500 tmax=1500 tpause=500 tsync=12000
Только одноканальные сервовыходы modprobe pxa_mpwm nchans=6 servo=58,59,60,62,-1,63 tmin=500 tmax=1500 tpause=500 tsync=12000

Пользовательские программы запускают генератор модулированных сигналов через интерфейс устройства, см. таблицу 3. Генерация модулированных импульсов начинается при инициализации устройства и задания значений по всем каналам. GPIO контакты переводятся в логическую 1, когда программа закрывает устройство.

Таблица 3. Многоканальные широтно-импульсные модуляторы.

Устройство Применение
/dev/mpwm0 Модулированный сигнал #1 (все каналы записываются сразу же)
/dev/mpwm0-0 Канал #1 модулированного сигнала #1
/dev/mpwm0-1 Канал #2 модулированного сигнала #1
/dev/mpwm0-2 Канал #3 модулированного сигнала #1
/dev/mpwm0-3 Канал #4 модулированного сигнала #1
/dev/mpwm0-4 Канал #5 модулированного сигнала #1
/dev/mpwm0-5 Канал #6 модулированного сигнала #1

Многоканальный широтно-импульсный модулятор использует OSMR1 (OS Match Register 1), которая как правило имеется в Gumstix. (OSMR0 используется системным таймером Linux, а OSMR3 используется сторожевой схемой).

Период таймера PXA255 составляет 270 нс, что позволяет разрешать типичные сигналы с широтно-импульсным модуляцией в диапазоне 1 мс с точностью 11 бит. Хотя многоканальный широтно-импульсный модулятор использует высокоприоритетный PXA255 FIQ, а не обычный IRQ, джиттер может достигать нескольких микросекунд. Этого всё ещё достаточно, чтобы летать на вертолёте. Смотри также раздел 9.2.

4.2. Эмулятор Bluetooth приёмника

bluerc_rx - это пользовательская программа, разработанная для выполнения под Gumstix. Она получает радиоданные в виде UDP-пакетов через подключение Bluetooth BNEP и передаёт их генератору модулированных импульсов.

Данная программа завершает свою работу, если не получает UDP-пакет в течение заданного в настройках интервала. Это отключает выходы модулятора и (будем надеяться) заставит плату питания/гироскопа отключить двигатели.

Использование: bluerc_rx [-p <port>] [-t <timeout>] [-c <PWM device>]

Пример: bluerc_rx -p 9000 -t 2000 -c /dev/mpwm0

4.3. Эмулятор Bluetooth передатчика

bluerc_tx - это пользовательская программа, предназначенная для выполнения на Linux-компьютере с защитной заглушкой Bluetooth и USB джойстиком. Она считывает положение аналоговых рычагов и триггеров, линейно микширует их в 6 радиоканалов и посылает значения каналов вертолёту в виде 6-байтовых UDP-пакетов через Bluetooth BNEP.

Использование: bluerc_tx [-c <joystick>] [-r <refresh rate>] [-m <matrix>] [-d <dest IP>] [-p <dest port>]

Пример: bluerc_tx -c /dev/js0 -r 50 -m xpad_ccpm120_mode2.mix -d 192.168.10.1 -p 9000

Соответствие между осями джойстика и радиоканалами определяется матрицей в конфигурационном файле. На рис. 3 показана установка по умолчанию.

Шаг 1. Настройка

  1. Переведите рычаги в желаемое "нейтральное" положение.

  2. Надавите кнопку "back".

  3. Дайте рычагам вернуться в их центральное положение.

  4. Отпустите кнопку "back".

Рис. 3. Конфигурация микшера xpad_ccpm120_mode2.mix.

Конфигурация микшера xpad_ccpm120_mode2.mix.

Рис. 4. Коэффициенты для 120° CCPM-микширования.

Коэффициенты для 120° CCPM-микширования.

5. Сборка системы

Рис. 5. Вертолёт + ARM + Linux.

Вертолёт + ARM + Linux.

На рис. 6 и таблице 4 показано соединение с дочерней платой Gumstix.

Рис. 6. Вид сзади с разъёмом на дочерней плате ввода/вывода.

Вид сзади с разъёмом на дочерней плате ввода/вывода.

Таблица 4. Назначение штырьков ввода/вывода дочерней платы Gumstix.

Контакт Сигнал Применение
10 NACRESET (отключён) Вход +5 В
16 GND Земля
18 GPIO61 6-канальный выход модулятора

6. Эксплуатация

6.1. Дистанционное управление через Bluetooth

На данный момент (рис. 7) мы просто эмулируем обычный процесс дистанционного управления. На вертолёте нет ни датчиков, ни сложного встроенного ПО, а также нет обратной связи от вертолёта к наземной станции.

Рис. 7. Общая схема дистанционного управления через Bluetooth.

Общая схема дистанционного управления через Bluetooth.

Для быстрого запуска используйте make tx и make rx в директории src.

Шаг 2. Запуск

  1. Запустите bluerc_tx на ПК.

  2. Подключите аккумулятор. GPIO-контакт перейдёт в верхнее логическое состояние на время загрузки Gumstix.

  3. Настройте работу в сети через Bluetooth (BNEP). Этот процесс может быть автоматизирован с помощью pand.

  4. Загрузите pxa_mpwm.ko на Gumstix. GPIO-контакт будет настроен как выход, но состояние его останется в логической 1.

  5. Запустите bluerc_rx на Gumstix. Генерация модулированных сигналов начнётся, как только будут получены UDP-пакеты.

Шаг 3. Выключение

  • Либо отключите аккумулятор, остановите bluerc_rx, или остановите bluerc_tx. Все альтернативы должны быть одинаково безопасны. Заметьте, что при работе с родным пультом дистанционного управления (при частотной модуляции) необходимо отключать приёмник или аккумулятор перед остановкой передатчика.

7. Отказ от гарантии

Используйте эти инструкции и всё прилагаемое ПО на свой страх и риск.

Это экспериментальное ПО не обладает никакими безаварийными особенностями, которые свойственны коммерческим продуктам.

Дистанционно управляемые воздушные суда не являются игрушками. С ними обычно занимаются должным образом подготовленные и застрахованные любители на специальных аэродромах.

Из-за механической сложности и движущихся частей вертолёты являются одними из самых опасный воздушных судов.

Воздушные роботы имеют особенность двигаться по непредсказуемым траекториям.

Программа выводит дамп ядра; железо же просто разбивается.

Литиево-полимерные аккумуляторы воспламеняются при повреждении.

Диапазон радиоканала Bluetooth составляет 10 м. Это не подходит для полётов на улице.

8. Похожие open-source проекты

rcpilot - http://rcpilot.sourceforge.net/

Autopilot - http://autopilot.sourceforge.net/

Paparazzi - http://www.nongnu.org/paparazzi/

9. Планы

9.1. Уменьшение веса

  • Убрать дочернюю плату Gumstix. Подключить его напрямую к 60-штырьковому коннектору Hirose.

  • Убрать плату радиоприёмника. Генерировать 5 модулированных сигналов.

9.2. Точность широтно-импульсного генератора

Цель: уменьшить джиттер основанного на таймере широтно-импульсного генератора.

Заблокировать обработчик FIQ в кэше I/D ?

9.3. Датчики

  • Модуль измерения инерции. 6 степеней свободы, I2C-интерфейс.

  • Видео камера

  • Магнетометр. I2C-интерфейс.

  • Давление (высота, скорость полёта). I2C-интерфейс.

  • Фотокамера.

9.4. Качество и класс (QoS) Bluetooth

Цель: Уменьшить задержку при передаче данных.

Использовать более подходящий протокол, нежели BNEP.

9.5. Канал передачи данных WiFi

Цель: Увеличить радиус покрытия.

9.6. Джойстики с Bluetooth

Цель: Избавиться от компьютера.

Благодаря консолям видеоигр следующего поколения, дешёвые Bluetooth-джойстики должны появиться в 2006 году.

9.7. ПО управления полёта

  • Помощь при полёте: устойчивое зависание, 3D

  • Точки маршрута

  • Взлёт и посадка

  • Автономная навигация, обработка изображений

Ссылки

[pxa255_dev] Intel PXA255 Processor. Developer's manual.

[pxa255_user] Intel XScale Microarchitecture for the PXA255 Processor. User's Manual.

[pxa255_elec] Intel PXA255 Processor. Electrical, Mechanical, and Thermal Specification.

Глоссарий

Почти готов к полёту (Almost Ready to Fly, ARF)

Относится к модели воздушного судна, которая продаётся предварительно собранной.

Цепь, заменяющая аккумулятор (Battery-Elimination Circuit, BEC)

Преобразователь переменного напряжения (линейный регулятор или переключательный преобразователь), который используется для питания радиоприёмника и серводвигателей от того же аккумулятора, от которого запитан двигатель. Выходное напряжение обычно составляет 4,8 или 5 В.

Сетевой протокол инкапсуляции Bluetooth (Bluetooth Network Encapsulation Protocol, BNEP)

Предоставляет Ethernet-подобный интерфейс (например, bnep0) на каждом конце Bluetooth-соединения.

Общий шаг несущего винта (Collective pitch, CP)

Относится к дизайну ротора вертолёта с изменяемым общим шагом. Тяга регулируется путём изменения либо общего шага, либо скорости главного мотора.

См. также Фиксированный шаг (Fixed pitch).

Циклично-коллективное микширование шага (Cyclic-Collective Pitch Mixing (CCPM)

Фиксированный шаг (Fixed pitch, FP)

Относится к дизайну ротора вертолёта с цикличный шагом, но с фиксированным общим шагом. Тяга регулируется путём изменения скорости главного мотора. Это приводит к большей инертности, чем у вертолётов с общим шагов несущего винта. Кроме того, вертолёты с фиксированным шагом не могут летать вверх дном.

См. также Общий шаг несущего винта (Collective pitch).

Ввод/вывод общего назначения (General-Purpose I/O, GPIO)

Процессор PXA255 имеет 85 контактов общего назначения, которые могут быть независимо сконфигурированы для ввода, вывода или подключения к интегрированным периферийным устройствам (таким как, последовательные порты и ЖК монитор).

Глобальная система позиционирования (Global Positioning System, GPS)

Модуль измерения инерции (Inertial Measurement Unit, IMU)

Акселерометры (перемещение) и гироскопы (вращение)

Литий-полимер (Lithium-Polymer, LiPo)

Режим 1 / Режим 2 ()

Альтернативное расположение осей на радиопередатчике вертолёта.

Печатная плата (Printed Circuit Board, PCB)

Импульсно-кодовая модуляция (Pulse Code Modulation, PCM)

Общий термин для цифровой передачи данных.

Фазоимпульсная модуляция (Pulse Position Modulation, PPM)

Неверный термин для широтно-импульсной модуляции, в терминологии радиоуправления

Широтно-импульсная модуляция (Pulse Width Modulation, PWM)

Модуляция, которая кодирует аналоговый сигнал в цифровые импульсы переменной длины.

Беспилотное воздушное судно (Unmanned Aerial Vehicle, UAV)

Не обязательно автономное.


Права на копирование, распространение и/или изменение этого документа даются в соответствии с лицензией GNU по свободной документации (GNU Free Documentation License), версия 1.1; без неизменных разделов, без вступительных и заключительных текстов.



 


Автор конструкции: Pascal Brisset
gale
ChRoMicro

Комментарии

Добавить комментарий к мобильным
4k [email protected]
оч даже реально приобрести и собрать что-нить на этом компьютере! Штука вообще гениальная

Andrey
Теперь можно приобрести Gumstix в России http://www.alpha-gumstix.org/company.php

TransMatrix
Гадство! Всё больше конструкций на ГамСтиксах (предыдущей было "Блютус-ружьё"), а купить У НАС всё тот-же нереал... >:(