Вертолет с ик управлением. Анализ протокола игрушечного вертолёта на ИК-управлении. В комплектацию входят

Недавно друг притащил ко мне простенький игрушечный вертолёт:

Управляется он не по радио, а посредством инфракрасных сигналов. На самом вертолёте стоит обычный ДУ-приёмник, а значит используется несущая частота в 36-40кГц, и не составит труда разобраться в структуре сигналов, которые посылает пульт, чем я и решил заняться.

Сразу скажу, что вся эта затея изначально не имела никакого смысла, это просто статья о том, как развлекаются айтишники:)

После анализа сигнала с помощью ДУ-приёмника стало ясно, что используется модифицированный протокол пультов ДУ от Sony, который выглядит примерно так:

В протоколе Sony сначала посылается стартовый сигнал длительностью в 2,4мс, а затем передаются данные, которые кодируются длительностью паузы между сигналами: логический ноль - это 600 микросекунд, логическая единица - 1200 микросекунд.

В протоколе вертолётика отличается только длительность временных интервалов. Стартовый бит - примерно 2мс, ноль - 300 микросекунд, единица - 600 микросекунд. Увы, забыл сделать скриншот временной диаграммы. Таким образом передаются 4 байта. Оставалось только выяснить - за что они отвечают?

Делалось это тупо опытным путём. Выяснилось, что данные передаются старшими битами вперёд, а байты это:

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

Если передать значения 128, 128, 254, 128 (0x80, 0x80, 0xFE, 0x80), то верторёт на полной скорости взлетает вертикально вверх. Плавно изменяя третий байт можно заставить его зависнуть в воздухе на одной высоте. Уменьшаем первый байт - вертолёт поворачивает влево, увеличиваем - вправо. Увеличиваем второй байт - летим вперёд, уменьшаем - назад. Всё достаточно просто, оставалось воспроизвести эти сигналы так, чтобы вертолёт поверил, что им управляет настоящий пульт.

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

Дальше было интересно это как-то использовать, например, управлять им с помощью каких-то необычных устройств. Выбор пал на виимоут и нунчак от Nintendo Wii, тем более там ещё и акселерометры есть. Если кто не в курсе, виимоут подключается к Wii через обычный блютус, соответственно без особых проблем его можно подключить и к компьютеру. Правда, видится он только как неизвестное HID устройство, а не игровой контроллер, но под Windows уже есть утилита, которая умеет с ним работать - GlovePIE.

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

Надо сказать, что таким образом управлять вертолётом стало гораздо удобнее, т.к. на родном пульте ручка тяги пружинит и стремится вернуться в первоначальное положение.

Видео этого безумия:

Некоторое время тому назад, был куплен и успешно разбит в первую же неделю небольшой игрушечный . Что-то там сломалось с осями и креплениями главного винта, а запчасть найти была проблема. Так как полетать захотелось ещё, купили новый похожий геликоптер, на этот раз кроме полёта способный также ездить, благодаря 4-м колёсам и смене режима на ПДУ, и главное - оснащённый двумя стреляющими пластмассовыми ракетами. Название - аэромобиль UDIRC U821.

Да, этот вертолёт реально стреляет ракетами, ещё и на хорошее расстояние. Нажмите на кнопку во время полета — и цель будет поражена. Далее описание его параметров:

Технические характеристики

  • Аппарат летает - стреляет - ездит
  • Встроенный литий-полимерный аккумулятор 3,7 В 150 мА;
  • Время зарядки: до 60 минут;
  • Время игры: до 10 минут;
  • Радиус действия игрушки: до 15 метров;
  • Пульт управления: инфракрасный сигнал, три частоты;
  • Для работы пульта управления необходимы батарейки: 6 шт, тип "АА";
  • Габаритные размеры: ДхШхВ: 24 х 10 х 5 см.

Инструкция по использованию аппарата есть на английском и китайском, но разобраться что к чему можно - всё наглядно нарисовано, а названия POWER, RIGHT, LEFT знакомы конечно всем.

Комплектация UDIRC U821

  • Модель - Аэромобиль UDIRC U821;
  • Пульт управления ИК;
  • Встроенный в вертолет аккумулятор;
  • Зарядное устройство - USB шнур;
  • Запасной задний винт;
  • Запас ракет 20 штук;
  • Инструкция.

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

Как и у большинства моделей, на радиоуправляемом вертолете Udi RC U813 установлено 3 электрических двигателя — два из них вращают соосную схему винтов, а третий вращает хвостовой винт. Электродвигатели питаются от Li-Po аккумулятора емкостью 150 мА/ч и его полного заряда хватает примерно на 10 минут полётного времени Точно не засекал, но на всидку именно так. Зарядка аккумулятора занимает около 50 минут через USB-кабель, который можно подключить и к пульту, если вы на улице и облом идти домой на "заправку".

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

Трехканальное управление позволяет вертолету выполнять вращение вокруг своей оси, взлет и посадку, летать вперед-назад. Связь пульта управления с моделью осуществляется инфракрасным сигналом, радиус его действия 10-15 метров. Пульт работает от 6 пальчиковых батареек.

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

Отличие ИК от радиосигнала

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

Благодаря своей 3-х канальной системе (каналы A, B, C, переключатель которых находится на пульте) в одном помещении могут одновременно летать до трех вертолетов. Еще одной особенностью радиоуправляемого вертолета Udi RC U8 является выключатель светодиода, расположенного в носовой части модели. С ним очень эффектно летать в темноте - такой себе мини прожектор.

