Ардуино: инфракрасный пульт и приемник. Ардуино: инфракрасный пульт и приемник Rc управление

Инфракрасный пульт дистанционного управления — один из самых простых способов взаимодействия с электронными приборами. Так, практически в каждом доме есть несколько таких устройств: телевизор, музыкальный центр, видеоплеер, кондиционер. Но самое интересное применение инфракрасного пульта — дистанционное правление роботом. Собственно, на этом уроке мы попытаемся реализовать такой способ управления с помощью популярного контроллера Ардуино Уно.

1. ИК-пульт

Что нужно для того, чтобы научить робота слушаться инфракрасного (ИК) пульта? Во-первых, нам потребуется сам пульт. Можно использовать обычный пульт от телевизора, а можно приобрести миниатюрный пульт от автомагнитолы. Именно такие пульты часто используются для управления роботами. На таком пульте есть 10 цифровых кнопок и 11 кнопок для манипуляции с музыкой: громкость, перемотка, play, stop, и т.д. Для наших целей более чем достаточно.

2. ИК-датчик

Во-вторых, для приема сигнала с пульта нам потребуется специальный ИК-датчик. Вообще, мы можем детектировать инфракрасное излучение обычным фотодиодом/фототранзистором, но в отличие от него, наш ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц). Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца. Для этого урока воспользуемся популярным ИК-датчиком VS1838B , который обладает следующими характеристиками:
  • несущая частота: 38 кГц;
  • напряжение питания: 2,7 — 5,5 В;
  • потребляемый ток: 50 мкА.
Можно использовать и другие датчики, например: TSOP4838, TSOP1736, SFH506.

3. Подключение

Датчик имеет три вывода (три ноги). Если посмотреть на датчик со стороны приёмника ИК сигнала, как показано на рисунке,
  • то слева будет - выход на контроллер,
  • по центру - отрицательный контакт питания (земля),
  • и справа - положительный контакт питания (2.7 — 5.5В).
Принципиальная схема подключения Внешний вид макета

4. Программа

Подключив ИК-датчик будем писать программу для Ардуино Уно. Для этого воспользуемся стандартной библиотекой IRremote , которая предназначена как раз для упрощения работы с приёмом и передачей ИК сигналов. С помощью этой библиотеки будем принимать команды с пульта, и для начала, просто выводить их в окно монитора последовательного порта. Эта программа нам пригодится для того, чтобы понять какой код дает каждая кнопка. #include "IRremote.h" IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { Serial.begin(9600); // выставляем скорость COM порта irrecv.enableIRIn(); // запускаем прием } void loop() { if (irrecv.decode(&results)) { // если данные пришли Serial.println(results.value, HEX); // печатаем данные irrecv.resume(); // принимаем следующую команду } } Загружаем программу на Ардуино. После этого, пробуем получать команды с пульта. Открываем монитор последовательного порта (Ctrl+Shift+M), берём в руки пульт, и направляем его на датчик. Нажимая разные кнопочки, наблюдаем в окне монитора соответствующие этим кнопкам коды. Проблема с загрузкой программы В некоторых случаях, при попытке загрузить программу в контроллер, может появиться ошибка: TDK2 was not declared In his scope Чтобы ее исправить, достаточно удалить два файла из папки библиотеки. Заходим в проводник. Переходим в папку, где установлено приложение Arduino IDE (скорее всего это «C:\Program Files (x86)\Arduino»). Затем в папку с библиотекой: …\Arduino\libraries\RobotIRremote , и удаляем файлы: IRremoteTools.cpp и IRremoteTools.h. Затем, перезапускаем Arduino IDE, и снова пробуем загрузить программу на контроллер.

5. Управляем светодиодом с помощью ИК-пульта

Теперь, когда мы знаем, какие коды соответствуют кнопкам пульта, пробуем запрограммировать контроллер на зажигание и гашение светодиода при нажатии на кнопки громкости. Для этого нам потребуется коды (могут отличаться, в зависимости от пульта):
  • FFA857 — увеличение громкости;
  • FFE01F — уменьшение громкости.
