Начало » Микроконтроллеры » Модуль ИК дистанционного управления ПК на микроконтроллере ATTiny26 для перелистывания презентаций. ИК-клавиатура на 2 кнопки

 
 
 

Модуль ИК дистанционного управления ПК на микроконтроллере ATTiny26 для перелистывания презентаций. ИК-клавиатура на 2 кнопки

06.02.17   maddiego   5 110   8  
Привет всем датагорцам! Возникла у меня в рабочем порядке проблемка. Есть неплохой проектор на потолке (Epson EB-X18) с кучей гнёзд и функций. Сделан капитальный ремонт помещения, а к проектору идут лишь два кабеля, VGA и питание. Источник слайдов — ноутбук. Задача: нужно переключать слайды при показе презентаций дистанционно, без участия помощника, который сидел бы за компьютером. Новый кабель USB или HDMI проводить… ковырять потолок и стенку… или кидать свисающий кабель с потолка… не вариант!

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

Я решил объединить ИК-пульт (взял от проектора) + ИК-приёмник из закромов + микроконтроллер AVR + плату от побитой жизнью USB-клавиатуры ПК. Так родилась в моей голове мысль об «инфракрасной клавиатуре» всего на пару клавиш: чтобы нажатие кнопок на ИК-пульте вызывало отрабатывание нажатий кнопок «PgUp» и «PgDn» клавиатуры ПК.
Хм, звучит неплохо. К делу!

Путь от идеи к началу проектирования


Собственно вот он, пульт от проектора

Так как для переключения слайдов достаточно двух кнопок, я решил использовать кнопки «Вправо» и «Влево» от пульта, как команды «Следующий слайд» и «Предыдущий слайд» соответственно.
Ещё задействовал центральную кнопку как «Следующий слайд», для удобства – ведь она самая крупная и чаще всего используется.

Осталось узнать, по какому протоколу работает пульт, чтобы использовать в программе МК. В Интернете, к сожалению, для этого пульта такие тонкости не описаны. Осциллографа у меня нет. Собирать дешифратор команд лень.

И тут пришла ещё одна бредовая идея! Использовать аудиокарту компьютера плюс любой редактор аудиофайлов как осциллограф. Всё просто, входные ёмкости карты пропускают частоту в диапазоне примерно от 30 Гц до 16 кГц, т.е. скорости должно хватить для захвата сигнала от ИК-приёмника, который я добыл для этого проекта из горелого ресивера.

Модуль ИК дистанционного управления ПК на микроконтроллере ATTiny26 для перелистывания презентаций. ИК-клавиатура на 2 кнопки
ИК-приёмник для пультов ДУ


Подал питание на ИК-приёмник, а его выход подключил на микрофонный вход аудиокарты через регулятор громкости (он же делитель на резисторах). Поставил на запись микрофонный канал, начал нажимать на кнопки пульта и мне повезло, частота ИК излучателя пульта (а она может быть от 36 до 40 кГц) от проектора совпала с ИК-приёмником и я увидел на экране колебания!


Вот они, колебания!


Наигравшись, я увеличил масштаб и отчётливо увидел бинарный код, который шлёт пульт ДУ. Отправляет он два одинаковых пакета подряд, таким образом, разработчики Epson повысили надёжность передачи команды и принятие её проектором. Если зажать кнопку на пульте, то пакеты сыпятся подряд и это пища для раздумий при написании программы обработчика таких команд, об этом позже.


Один пакет от пульта ДУ

Используя инструмент программы «Выделение» я узнал ширину импульсов в миллисекундах и пришёл к выводу, что пульт работает по протоколу, похожему на протокол NEC. У пакета имеется стартовый бит в 9 мс, пауза в 4,5 мс, далее идёт адрес из 2-х байт и команда, ещё из 2-х байт, логическая единица передаётся в течении 2,25 мс, а логический ноль 1,12 мс.


Пример протокола NEC

В общем, благодаря самодельному «осциллографу», я узнал адрес пульта и коды нужных мне кнопок. Как видно на фото с пультом, на фоне валяется пульт от ресивера «Openbox», который я также внёс в программу, для тестов. Пусть будет, всё равно у него оказался такой же протокол NEC.

Схемы ИК-клавиатуры для презентаций

