Оглавление:
- Шаг 1. Пульт дистанционного управления
- Шаг 2: Программное обеспечение
- Шаг 3: модуль ИК-приемника
- Шаг 4: Как использовать устройство
Видео: ИК-пульт дистанционного управления компьютером: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Помимо множества других целей, я использую свой компьютер как мультимедийный центр. Бывают случаи, когда я расслабляюсь на диване, слушаю музыку, смотрю фильм или телевизор, и мне не хочется вставать, чтобы отрегулировать громкость или переключить телеканал каждый раз, когда появляются глупые рекламные ролики или я засыпаю и желаю тишина. Поэтому я решил сделать свой компьютер дистанционно управляемым с помощью стандартного ИК-пульта дистанционного управления, чтобы я мог просто мгновенно нажать кнопку, вместо того, чтобы яростно хвататься за мышь или клавишу отключения звука на клавиатуре.
Проект состоит из нескольких частей:
- Дистанционное управление
- Программное обеспечение для ПК
- Модуль ИК-приемника
Шаг 1. Пульт дистанционного управления
С первым элементом - пультом дистанционного управления - разобраться несложно. Просто используйте любой ИК-пульт, который вам нравится. Тот, что продается, я использовал в комплекте с ИК-приемником - см. Рисунок. Единственная причина, по которой я выбрал этот тип, - это просто потому, что он у меня уже был дома.
Шаг 2: Программное обеспечение
Я создал программу для ОС GNU / Linux, работающую в терминале. Исходный код можно бесплатно скачать / использовать / поделиться / изменить. Чтобы скомпилировать код, просто введите в терминале команду типа gcc -o remotePC remotePC.c. Для запуска программы введите./remotePC.
Следующая информация на этом этапе адресована тем, кому интересно, как все работает.
Описание программы
Программа сначала проверяет, существует ли файл / dev / ttyACM0 или ttyACM1. Если это так, то проверяется, что идентификатор группы файла отличен от нуля. Это означает, что последовательный порт может считываться и записываться обычным пользователем. Затем в порт записываются два байта со значениями 0xAA 0x55, чтобы сигнализировать, что программа готова к приему данных. Входящие данные сравниваются с сохраненными значениями. Если совпадение найдено, выполняется предопределенное действие.
Регулятор громкости
Программа умеет включать / выключать звук, увеличивать / уменьшать уровень громкости на системном уровне. Это достигается с помощью программы pactl. Тогда команды выглядят так:
pactl set-раковина-mute 0 переключить
pactl набор-мойка-объем 0 + 10%
pactl набор-мойка-объем 0-10%
При необходимости установите требуемые пакеты.
Элемент управления VLC Media Player
Программа также может запускать / приостанавливать воспроизведение аудио / видео и менять дорожку на предыдущую / следующую в списке воспроизведения VLC Media Player. В этом случае используется шина рабочего стола. Команды:
dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc
/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause
dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc
/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. Next
dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc
/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. Previous
Шаг 3: модуль ИК-приемника
Третья часть проекта самая сложная, но все же довольно простая. Идея состоит в том, что ИК-приемник будет выводить сигнал на MCU, который преобразует его в уникальный номер. Затем этот номер будет передан на ПК через USB.
Модуль предназначен для установки внутри корпуса ПК и подключения кабеля к USB-разъему на материнской плате. Если вы предпочитаете внешнее подключение к USB, вам придется внести незначительные изменения.
MCU
Я построил модуль на микроконтроллере PIC16F1829. Выбор MCU не критичен, вы можете использовать любой другой MCU, если у вас есть возможность настроить исходный код. Я выбрал этот ПОС по двум причинам. Во-первых, он у меня был в наличии, а во-вторых, его контакты были частично повреждены из-за интенсивного использования в различных тестовых проектах. Поэтому я хотел использовать его в постоянном проекте, прежде чем он станет полностью непригодным для использования.:-)
ИК-приемник
Вторая часть, на которой основан модуль, - это ИК-приемник VS1838B, упомянутый в первом шаге.
Конвертер UART / USB
Третья часть - это MCP2221, который представляет собой преобразователь UART / I2C / USB.
Задача состоит в том, чтобы объединить эти 3 части для создания модуля, который сможет принимать сигналы от ИК-пульта дистанционного управления и передавать их на ПК.
Проводка
На первом рисунке - схема тестирования на макетной плате. Во втором - схема подключения.
Перечень запчастей
1 шт. PIC16F1829 (или любой другой MCU)
1 шт. VS1838B (или любой другой ИК-приемник)
1 шт. MCP2221 (или любой другой конвертер UART / USB)
2 шт. 4-контактный разъем
6-контактный разъем - 1 шт.
Резистор 100R - 1 шт.
2 шт резистор 10 кОм
2 шт резистор 330R
Конденсатор 470 нФ - 1 шт.
2 шт. Электролитический конденсатор 4,7 мкФ
Переключатель 1 шт. (Опционально)
Сборка печатной платы
Соберите модуль, используя схему. Вы можете использовать универсальную плату или создать собственную печатную плату. В последнем случае я предоставил файлы KiCad в архиве ниже.
Прошивка
Исходный код PIC, написанный с использованием MPLAB X IDE и компилятора XC8, доступен для загрузки ниже.
Примечания к исходному коду
Для тех, кто хотел бы знать, что именно делает программа, это следующие строки.
После завершения всех настроек горит красный светодиод, и MCU ожидает данных 0x55AA. После этого светодиод загорится зеленым, и MCU начнет обнаруживать сигнал от ИК-приемника с использованием прерываний. Он измеряет и записывает временные интервалы, в течение которых сигнал находится на высоком и низком уровнях. Затем это время преобразуется в 32-битное число, которое отправляется на ПК.
Соотношение между временем и окончательным числом определяется протоколом NEC.
Шаг 4: Как использовать устройство
Прошивка
Загрузите прошивку на PIC. Использую программатор PICkit 3.
Аппаратное обеспечение
Установите модуль ИК-приемника, как показано на рисунках:
- Подключите USB-разъем либо к внутреннему USB-разъему на материнской плате внутри корпуса ПК с помощью соответствующего 4-проводного кабеля, либо к внешнему USB-разъему с помощью стандартного USB-кабеля. Во втором случае вам нужно чем-то помочь себе, например как показано на 3-м рисунке для вдохновения.
- Подключите силовой кабель 5 В от источника питания внутри корпуса ПК к 4-контактному разъему. Или запитать модуль другим способом в случае внешнего использования.
Найдите описание контактов разъема USB на материнской плате. Я не уверен, соответствует ли проводка каким-либо стандартам, поэтому лучше убедиться. В моем случае есть два ряда контактов, по 5 контактов в верхнем ряду и 4 контакта в нижнем. Слева направо контакты: + 5 В, D-, D +, Gnd. 5-й пин в первом ряду не подключен. Я подключил кабель, как показано на второй картинке.
Программное обеспечение
Запускаем программу в терминале. Если все пойдет правильно, последним сообщением программы будет «ожидание данных…». Теперь, когда вы нажмете кнопку на пульте дистанционного управления, полученный код появится в терминале. Таким образом, вы будете знать, какая кнопка издает какой код.
Теперь вас ждут кое-какие вещи по программированию, но не беспокойтесь. В исходном коде программы нужно изменить всего несколько вещей, чтобы программа реагировала на ваш пульт дистанционного управления. Откройте файл remotePC.c в текстовом редакторе или в какой-нибудь IDE, если хотите, и замените мои коды на свои. Просто нажимайте кнопки, которые вы собираетесь использовать для каждого действия, одну за другой. Просто скопируйте коды, которые появляются в терминале, и вставьте их в исходный код в место с соответствующим действием.
Когда вы закончите, завершите программу и перекомпилируйте код с помощью команды gcc -o remotePC remotePC.c. Запустите программу еще раз, и с этого момента она будет реагировать на ваш пульт дистанционного управления.
Я использую этот способ с жестко запрограммированными действиями в программе, поскольку считаю бессмысленным тратить свое время на дальнейшее развитие проекта до состояния, когда можно добавлять / изменять коды / действия, например, в удобной для пользователя графической среде. Но если вы хотите сделать это или даже больше, вы можете.
Рекомендуемые:
Используйте тачпад старого ноутбука для управления компьютером !: 11 шагов (с изображениями)
Повторно используйте тачпад старого ноутбука для управления компьютером! Сенсорные панели ноутбука PS / 2 являются одними из самых крутых устройств пользовательского интерфейса для использования с микроконтроллером. Жесты скольжения и касания пальцами могут сделать управление вещами довольно простым и увлекательным способом. В этом руководстве давайте объединим его с
Блок управления компьютером: 10 шагов (с изображениями)
Блок управления компьютером: Всем привет! Я сделал этот блок, чтобы "улучшить" мой компьютер, с его помощью вы можете переключать интернет-соединение, аудиовыход и микрофонный вход. Вы также можете включать и выключать каждый вентилятор в корпусе вашего компьютера и контролировать их скорость, даже если они
Используйте заклинания для управления компьютером !: 7 шагов (с изображениями)
Используйте заклинания для управления компьютером! Вы когда-нибудь хотели использовать заклинания, подобные Гарри Поттеру? Немного поработав и немного поработав с распознаванием голоса, это можно освоить. Что вам понадобится для этого проекта: компьютер с микрофоном Windows XP или VistaA Немного времени и терпения! Если вам понравилась эта инструкция
Использование телефона Sony Ericsson с поддержкой Bluetooth для управления компьютером: 6 шагов
Использование телефона Sony Ericsson с поддержкой Bluetooth для управления компьютером: я уже некоторое время читал инструкции, и мне всегда хотелось делать некоторые из вещей, о которых писали люди, но я обнаружил, что смотрю на вещи, которые трудно сделать, потому что это действительно сложно, или
Отпуск кабеля дистанционного управления Olympus Evolt E510 (версия 2 с автофокусом на пульте дистанционного управления): 6 шагов (с изображениями)
Отпуск кабеля дистанционного управления Olympus Evolt E510 (версия 2 с автофокусом на пульте дистанционного управления): Вчера я построил простой пульт с одной кнопкой для своего Olympus E510. У большинства камер есть кнопка спуска затвора (та, которую вы нажимаете, чтобы сделать снимок), которая имеет два режима. Если слегка нажать кнопку, камера автоматически сфокусируется и измерит свет