В качестве светодиода, используем встроенный светодиод на выводе №13, так что схема подключения останется прежней. Итак, программа: #include "IRremote.h" IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { irrecv.enableIRIn(); // запускаем прием } void loop() { if (irrecv.decode(&results)) { // если данные пришли switch (results.value) { case 0xFFA857: digitalWrite(13, HIGH); break; case 0xFFE01F: digitalWrite(13, LOW); break; } irrecv.resume(); // принимаем следующую команду } } Загружаем на Ардуино и тестируем. Жмем vol+ — светодиод зажигается. Жмем vol- — гаснет. Теперь, зная как это все работает, можно вместо светодиода управлять двигателями робота, или другими самодельными микроэлектронными устройствами!

(перев. англ.)

Код RC 5 от Philips является возможно наиболее используемым протоколом, людьми увлечёнными своим хобби, вероятно из-за широкой доступности дешевых пультов дистанционного управления.
Протокол четко определен для различных типов устройства, гарантирующих совместимость Вашими системами. В последнее время Philips начинал использовать новый протокол, названный RC 6, у которого есть больше функций.

Особенности

  • Адрес на 5 битов и длина команды на 6 битов (7 битов команды для RC5X)
  • Двухфазное кодирование (или Манчестерское кодирование)
  • Несущая частота 36 кГц
  • Постоянное время передачи бита 1.778 мс (64 цикла 36 кГц)
  • Производитель Philips

Модуляция

П ротокол использует двухфазную модуляцию (или так называемое Манчестерское кодирование) несущей частоты IR на 36 кГц. Все биты имеют равную длину 1.778 мс в этом протоколе половина времени отведена для передачи бита, заполненного пакетом на несущей частоте 36 кГц, когда другая половина пакета неактивна. Логический ноль представлен пакетом в первой половине времени передачи бита. Логическая единица представлена пакетом во второй половине времени передачи бита. Отношение импульса/паузы несущей частоты на 36 кГц - 1/3 или 1/4, который уменьшает потребляемую мощность.

Протокол

Рисунок ниже показывает типичную последовательность импульсов RC 5 сообщений. Этот пример передает команду 35h, и адрес устройтсва 05h.

Первые два импульса - стартовые импульсы, и оба логические "1". Пожалуйста, отметьте, что половина времени передачи бита заканчивается раньше прежде, чем приемник заметит реальный запуск сообщения.
В расширенном RC 5 используется только один начальный бит. Разряд S2 преобразован, чтобы управлять 6 битом, предусматривая в общей сложности 7 битов для команды. Значение S2 должно быть инвертировано, чтобы получить 7-ой бит команды!

3-ий бит - бит переключателя. Этот бит инвертирован каждый раз, когда кнопка пульта отпущена и нажата снова. Этим путем получатель может различить кнопку, которая остается нажатой, или неоднократно нажимается.
Следующие 5 битов представляют адрес устройства IR, в котором отправляется сначала MSB. Адрес сопровождается командой на 6 битов, в котором также отправляется сначала MSB.
Сообщение состоит из в общей сложности 14 битов, которые составляют в целом длительность в 25мс. Иногда сообщение, может оказаться, короче, потому что первая половина начального бита S1 остается неактивной. И если последний бит сообщения - логический "0", последняя половина бита сообщения также неактивна.

Пока кнопка пульта остается нажатой, сообщение будет повторено каждые 114мс. Бит переключателя сохранит тот же самый логический уровень во время всех этих повторных сообщений. Это необходимо для программного обеспечения приемника, чтобы автоматически интерпретировать функцию повтора.

PS: у меня была большая ошибка на этой странице в течение достаточно долгого времени. По некоторой таинственной причине были инвертированы LSB и MSB адреса и команды. Я могу вспомнить исправление этой ошибки прежде, но так или иначе старая версия описания, должно быть, "распротсранилась" в Интернете.

Предопределенные Команды

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