Хотел я использовать «мелочь пузатую» - микроконтроллер ATTiny13, но на практике стало понятно, что его встроенная RC-цепочка сильно «гуляет» по частоте при изменении температуры окружающей среды, и питания, и ещё неизвестно от чего, так то всё работает не стабильно. Это не допустимо для таймера захвата импульсов от ИК-приёмника, который должен работать строго и точно. Пришлось взять микроконтроллер «пожирнее», Tiny26. Он и с кварцем работает, и памяти в 2 раза больше, да и в случае надобности увеличения количества кнопок, выводов у него тоже хватит. Так появилась принципиальная схема. Дроссели играют роль больше перемычек, нежели фильтров.
Исключён фрагмент. Полный вариант статьи доступен меценатам и полноправным членам сообщества. Читай условия доступа.


Настала пора мучить USB-клавиатуру ПК. Я разобрал её, вытащил плату и рассмотрел всё под яркой настольной лампой. В ней есть плёнка с кнопками, плата и USB-провода. Взяв плёнку клавиатуры, и проследил по ней путь от кнопок PAGE UP и DOWN до контактов платы.

Взял за хвост плату клавиатуры и увидел, что дорожки на плёнке привели меня к контактам C13+R7 для PAGE DOWN и C13+R6 для PAGE UP. Подключил платку клавиатуры к компьютеру, замкнул пинцетом найденные контакты. Сработало, значит, не ошибся!
Решил уменьшить габариты платы и убрать ненужные контакты, сделал разметку, проверил, что нужные дорожки сохранены, и давай её пилить.


Было вот так.


Стало так.


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


Готовый модуль с ИК-приёмником, подключается по USB к ПК.


Модуль в сборе.


Программная часть

На момент сборки схемы в магазине не оказалось кварца на 4МГц, пришлось брать на 4.096МГц, зато частота кратна 8, что немного облегчило мне процедуру расчёта скорости работы таймера захвата, который работает ровно на 16 кГц. В принципе, разность частоты составляет всего 2,4%, что теоретически позволяет использовать кварц на 4 МГц (в Proteus всё прекрасно работает на обоих кварцах).
В любом случае, проверить это на практике я уже не смогу, а подогнать таймслоты всегда можно используя исходник.

Для этого в начале программы есть макросы соотношения микросекунд на 1 единицу (62.5 us / 1):

//временные пороги импульсов от ИК датчика
#define START_IR_MAX		224	// 14.0ms (62.5us / 1) 
#define START_IR_MIN		208	// 13.0ms
#define BIT_IR_MAX		40	// 2.875ms
#define BIT_IR_MIN		30	// 1.625ms 

Также ниже прилагаю файлы демонстрационного стенда на Протеусе, там для наглядности работы эмулирован пульт ДУ и ИК приёмник.

Немало времени я потратил на обработку команд от пульта, которые сыпятся пачками, если держать любую кнопку, и в итоге решил поставить задержку на 240 мс между отправкой компьютеру команд на переключение слайдов. Задержку можно сменить в начале программы:
//интервал между импульсами отправки команды компьютеру
#define KEY_SPEED 120 //интервал в мс * 2 (120*2=240мс)

Программа занимает всего 28% флеш памяти. Все строки исходного кода прокомментированы.
Фьюзы настроены лишь на тактирование от внешнего кварца, остальные фьюзы заводские.

К сожалению, какие именно фьюзы надо выставлять, касаемо тактирования от кварца, привести я не могу, т.к. использую для прошивки программу AVR Studio 4, а в ней есть готовые варианты источников тактирования.

Но думаю это не так критично.

Наладка устройства

