Bluetooth helicopter под управлением с Android

Не так давно я сменил свой неубиваемый старый телефон на новенький смартфон но ОС Android, функциональность которого меня, честно сказать, очень порадовала.) еще до его появления сезрела идея использовать этот полноценный компьютер для управления переферийными устройствами. Благо каналов, по которым можно общаться с ними достаточно. Тем более представилась возможность  изучить немного java, на котором, собственно, developer’ы и пишут для этой ОС приложения. Но подробности кодинга, и трудности, с которыми предстояло столкнуться в следующей части… А здесь речь пойдет ожелезе и доработке объекта управления, а что он из себя представляет, наверное вы, наверняка, уже догадались…

В качестве платформы для экспериментов был выбран электрический вертолет, который идеально подходит для экспериментов в ограниченном по размерам помещении. Вертолеты и не только, управляемые с телефона уже давно существуют, однако, в большинстве своем, используется ИК-управление, что мне показалось странным. У современных телефонов IRDA, как правило, отсутствует, и к нему приходится присоединять модуль с ИК-передатчиком. Конечно это, видимо. объясняется экономическими причинами, однако при наличии Bluetooth, почему бы не использовать именно этот канал для управления? К телефону ничего крепить не нужно, достаточно только переделать сам вертолет. (А в последствии, модуль управления можно будет установить на другой верт, или copter, достаточно лишь сменить прошивку. Ну это такая задумка.)

Для экспериментов выбрал стабильный и хорошо управляемый соосный вертолет Double Horse 9097 с гироскопом. Самое то для новичка. Однако впоследствие, мои хотелки подросли этого девайса оказалось мало.

Он 3-х канальный с хвостовым ротором, расположеным вертикально для управления тангажем.  Это сводит задачу управления в регулировке оборотов 3-х двигателей. Сейчас бы я приобрел 4-х канальник с тарелкой перекоса нижнего ротора, заодно и с сервомашинками бы поигрался.

Для ускорения разработки и отладки первого прототипа. в качетве мозгов системы была выбрана платформа Arduino Nano, полностью соответствующая требованиям новичка.  Програмируется она на Си подобном языке в своей среде разработки? функционал ограничен, что в первое время не мешает. Прошивается через USB и  не требует дополнительных адаптеров (все встроено).

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

Сыязь Android’ного телефона с вертом и передача команд будет осуществляться с помощью приемо-передающего bluetooth модуля. Такие мини модули, сейчас довольно рапространениы и разнообразны. Мне удалось за недорого приобрести BTM-112, который я, собственно, и решил использовать. Общение Arduino с синезубым модулем осуществляется по USART интерфейсу,то есть через обычный COM порт. Питание модуля — 3,3В. Для подключения модуля, мною была разведена в eagle и изготовлена методом Лазерного Утюга платка: 

Для понижения уровня сигнала с Arduino на линию RX модуля был введен резистивный делитерь напряжения. Также добавлены два светодиода — индикатор соединения и UASRT’а.

Для того, чтобы вертолет выдерживал курс, штатный контроллер имееет гироскоп, который выдает угловую скорость вращения вокруг вертикальной оси аппарата. Другого гироскопа не было, поэтому заимствовал этот. Он имеет четыре контактных площадки: GND, +3.3V, OUT — выходное напряжение, REF — опорное напряжение. Гироскоп должен стоять вертикально, поэтому он был прикреплен к плате BT модуля. Гироскоп подключен напрямую, без обвязки, поэтому сигнал дает зашумленный, но адекватный.

Теперь пришло время для площадки, объединяющей все части будущего устройства в мини шилд для Arduino? который объединяет в себя транзисторные ключи, посадочные места под контроллер, коннектроы для гироскопа, BT-модуля и двигателей. Вот результат:

Смонтированный прототип системы bluetooth управления на вертолете выглядит следующим образом:

Короткое видео полета:

В следующей части расскажу об алгоритме управления, прошивке Arduino и программе для Android. В планах:

  1. Переход на МК Atmega32.
  2. Разработка универсального малогабаритного модуля для вертолетов, три и квадрокоптера.
  3. Переход на SMD элементы.
  4. Замена гироскопа на более точный.

Запись опубликована в рубрике Разработки с метками . Добавьте в закладки постоянную ссылку.

         
Подписаться на новые статьи блога:

7 комментариев: Bluetooth helicopter под управлением с Android

  1. Юля говорит:

    Ооооо! Очень интересно! Вы молодец!

    • Delirium говорит:

      Спасибо, я старался.)

      • Юля говорит:

        Да, это видно) А почему именно вертолеты? 🙂

        • Delirium говорит:

          Нравится мне все летающее. А верт можно и в квартире позапускать. Только нужно следить, чтоб не покрошил кота!)

          • Юля говорит:

            Ну почему же… Кота можно и покрошить… В воспитательных целях…
            ,D
            А юмор — это хорошо, и интересно) Особенно в таких серьезных трудах ,)

          • Delirium говорит:

            Неее, кота лучше потрепать.) Так и ему без последствий, и мне приятно.

  2. Уведомление: TSOP от BEAM’а к МК | Skab in Sky

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.