RC-5
Адрес
Устройтсво
$00 - 0 TV1
$01 - 1 TV2
$02 - 2 Teletext
$03 - 3 Video
$04 - 4 LV1
$05 - 5 VCR1
$06 - 6 VCR2
$07 - 7 Experimental
$08 - 8 Sat1
$09 - 9 Camera
$0A - 10 Sat2
$0B - 11
$0C - 12 CDV
$0D - 13 Camcorder
$0E - 14
$0F - 15
$10 - 16 Pre-amp
$11 - 17 Tuner
$12 - 18 Recorder1
$13 - 19 Pre-amp
$14 - 20 CD Player
$15 - 21 Phono
$16 - 22 SatA
$17 - 23 Recorder2
$18 - 24
$19 - 25
$1A - 26 CDR
$1B - 27
$1C - 28
$1D - 29 Lighting
$1E - 30 Lighting
$1F - 31 Phone
RC-5
Команда
TV команда VCR Комада
$00 - 0 0 0
$01 - 1 1 1
$02 - 2 2 2
$03 - 3 3 3
$04 - 4 4 4
$05 - 5 5 5
$06 - 6 6 6
$07 - 7 7 7
$08 - 8 8 8
$09 - 9 9 9
$0A - 10 -/-- -/--
$0C - 12 Standby Standby
$0D - 13 Mute
$10 - 16 Volume +
$11 - 17 Volume -
$12 - 18 Brightness +
$13 - 19 Brightness -
$20 - 32 Program + Program +
$21 - 33 Program - Program -
$32 - 50 Fast Rewind
$34 - 52 Fast Forward
$35 - 53 Play
$36 - 54 Stop
$37 - 55 Recording

Выносной комнатный модуль со встроенным датчиком температуры воздуха в помещении. Возможно изменение уставки (+5..-5К) и переключение режимов работы отопления. 3-х проводной.

Применяется в связке с программой комнатного устройства в контроллерах SmartWeb S/L.

Через мониторинг нельзя будет поменять режим помещения, где стоит такой датчик!

Дело в том, что режим комнаты на этом датчике выставляется механически, поэтому «сдвинуть» его удаленно никак нельзя.

Удаленно можно только менять желаемую температуру, с учетом изменения уставки «колесиком» на RC21.

Датчик

RC21 содержит датчик температуры, который используется контроллером.

Регуляторы

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

ПРОГРАММА
Температура меняется согласно установленному в комнатном устройстве расписанию.

КОМФОРТ
Программа комнатного устройства поддерживает температуру комфортного режима работы.

ЭКОНОМ
Программа комнатного устройства поддерживает температуру пониженного режима работы. Этот режим хорошо подходит для периодов долгого отсутствия хозяев, например, во время отпуска.

Монтаж

Осторожно

Аккуратно при помощи отвертки извлеките поворотный круг из корпуса RC21. Открутите винт, находящийся под кругом. Отсоедините переднюю половину корпуса RC21 от задней.

RC21 подключается к контроллеру SmartWeb тремя проводами, заведенными на терминальную колодку, находящуюся на плате RC21. Контакт 3 заводится на разъем «-» на контроллере SmartWeb, контакты 1 и 2 подключаются к любым входам для датчиков Sx.

Затем в программе комнатного устройства на контроллере вы можете выбрать те входы на которые заведены контакт 1 для режима RC21 и контакт 2 для датчика температуры помещения.

Разъемы клемм

    Переключение режимов и поправка температуры

    Датчик температуры

    Общий ноль

Подключение к SmartWeb X

На контроллере SmartWeb X кроме обычных клемм S1…S9, есть два специальных разъема RC1 и RC2, они удобны для подключения комнатных модулей RC21:

В комплекте с контроллером SmartWeb X идут два обжатых трёхжильных провода. Обжатым концом провод подключается к контроллеру SmartWeb X, другим – к модулю RC20/21.

На модуле RC21 используются все 3 жилы провода:

    Зелёный провод регулировки режима работы подключается к контакту 1.

    Коричневый провод датчика температуры подключается к контакту 2.

    Белый провод общего нуля подключается к контакту 3

Для подключения модуля RC20 используйте только белый и зелёный провода. Полярность не учитывается.