Наладка заключается лишь в перекомпилировании исходника под свой пульт, который у каждого разный, для этого в конце программы есть условный оператор «if», который и отвечает за фильтрацию команд. Печатная плата начинает работать сразу после подключения к компьютеру.
//проверка адреса команды от ПДУ
if((temp[0]==193 && temp[1]==170) || //ПДУ от проектора
 (temp[0]==64 && temp[1]==64)) //ПДУ от openbox hd-1
 { 
 //была нажата кнопка PAGE_UP или UP на ПДУ
 if((temp[2]==208 && temp[3]==47) ||
 (temp[2]==97 && temp[3]==158) ||
 (temp[2]==13 && temp[3]==242)) //97/158//13/242
 {...}

На момент тестирования устройства, я долго недоумевал, почему при точном расчёте времени таймера захвата, ИК-приёмник срабатывал через раз. Как я не бился, всё никак. Оказалось, у меня настольная лампа оборудована лампочкой дневного света, и она, заррраза, мерцает! Тем самым, свет от неё попадая на ИК-приёмник, создавал в нём помехи, ведь технология передачи сигнала от пульта до ИК-приёмника использует несущую модуляцию в диапазоне 36-40 кГц. Не хилый такой подводный камень!

Файлы

Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.


Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.


Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.


Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.


Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.



Заключение

Как ещё можно использовать ресурсы применённого микроконтроллер? Можно было добавить функцию обучения, дабы принимать команды от почти любого пульта и помнить его адрес + коды команд. Но, разнообразие пультов огромно и протоколы у многих собственные. На такую функцию у меня ушло бы много времени, а меня поторапливали, и я отдал устройство в работу. Да и пультов у меня дома всего пара: нечем и не на чем всё это дело проверять.

Но мой проект изначально был нацелен на одну конкретную задачу, которую он целиком выполняет: теперь лектор сам листает презентацию в нужный ему момент. Нажатие кнопок на пульте вызывает отрабатывание нажатий кнопок «PgUp» и «PgDn» клавиатуры ПК.

А ещё проект несёт учебный характер, код закомментирован, а кнопки клавиатуры ПК вы можете выбрать сами.

На этом всё. Благодарю за внимание!

Камрад, кликай и смотри датагорские рекомендации

💰Внимание! 800 рублей для новичков на Aliexpress💰 Регистрируйтесь по моей ссылке. Если вы впервые на Aliexpress - получите 800.00₽ купонами на свой первый заказ.
Тимур (maddiego)
Узбекистан, Ташкент
Профиль maddiego
Мне 27, с паяльником подружился в 10 лет. В 22 скатился в сферу микроконтроллеров.
 

Читательское голосование

Нравится

Статью одобрили 36 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Проект «BRASS». Часть 2. Блок ДУ и mp3-модуль... Привет, камрады! Всех с майскими праздниками Мира, Труда, Радио и Победы! В первой части статьи о...
Схема на Датагоре. Новая статья Модули микшерного пульта. Мартиньяк Ф.... Мартиньяк Филлип. Модули микшерного пульта. Перевод с фр. — М. ДМК-Пресс, 2002г. 144 с; ил. В...
Схема на Датагоре. Новая статья Не стартует материнка от кнопки питания. Лечим очень нетривиальным методом... Приветствую читателей журнала Датагор! Есть у меня пожилой компьютер, которому уже исполнилось лет...
Схема на Датагоре. Новая статья Блок управления аудиоусилителем с лестничным регулятором громкости и ДУ... Сделал я усилитель SE на ГУ-50 и как обычно встал вопрос о регуляторе громкости. Ставить обычный СП...
Схема на Датагоре. Новая статья Регулятор громкости и тембра с ДУ на TDA8425 + ATMEL AT90S4433... Когда-то, в 2005-2006 году, мной был сделан регулятор громкости и тембра на TDA8425 с ДУ. Статья...
Схема на Датагоре. Новая статья Микшер Numark DM2002X изнутри. Насколько страдает качество при серийном производстве?... Если вы считаете себя радиолюбителем, то вероятно ваши знакомые тоже так считают, и разумеется...
Схема на Датагоре. Новая статья Облегченный лестничный регулятор громкости с дистанционным управлением... Конструкция регулятора громкости (РГ) в моей статье на Датагоре "Блок управления аудиоусилителем с...
Схема на Датагоре. Новая статья Портативный анализатор ИК сигналов «IR-master»... Каждый радиолюбитель сталкивающийся с применением в своих конструкциях дистанционных пультов...
Схема на Датагоре. Новая статья Регулятор громкости на TDA7313 и PIC 16F876A.... Для новой конструкции мне понадобился блок управления громкостью и тембрами. Я выбрал...
Схема на Датагоре. Новая статья Lossless аудио плеер на базе mini-ITX материнской платы ASUS AT5NM10T-I + Intel Atom D525... С детства люблю слушать музыку. Всегда было много катушек с записями. Возьмешь список, найдешь...
Схема на Датагоре. Новая статья Микроконтроллеры. Связь с внешним миром. Часть 1. Клавиатура... Очень давно обещал продолжить цикл статей по работе с микроконтроллерами, но не было физической...
Схема на Датагоре. Новая статья осциллограф с1-68... Выкладываю обещанное на форуме полное техническое описание и руководство по эксплуатации...
 

Общаемся по статье 💬

Модуль ИК дистанционного управления ПК на микроконтроллере ATTiny26 для перелистывания презентаций. ИК-клавиатура на 2 кнопки

Комментарии, вопросы, ответы, дополнения, отзывы

 

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 1 от 06-02-17, 16:11.
  • С нами с 26.02.2006
  • 2 278 комментариев
  • 275 публикаций
 
Тимур, спасибо за статью и полезное устройство.
Я сам не раз попадал в ситуацию, когда для проведения лекции или презентации требуется минимум два человека :grinning: Понятно, что причина этого кроется в организационных проблемах учреждения.
Тем не менее, твоя ИК-клавиатура на две кнопки полностью решает проблему, не зависимо от причин.

Плюс можно похулиганить и пошутить над собратом, управляя другими кнопками клавиатуры ПК. wink

  Осциллографа у меня нет.
Тимур, я думаю, мы это поправим!

<

Yamazaki

Сергей Читатель Датагора
  • Гражданин
Комментарий # 2 от 06-02-17, 16:15.
  • С нами с 2.07.2009
  • 195 комментариев
  • 11 публикаций
 
Если на компьютере есть ком-порт, можно подключить такой приемник и без микроконтроллера. Но ваш вариант предпочтительнее, т.к. совместим с любым компьютером без плясок с бубном .

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 3 от 06-02-17, 16:27.
  • С нами с 26.02.2006
  • 2 278 комментариев
  • 275 публикаций
 
Сергей,
на современных ноутбуках (нетбуках и подавно) com-порт не найдешь днём с огнём. Да чего там на современных, уже лет 5 такая тенденция.
Кроме этого потребуется какой-то софт, который будет интерпретировать команды на входе ИК-приёмника с ком-порта и рулить презентацией MS Power Point, например.

А у Тимура срабатывает "кусочек" стандартной USB-клавиатуры ПК. Т.е. человек нажимая на пульт как-будто реально жмёт клавиши ПК.

Ещё мне очень понравился ход мыслей и находчивость автора.
Ёлки-палки, как он исследовал ИК-протокол! Браво! :grinning:

<

StalKer-NightMan

Игорь Читатель Датагора
  • Гражданин
Комментарий # 4 от 07-02-17, 12:06.
  • С нами с 15.03.2012
  • 96 комментариев
  • 1 публикация
 
Да, изящное инженерное решение!!!

<

maddiego

Тимур Читатель Датагора
  • Гражданин
Комментарий # 5 от 07-02-17, 12:13.
  • С нами с 2.08.2016
  • 26 комментариев
  • 8 публикаций
 
Цитата: Datagor
  Плюс можно похулиганить и пошутить над собратом, управляя другими кнопками клавиатуры ПК. wink

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

Цитата: Datagor
  
  Осциллографа у меня нет.
Тимур, я думаю, мы это поправим!

Был бы беспредельно рад и благодарен!

Цитата: Yamazaki
  Если на компьютере есть ком-порт, можно подключить такой приемник и без микроконтроллера. Но ваш вариант предпочтительнее, т.к. совместим с любым компьютером без плясок с бубном .

Даже если нету ком-порта, думаю можно применить RS232, USB to UART конвертер, конечно, он стоит почти как сама клавиатура, но в сочетании с МК, можно добиться нечто подобного.

Цитата: Datagor
  Ещё мне очень понравился ход мыслей и находчивость автора.
Ёлки-палки, как он исследовал ИК-протокол! Браво! :grinning:

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

<

dimon5000

Дмитрий Читатель Датагора
  • Гражданин
Комментарий # 6 от 09-02-17, 19:25.
  • С нами с 11.08.2011
  • 11 комментариев
  • 0 публикаций
 
Интересная реализация данного устройства. У меня как-то была идея повторить домашний медиа центр на основе древнего пк, по мотивам статьи приведенной здесь "домашний медиа плеер из пк". Но потом обстоятельства изменились, и идея так и осталась идеей. Однако, пока я ее думал, я все думал как запилить управление плеером без использования внешней клавы. И тоже посетила мысль разобрать клаву, вытащить из нее плату, по дорожкам отследить нужные кнопки и таким образом рулить плеером. Ну а потом, переезды, учеба, массовое появление mp3 плееров, телефонов, флешек... В общем, так и не реализовалась задумка.

<

ilyap

Илья Читатель Датагора
  • Кандидат
Комментарий # 7 от 17-03-17, 10:38.
  • С нами с 22.01.2010
  • 5 комментариев
  • 0 публикаций
 
Arduino Leonardo умеет "прикидываться" HID-устройством. Так что можно сделать на нем свою реализацию клавиатуры.

<

Владимир

Читатель Датагора
  • Прохожий
Комментарий # 8 от 03-07-18, 3:30.
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
Мало кто знает но на многих материнских платах есть колодка инфракрасного модуля, позволяет
(5-контактный пометка обычно IR1) подключить дополнительный модуль беспроводного
инфракрасного
приемопередатчика.

Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.