ИК пульт дистанционного управления (IR RC) - ФОРУМ ДВ Робот dvrobot.ru
Воскресенье, 24.06.2018, 20:46
Главная Мой профиль Регистрация Выход
  • НАШ МАГАЗИН
  • Вы вошли как Гость | Группа "Гости"Приветствую Вас, Гость
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Модератор форума: GRACH, Serg  
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » ИК пульт дистанционного управления (IR RC) (разработка, изготовление, подключение к компьютеру)
    ИК пульт дистанционного управления (IR RC)
    m_wДата: Вторник, 27.11.2012, 03:16 | Сообщение # 1
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Ранее я рассказал об устройстве позволяющем анализировать протоколы ИК ПДУ и об устройстве предоставляющем возможность организации управления своей конструкцией с ИК ПДУ (http://forumdvrobot.ru/forum/3-23-1). Однако, тема не будет полностью раскрыта без описания разработки и изготовления своего пульта. За основу будет взят расшифрованный ранее протокол бытового пульта. Безусловно, можно разработать свой протокол, но сначала неплохо бы повторить уже существующее решение. А, потом можно будет заниматься упрощением, улучшением, оптимизированием, совершенствованием и т.д. и т.п. бесконечно. Приступим.

    Мой блог http://justforduino.blogspot.ru/

    Сообщение отредактировал m_w - Вторник, 27.11.2012, 03:55
     
    m_wДата: Вторник, 27.11.2012, 03:19 | Сообщение # 2
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Наш пульт должен мигать светодиодом с частотой 36 КГц. При этом период составит:

    (1.0 / 36000.0) * 1000000.0 = 27.778 мкс (us)

    Из них светодиод должен светить ровно половину времени:

    27.778 / 2.0 = 13.889 мкс (us)

    Включать и выключать светодиод будет таймер/счетчик 0. Это позволит получить необходимую точность. При частоте тактирования ATmega32U4 в 16 МГц и без предделителя таймер/счетчик 0 сделает один тик за:

    (1.0 / 16000000.0) * 1.0 * 1000000.0 = 0.0625 мкс (us)

    В 13.889 мкс (us) уложится:

    13.889 / 0.0625 = 222.224 тиков таймера.

    Таймер/счетчик 0 способен считать от 0 до 255. Эти цифра немного больше, чем требуется. Но, таймер/счетчик 0 имеет много различных режимов работы. Один из них - CTC (сброс по совпадению). Его я и использовал для того, чтобы заставить таймер/счетчик 0 считать от 0 до 223. А, код управляющий включением/выключением светодиода помещен в обработчик прерывания по совпадению.

    Посчитаем сколько раз будет вызываться обработчик прерывания по совпадению в временные промежутки протокола пульта:

    8988.0 / 13.889 = 647.131

    4413.0 / 13.889 = 317.733

    620.0 / 13.889 = 44.640

    490.0 / 13.889 = 35.280

    1610.0 / 13.889 = 115.920

    2160.0 / 13.889 = 155.519

    Было бы правильнее взять за основу среднее значение соответствующих периодов для всех кнопок. Я же немного упростил себе задачу.

    Теперь, когда происхождение всех "магических" чисел объяснено, можно показывать программу. Язык программирования - Си. Среда разработки - AVR Studio.


    Мой блог http://justforduino.blogspot.ru/

    Сообщение отредактировал m_w - Вторник, 27.11.2012, 03:34
     
    m_wДата: Вторник, 27.11.2012, 03:43 | Сообщение # 3
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    http://narod.ru/disk....ip.html

    Это устройство можно собрать из готовых модулей (продаваемых в местном магазинчике). Мозгом конструкции служит платка с микроконтроллером ATmega32U4. Еще необходим модуль ик передатчика. Желательно иметь клавиатурку. Но, у меня ее нет. Я ее заменил проводом. Один конец провода соединил с GND, а другим тыкал в выводы порта D на плате. Так делать не надо. Используйте нормальные кнопочные клавиатуры.



    Купить комплект ИК управления http://dvrobot.ru/shop/i187.ik%20upravlenie
    Купить ПДУ плюс ИК приемник http://dvrobot.ru/shop/i156.pdu_plyus_ik_priemnik.htm

    Ниже содержатся некоторые пояснения по соединению модулей.

    IR LED Module --- ATmega32U4

    S --- PB0
    + --- VCC
    - --- GND

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

    Все? Тема исчерпана? А вот и нет. Самодельный пульт можно подключить к компьютеру через USB-USART переходник. Таким образом мы сможем без проводов связать ПК и исполнительное устройство.



    Пояснения по соединению модулей.

    USB-USART --- ATmega32U4

    5V --- VCC
    TxD --- PD3
    RxD --- PD2
    GND --- GND

    Программа для микроконтроллера. Язык программирования - Си. Среда разработки - AVR Studio.
    Прикрепления: 5528263.jpg(130.7 Kb) · 6458618.jpg(139.3 Kb)


    Мой блог http://justforduino.blogspot.ru/

    Сообщение отредактировал m_w - Вторник, 27.11.2012, 03:51
     
    m_wДата: Вторник, 27.11.2012, 03:50 | Сообщение # 4
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    http://narod.ru/disk/64036774001.3248603d2fba1e7b5078901f7772bb85/mc_2_2.zip.html

    В данной программе используется скорость USART в 9600 bps так как, нет необходимости передавать данные быстрее.

    Разумеется, я написал программу и для ПК. Язык программирования - Python.

    http://narod.ru/disk/64036792001.3b3ffa25305c09ee31eceae21ed853f4/pc_2_1.zip.html

    Некоторые пояснения по программе. Сначала программа запрашивает номер порта. Нумерация портов начинается с нуля. Например, COM1 соответствует номер 0, а COM15 соответствует номер 14. Затем программа пытается открыть порт и если это не получается, просит ввести другой номер порта. После того как порт открыт появляется приглашение на ввод команд. Команда представляет собой число от 0 до 255. Завершается работа программы нажатием [Ctrl] + [C].



    В заключении хочется рассказать о путях развития проекта. Прежде всего, на основе этого проекта можно организовать единое управление всеми бытовыми приборами оснащенными ИК ПДУ. Это может выглядеть следующим образом. ИК передатчик, аналогичный описанному в этой статье, подключается к ПК. На ПК устанавливается специальное серверное ПО (может быть написано на python). Тогда можно будет управлять многими домашними устройствами (телевизор, плеер, музыкальный центр и др.) с планшета, ноутбука и компьютера, включенных в одну сеть (например, через WiFi). К этому всему можно добавить свои устройства (например, управление светом и т.д. и т.п.).

    Однако, у технологии ИК связи есть и недостатки. ИК передатчик работает в пределах одной комнаты. Стены непроницаемы для ИК излучения. К счастью эта проблема вполне решаема. Вместо USB-USART можно использовать bluetooth модуль. Со стороны ПК он виден как обычный COM порт. Работать с ним не сложнее чем с USB-USART переходником. Многие телефоны/планшеты способны непосредственно общаться с bluetooth устройствами. Так что, можно обойтись и без компьютера.



    В крайнем случае, из всего этого может получится неплохая игрушка к первому апреля или КС. Она, без сомнения, порадует не только создателя, но и его родных и близких. Восстание машин, ранее беспрекословно выполнявших команды ИК ПДУ. Это будет забавно.
    Прикрепления: 2043555.png(6.8 Kb) · 7401845.jpg(125.0 Kb)


    Мой блог http://justforduino.blogspot.ru/

    Сообщение отредактировал m_w - Воскресенье, 23.12.2012, 05:17
     
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » ИК пульт дистанционного управления (IR RC) (разработка, изготовление, подключение к компьютеру)
    • Страница 1 из 1
    • 1
    Поиск:

    ДВ Робот - Чат