Подключение к разъему RC 1

Чтобы привязать модуль RC21, подключенный к разъёму RC1, к программе комнатного устройства, зайдите в меню «Датчики» программы комнатного устройства.

Ко входу «Комнатный датч.» привяжите датчик S14.

Ко входу «RC21» привяжите датчик S15. Если у вас модуль RC20, оставьте вход «RC21» непривязанным.

Подключение к разъему RC 2

Чтобы привязать модуль RC21, подключенный к разъёму RC2, к программе комнатного устройства, зайдите в меню «Датчики» программы комнатного устройства.

Ко входу «Комнатный датч.» привяжите датчик S16.

Ко входу «RC21» привяжите датчик S17. Если у вас модуль RC20, оставьте вход «RC21» непривязанным.

Пульты Buderus Logamatic RC10/RC25/RC35 предназначены для систем управления Logamatic EMS и всех оснащенных EMS теплогенераторов. Каждый из них позволяет комфортно регулировать параметры отопительной установки. Можно, например, простым нажатием кнопки системы управления EMS запустить программу подготовки горячей воды или ручкой управления изменять комнатную температуру во всей квартире.

Системы управления EMS является единым блоком управления для многих котлов Будерус (Buderus). Установка параметров меню проста и интуитивно понятна. Графическая информация и светодиодная индикация позволяют быстро проконтролировать работу системы.

Buderus Logamatic RC10/RC25/RC35 - Простая и понятная автоматика:

Комнатные регуляторы обеспечивают простое управление всеми функциями отопительных котлов с системой Logamatic EMS. Они удобны и интуитивно понятны для любого пользователя.

Logamatic RC10/RC25/RC35 Комфорт в каждом доме:

Пульты управления RC10/RC25/RC35 имеют большой ЖК-дисплей, на котором отображается вся необходимая информация.

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

Простое меню со множеством заданных функций позволяет быстро выставить желаемые параметры и наслаждаться теплом и комфортом. Функционал систем управления EMS легко расширить с помощью дополнительных модулей.

Привлекательный дизайн и компактные размеры систем Будерус EMS позволяет смонтировать их в любом помещении. Монтаж устройств Buderus EMS не займет много времени и не потребует специальных инструментов.

Всем привет!

Ранее в своих предыдущих обзорах на RC тематику я обещал сделать обзор на трех канальную аппаратуру управления Fly Sky GT3B 2.4G, которая предназначена для машин и лодок. Я заказывал пульт с расчетом на то, что бы использовать его в связке с 1:8 трагги проф. уровня в электро конверсии .
Бонусом к обзору аппаратуры будет рассказ о нюансах сборки и использования RC моделей такого уровня.

Тестирование на модели 1:16


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

Бонус - рассказ о больших RC машинах:

Я всегда увлекался RC игрушками, начинал с самых простых машинок, потом пошли небольшие квадрокоптеры, вертолеты. Позже купил бюджетную авто модель 1:16. В ней устраивало все, кроме размера и постоянных поломок пластмассовых деталей. После нескольких ремонтов отставил её в сторону. И забросил RC машины в общем.
Листая форумы нашел однодумцев, которые катают на больших машинах у нас в городе. Встретившись с ними я понял что управлять такими «игрушками» намного интереснее.
Хотя слово игрушка не особо применимо к 1:8-1:5 моделям. Так как «под капотом» у них мощные трехфазные моторы размером с кулак, потребляющие до 2квт мощности. Элементы питания - силовые lipo батареи напряжением до 22,2В и токоотдачей 150-450A . Мотором и питанием системы в общем - управляет трехфазный ESC регулятор для бесколлекторных систем, рассчитанный на номинальную нагрузку 150-230A и более 950A в пике !


Узнал что для Offroad бывают такие классы моделей:




И медленные

После этой встречи начал искать нужную информацию по этой теме, читал отзывы, общался с друзьями. Решил купить б.у. шасси про уровня + отдельно конверсию под электро и сами компоненты.
Конверсия включает в себя мотораму и бокс для аккумулятора, которые крепятся на место нитро мотора и бензобака.

Вот так выглядел Xray после получения на почте
Сравнение размеров с Turnigy beatle и листом формата A2.


Элементы конверсии под электро и проставки для амортизаторов.


Многие элементы сделаны из металла, есть титановые части, остальное прочный ABS пластик, который может с легкостью потягаться по прочности с металлическими аналогами.
Так же в шаське присутствует около 20 пром подшипников, по 2 на колесо, остальные в элементах дифференциала.





Через время решился на заказ остальных комплектующих:

Мотор сенсорный
Регулятор сенсорный

Аккумуляторы 2 x
Серва , усилие около 15кг\см.

Комплектующие покупал в оффлайне, что бы сэкономить время.
Полностью собранная модель выглядела так:




Обклеил наклейками самодельную корку и новый спойлер:




Пиньен установил на 13, в комплекте с 48ым спуром и мотором на 2200KV (пиньен и спур это названия шестерен в передатке) должно давать макс скорость ~64-70км\ч. Собранный вес составил 4.4кг

Первые заезды показали отличную управляемость и мощность с запасом. На асфальте выход на максимальную скорость занимает 2-3 секунды. А сенсорная бесколлекторная система позволяет начинать движение очень плавно и ездить очень медленно. Обычная система без сенсоров обратной связи чаще всего начинает движение рывком и минимальная скорость значительно выше, чем у сенсорной БК.

Аккумулятора 4s 14.4V 5300mah хватает до 30 минут езды на Offroad трассе или до часу времени обычных покатушек.

Фото in action:







Вот так он дует покрышки, когда теряется сцепление с поверхностью.

Был очень доволен на протяжении первых двух заездов. А теперь расскажу о «ложке дегтя».

Друзья предупреждали что нужно следить за температурой мотора и качеством соединений между электрическими комплектующими. Но я особо не обратил на это внимание.
На дворе был солнечный день. Температура воздуха +40*C. Катали на трассе минут 15, после сильного удара в переднее колесо - заметил что машину сносит в сторону. Дело оказалось в треснутом рычаге (излишки покупки б.у. модели) и заклинившей дифференциал «кости», передающей усилие на левое колесо. В итоге 100% крутящего момента уходило на правое колесо.
Через минут 10 вернули все на место. И продолжили катать, отметив что мотор прилично горячий. Потом пошли прыжки с трамплина. Где то на пятом прыжке Xray дернулся в воздухе и полетел кубарем на землю. Сняли корку, нажали пару раз на газ, при этом колеса крутились рывками и явно медленнее чем должны. Дальше из мотора повалил густой едкий дым , провода, регулятор, аккумуляторы нагрелись очень сильно, до мотора просто нельзя было дотронуться. На этом опыте я убедился что с такими мощными системами нужно быть осторожнее.
Последний полет.

Начал вести переговоры с магазином, он в свою сторону с Hobbywing. Обещали подтвердить замену мотора по гарантии, так как не прошло и недели с момента покупки.
В это время друг дал в пользование свой мотор Orion 2400kv, с самодельной системой охлаждения. На нем я успешно откатал несколько покатушек в течении двух недель. Температура мотора была в порядке, на ощупь не более 40*C но это с использованием системы охлаждения с двумя кулерами.

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

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

Из повреждений на регуляторе - 3 конденсатора, как минимум 2 из 30 мосфетов (может и больше), и возможно драйвера управляющие ими. Времени на ремонт тогда особо не было. Отложил регулятор в сторону. А как время появилось - не нашел куда засунул коробку с некоторыми запчастями от него.

В общем заказал я новый регулятор на ALI (самая дешевая цена в 90$) и систему охлаждения там же.

Вывод: RC машины размером 1:8 и 1:5 - это уже не игрушки.
Огромная мощность > 1500 ватт, вес > 4-5кг и максимальная скорость выше 70км\ч требуют внимания и понимания ответственности в управлении, а так же понимания принципа работы и постоянных проверок всех узлов, подшипников, электрических соединений.

Мои Видео Xray XT8
Onroad

Вверх