Вертолёт или машина?

По задумке производителя, эта штука кроме летания должна ездить, как простое авто. Так оно и есть, но во-первых, едет он только вперёд (задний ход невозможен), а во-вторых - винт продолжает крутиться и это совсем ни к чему. В общем как автомобиль эта игрушка слабовата и толк от колёс есть только для мягкой посадки. Зато летает и стреляет нормально.

Видео (снимем позже)

Итого : увлекательная и недорогая игрушка с несколькими интересными функциями. Если у кого ещё не было такой - можно поиграться, но быстро садится питание. А пока оно зарядится, то уже и забываешь про него - появляются другие дела))

Обсудить статью ВЕРТОЛЁТ С ИНФРАКРАСНЫМ ИК УПРАВЛЕНИЕМ

Недавно друг притащил ко мне простенький игрушечный вертолёт:

Управляется он не по радио, а посредством инфракрасных сигналов. На самом вертолёте стоит обычный ДУ-приёмник, а значит используется несущая частота в 36-40кГц, и не составит труда разобраться в структуре сигналов, которые посылает пульт, чем я и решил заняться.

Сразу скажу, что вся эта затея изначально не имела никакого смысла, это просто статья о том, как развлекаются айтишники:)

После анализа сигнала с помощью ДУ-приёмника стало ясно, что используется модифицированный протокол пультов ДУ от Sony, который выглядит примерно так:

В протоколе Sony сначала посылается стартовый сигнал длительностью в 2,4мс, а затем передаются данные, которые кодируются длительностью паузы между сигналами: логический ноль - это 600 микросекунд, логическая единица - 1200 микросекунд.

В протоколе вертолётика отличается только длительность временных интервалов. Стартовый бит - примерно 2мс, ноль - 300 микросекунд, единица - 600 микросекунд. Увы, забыл сделать скриншот временной диаграммы. Таким образом передаются 4 байта. Оставалось только выяснить - за что они отвечают?

Делалось это тупо опытным путём. Выяснилось, что данные передаются старшими битами вперёд, а байты это:

  • Первый - поворот влево-вправо (разница в скорости вращения основных пропеллеров)
  • Второй - движение вперёд-назад (управление пропеллером на хвосте)
  • Третий - тяга вверх (скорость вращения пропеллеров)
  • Четвёртый - положение ручки калибровки поворота, непонятно, зачем оно вообще передаётся

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

Если передать значения 128, 128, 254, 128 (0x80, 0x80, 0xFE, 0x80), то верторёт на полной скорости взлетает вертикально вверх. Плавно изменяя третий байт можно заставить его зависнуть в воздухе на одной высоте. Уменьшаем первый байт - вертолёт поворачивает влево, увеличиваем - вправо. Увеличиваем второй байт - летим вперёд, уменьшаем - назад. Всё достаточно просто, оставалось воспроизвести эти сигналы так, чтобы вертолёт поверил, что им управляет настоящий пульт.

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

Дальше было интересно это как-то использовать, например, управлять им с помощью каких-то необычных устройств. Выбор пал на виимоут и нунчак от Nintendo Wii, тем более там ещё и акселерометры есть. Если кто не в курсе, виимоут подключается к Wii через обычный блютус, соответственно без особых проблем его можно подключить и к компьютеру. Правда, видится он только как неизвестное HID устройство, а не игровой контроллер, но под Windows уже есть утилита, которая умеет с ним работать - GlovePIE.

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

Надо сказать, что таким образом управлять вертолётом стало гораздо удобнее, т.к. на родном пульте ручка тяги пружинит и стремится вернуться в первоначальное положение.

Видео этого безумия:

Всем добра!
Вертолет был заказан 16 октября 2015г. Выслана посылка на следующий день, а получена 12.12.2015.
Посылка без трека. Пришла в простом пакете. На удивление коробка не получила повреждений.

Скрин заказа:


Была распродажа, и на тот момент он обошелся примерно в 5$.

Коробочка из приятного на ощупь плотного глянцевого картона.

В коробочке пульт с вертолетом и инструкция. Для наглядности размера приложена батарейка АА.






На снимке виден штатный кабель для зарядки вертолета. Вертолет имеет Li аккумулятор 3,7 В емкостью 75 mАh. Заряжается быстро - примерно 15-20 минут. Время полета около 5 минут.


Его можно спокойно заряжать и через USB, если имеется подходящий кабель. У меня подошел кабель от нано-квадрика Syma X12.
Инфракрасный пульт работает от 4-х батареек АА. Винта для закрепления крышки батарейного отсека не оказалось в коробке. Но крышка не выпадает и без него. Батарейки так же в комплекте отсутствуют. На органы управления надеваются небольшие удлинители белого цвета, которые в «походном» состоянии прикреплены на прозрачной крышке.

Вертолет имеет механический выключатель, ИК-приемник, и белый яркий светодиод.



Также видны два мотора, которые вращают винты через шестеренки. Вертолет выполнен по соосной схеме - задний винт бутафорский.

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


Итого.
Плюсы:
+ маленький размер, тяжело повредить сам вертолет и что-то в помещении.
+ Li аккумулятор
+ яркая подсветка светит вниз
+ удобно переносить весь комплект в пульте
+ хорошая связь на ИК
+ можно заряжать от пульта или от USB (нужен доп. кабель)
Минусы:
- в комплекте нет зарядки от USB, и запасных лопастей
- не найдешь запасных частей, только подбирать или кохозить самому
- невозможно зависнуть на месте
- непросто управлять новичку

Video: