Ик порт для компьютера usb своими руками

Ик порт для компьютера usb своими руками

Как самому слепить ИК порт для компа.

Автор: Дмитрий Оленников
Опубликовано 11.07.2007

Это вторая версия статьи. На первую можно взглянуть вот тут.

Однажды нужно было проверить доисторический (русский еще) ПДУ. Средств никаких не было. Покопавшись в инете, нашел несколько идей. Поразила идея сделать простенький ИК порт из: мышки! Компьютерной, разумеется. С этого девайса мы и начнем.

1.ИК порт из шариковой СОМ мышки.

Ошеломленный идеей, я пошел в чулан и накопал несколько шариковых мышей, одна другой старее. У более старой от компа шло 6 проводов, у более новой — четыре. Ее и взял. По четырем проводам проходили линии: RTS (Request To Send, запрос на отправку. Использовалась для питания схемы мыши.), Rx (по ней комп принимает данные), Tx (по ней комп передает данные), и конечно GND, земля.

На фотке штекер провода мышки. В ходе прозвонки я установил, что оранжевый проводок — RX, зеленый проводок — TX, белый проводок — RTS и синий проводок — земля.
Далее, для простоты отрезал кусок пластика и приклеил на нее штыревой разъем мыши (тот, что впаян в плату):

Потом выпаял из той же мыши фотодиодный мост и инфракрасный светодиод. Взял резистор 4.7 кОм из своих запасов. Девайс к резистору не критичен — можете поставить от 2 до 7 кОм, но при меньшем сопротивлении уменьшается радиус работы приемника. Вот как выглядят деталюхи (слева направо: фотодиодный мост, ИК светодиод, резистор):

Вот и схема девайса:

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

Девайс вышел рабочий — уверенный радиус приема — 5 см, передачи — 20 см. Для проверки пульта ДУ этого оказалось достаточно: не работает.

2. Продвинутый ИК приемопередающий девайс.

Раз уж разбежались, надо рассказать и о более продвинутом девайсе.

Порт состоит из приемника (микросхема TSOP и обвеска) и передатчика (светодиод HL1 и токоограничивающий резистор R2).
В приемнике применена специализированная микросхема TSOPXXXX. Она принимает сигнал с определенной частотой. Этим достигается высокая помехозащищенность. Так как они выпускаются в нескольких вариантах — на разную частоту фильтрации сигнала, необходимо выбрать нужный под конкретный пульт. Обратимся к даташиту:

Как видим — есть выбор: от 30 до 56 килогерц. В даташите написано, что максимальная скорость принимаемого сигнала — 2400 бод/сек, поэтому трудно судить, будет ли работать микра например с мобильником. Так выглядит TSOP1736:

Резистор R1 подтягивает линию RX к питанию (ведь все сигналы СОМ порта инвертированы), диод VD1 защищает схему от переполюсовки во время инициализации портов, кондер C1 защищает приемник от помех. Ну а стабилизатор 7805 конечно подгоняет напругу ИК приемнику. Советую ставить в корпусе TO-92 — по размерам меньше.
Передатчик особо не продвинут, отличается лишь более мощным ИК диодом. Можно поставить, например, L-34F3C, L-54F3C. Резистор R2 ограничивает ток через диод. ИК диод выглядит так:

Данный девайс хорошо принимает и передает на расстоянии до 5 м.
Если хотите поэкспериментировать, то вот распиновка СОМ порта, распространенная в интернете:

3. Программы для работы с ИК портами.

Теперь поговорим о программах. Я для проверки использовал прогу WinLirc. Прибор показал довольно неплохие результаты: радиус приема 5 см, радиус передачи — 20 см максимум. Все зависит от типа фотоэлементов. Для примера я приведу работу пример работы с пультом управления от музыкального центра.
Поговорим о настройке.
Запускаем ВинЛИРК. Она пишет: конфигурация неудачна, переконфигурируйте. Напечатайте в поле Path путь и имя конфигурационного файла и потом выполните действия: (замечу: такие настройки только для данного девайса):
1. В поле Port ставим номер порта, куда подключен девайс
2. Поле Speed оставляем нетронутым, хотя можете поэкспериментировать — старинные компы не хотят думать быстрее, чем 115200 бит/с.
3. Во фрейме Receiver type ставим RX device, т.к. ИК-светодиод (TSOP) подключен к RX ножке порта COM. Вы, конечно, можете подключить к DTR, но это будет самодельный шнур, а не от стандартной мыши, как здесь.
4. В Transmitter settings ставим TX. Можете подключить к DCD — ваше право.

Дальше нажимаем Raw Codes. Подносим пульт к приемнику и жмем кнопки. Если там начиняет рябить, типа: pulse 200, pulse 400, то все хокей. Если нет, смотрим девайс на наличие ошибок.

Теперь надо обучить глупую прогу науке, — распознавать команды вашего пульта. Закрываем окно просмотра, и жмем Learn. А там дальше руководствуемся английским языком, ибо прога буржуйская.
PS: Там, где прога скажет «нажми кнопку на пульте, и держи, пока не скажу», нужно не держать кнопку, а тыкать ее как можно быстрее — из личного опыта.
После учебы, жмем Analyze. Прога проверит конфиг, и скажет ОК. Закрываем окно.
Вроде всё. Нажимаем ОК в главном окне настройки. Прога свернется в трей. Жмем кнопки на пульте — если прога понимает команды, то она отзывается — цвет индикатора меняется с серого на зеленый. Для этой программы можно найти плагины для управления WinAMP»ом, для работы с TCP/IP.
Для продвинутого управления компьютером рекомендую прогу uICE.
Да и вообще, сейчас появилось много программ для этого дела. Рекомендую поискать в интернете.
Эта программа уже для управления компом с дивана — к ней вы тоже можете найти плагины для WinAmp.

Источник

Делаем ИК-порт своими руками

Любое событие влечет за собой цепочку различных последствий.

Все началось, когда я сменил мобильный телефон. Приобретенный телефон Siemens S65 имел на борту инфракрасный порт, а в компьютере такового не было. Пойти и купить готовый ИК-порт было бы очень просто: купил, подключил и что? А куда же пристроить руки?

Итак, принято решение, строим ИК-порт для своего компа.

После изучения своей материнской платы, был найден разъем для подключения ИК-порта. Это очень сильно упрощало поиск решения. Далее в Интернете быстро находим всевозможные схемы ИК-портов, среди которых схемы на специализированных трансмиттерных микросборках. Далее нужно было найти какой либо трансмиттер у себя в городе. Радиорынок, лучшее место для подобных поисков. После общения с несколькими «торговцами» импортными микросхемами был найден некий Стёпа, у которого есть такие микросхемы. Ассортимент конечно не радует, но мы же в конце концов не девушки, которые покупают себе губную помаду. Микросхема TFDS4500 обошлась аж в $2. Это при том, что готовый ИК-порт, на такой микросхеме стоит $10-$11.

Далее на сайте было найдено описание этой микросхемы со схемой включения:

и перечнем компонентов:

Так как схема включения несложная было принято решение собрать это все на куске макетной платы.

Итак, нам понадобится:

— Специализированная микросборка-трансмиттер TFDS4500

— 2 конденсатора и 2 резистора

— кусок макетной платы

— кабель с 4 жилами

— разъем для подключения к материнской плате

— паяльник и паяльные принадлежности

С одной стороны к кабелю присоединяем разъем и записываем, какого цвета провод какой сигнал будет нести. Для этого придется заглянуть в мануал от своей материнской платы. Обычно распиновка разъема следующая:

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

Другой конец кабеля запаиваем в монтажку и размещаем на ней нашу микросхему и ее обвес:

А на другой стороне при помощи перемычек соединяем детали по схеме.

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

Итак, ИК-порт готов, спешим его подключить и проверить. После подключения его к материнской плате нужно сказать БИОСу о наличии у него ИК-порта. Заходим в БИОС, находим параметр UART2 Mode Select и указываем значение IrDA. Так же нужно убедится, что материнская плата будет «правильно» распознавать уровни нашего ИК-порта. Для его правильной работы нужно чтобы значения RxD, TxD были установлены Hi, Lo. После включения компьютера операционная система найдет и установит драйвера для стандартного ИК-порта.

Собранный таким образом ИК-порт долго валялся около системного блока, но пользоваться им, в таком положении, мягко говоря, неудобно, да и кошка постоянно хотела его откусить и утащить. Было решено имплантировать его в корпус системного блока.

Системник НЕО на лицевой панели имеет пару USB разъемов прикрытых откидной крышкой.

Идеальное место для размещения ИК-порта.

Для его имплантации понадобится:

— Дрель с 3 мм сверлом или дремель с 3 мм фрезой

— Термоклей (пистолет, часто использующийся китайскими производителями всевозможных товаров)

— Кусочек красного акрила, своеобразный светофильтр чтобы закрыть излучатель

В корпусе было вырезано отверстие, через которое будет проходить свет.

Далее при помощи термоклея плата была закреплена напротив вырезанного отверстия. Термоклей оказался самым подходящим, для этой операции, прилипает ко всему, к чему можно прилипнуть в принципе, быстро застывает, не проводит ток не вызовет короткого замыкания.

Затем из красного акрила был вырезан квадратик подходящего размера и закреплен 3 мм винтом, прикрыв излучатель.

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

Шнур от ИК-порта был проведен в корпус параллельно со шлейфом от USB разъемов и подключен к материнской плате.

Все готово, закрываем корпус, загружаем, включаем в телефоне ИК-порт и устанавливаем его в рабочее положение.

Компьютер сразу его находит и сообщает о готовности приема-передачи данных.

После приятного проведения двух вечеров, комп имеет на борту ИК-порт.

Это и стало одним из звеньев той цепочки последствий приобретения нового телефона.

Источник

Дистанционное ИК управление компьютером по USB

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

1. Приемный модуль не совмещен с декодирующей частью. Декодирование ИК посылок осуществляется на ПК специальной программой. Как правило, схема приемника предельно проста. Подключение может быть реализовано через COM или LPT порты.
2. Прием и декодирование сигнала происходит в устройстве аппаратно. На ПК отправляется уже распознанная посылка. Распознавание может быть выполнено в виде реального кода, либо некого условного кода, который хоть и не является реальным для данного пульта, но обеспечивает однозначную идентификацию нажатой кнопки.

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

Вашему вниманию предлагается приемник-декодер, подключаемый по интерфейсу USB, позволяющий управлять приложениями на ПК по инфракрасному каналу. В устройстве происходит распознавание реальных кодов, таких протоколов как: NEC, SAMSUNG, JVC, RC5, SONY SIRC (15 bit). Этого достаточно для подавляющего большинства используемых пультов. В компьютер отправляется последовательность вида:
(toogle,device_low,device_high,command:system). Например, в случае посылки по протоколу NEC, где младшая часть адреса устройства 134, старшая –107, код команды -18: в ПК будет отправлена строка (0,134,107,18:NEC_CODE).
Значение toogle будет либо 0, либо 1 – чередование от нажатия к нажатию. При удержании кнопки значение данного параметра не будет меняться. В стандарте RC5 это штатная функция. В других форматах этого нет, поэтому приемник программно определяет удержание для протоколов, отличных от RC5.
Приемник может работать используя один из классов USB устройств – CDC или HID, в зависимости от прошивки. Это сделано из-за того, что имеются определенные преимущества и недостатки в работе этих классов друг перед другом.

Преимущества CDC:
Поскольку CDC это виртуальный COM порт, то принципы работы с ним простые и ничем не отличаются от работы с обычным COM портом. Не требуются специальные драйвера со стороны ПК (используются inf-файлы для разных ОС). Работает в XP, Vista, Win7. Можно увидеть посылки устройства обычным терминалом, в случае необходимости. Не загружает процессор – посылки отрабатываются только во время приема.

Недостатки CDC:
Как и с реальным портом, требуется постоянное соединение устройства. Отсоединенное устройство придется вручную присоединять в приложении на ПК (переоткрывать порт) – в некоторых случаях это может быть неудобно.

Преимущества HID:
Можно отсоединять и присоединять устройство «на горячую», программа на ПК будет автоматически его отслеживать и по цвету значка в трее, возможно определять состояние подключения.

Недостатки HID:
Для работы приложения требуется специальный драйвер. Был использован драйвер libusb-win32-filter-bin-0.1.12.1, который работает пока только на WinXP 32 bit. Если у вас другая операционная система, то остается CDC. Программа периодически опрашивает устройство, поэтому мизерная загрузка процессора в простое все же есть.

Контроллер – Atmega8 16AI (без индекса V, это важно). Светодиод D1 применен для снижения напряжения питания контроллера (5В), чтобы улучшить согласование уровней напряжения от МК с интерфейсными линиями USB (3.3В). Его переход обладает также стабилизирующими свойствами. Я применил яркий смд светодиод, выпаянный из ленты. Падение напряжения на диоде должно быть около 1.5В. В тоже время ИК приемник IR1 питается от 5В, поэтому диод D2 (лучше взять германиевый или Шоттки – с малым падением напряжения на переходе) защищает вход контроллера от перенапряжения. Переключатель SW1 применяется для переключения в режим программирования устройства. Об этом ниже.

Монтаж выполнен преимущественно смд элементами, вариант конструкции:

Для того, чтобы в последующем было удобно перепрограммировать устройство, в первый раз следует прошить бутлоадер (см. архив проекта, папка tools) по интерфейсу ISP любым удобным программатором. Прошивка рабочей программой далее выполняется по USB. Для этого следует замкнуть переключателем SW1 пин PB1 микроконтроллера на землю и присоединить устройство к порту USB. После этого запустить программу Upload.exe (оболочка для BootloadHID.exe) из папки default (или папки в которой находится hex-файл) соответствующего проекта. Откроется окно:

В строчку Firmware необходимо внести имя файла прошивки (без расширения). После этого нажать CMD Flash и подтвердить выбор. В окне:

Нажать кнопку CONFIRM и начнется процесс загрузки прошивки в контроллер. Остается только извлечь устройство, отключить PB1 от земли выключателем SW1и подключить снова к USB порту. Если был выбран класс устройства HID, то запроса на установку драйверов не последует. В диспетчере устройств можно увидеть новое оборудование. Для CDC класса в запросе на установку драйвера, необходимо указать нужный inf файл из папки inf (см. проект), в зависимости от ОС. После этого в системе появится виртуальный COM порт, в который будут приходить распознанные посылки.

Приложение для ПК находится в папке IRServer_WinLircCompatible. Выходные данные этой программы идентичны данным известной программы WinLirc. Поскольку являются, де-факто, стандартом для управляемых посредством сокетов приложений. Это означает, что с помощью данной программы можно управлять всеми приложениями, которыми позволяет управлять WinLirc. Многие из мультимедийных программ имеют встроенные средства или плагины для работы – LightAlloy, Aimp, KMPlayer, WinAmp и др. Остальными приложениями или функциями ПК можно управлять с помощью программ, которые также являются клиентами WinLirc, но реализуют отсылку управляемым приложениям WM-сообщений или посылку горячих клавиш (Girder, Device Control, MKey и многие другие).

Рассмотрим настройку программы, которая, в отличие от других приложений, достаточно проста. Главное окно программы:

Номер COM порта выбирается в зависимости от того, какой номер был присвоен устройству CDC. TCP порт установлен по умолчанию стандартным для WinLirc. Его можно изменять. Соответствующими кнопками можно управлять портами и сервером. Чекбокс «Use HID…» предназначен для устройства класса HID. В этом случае параметр Time HID Rq задает время опроса устройства в миллисекундах. В группе Info будут видны пришедшие и отправленные посылки, последнюю из которых (либо введенную вручную) можно отправить кнопкой Send. Также видно количество присоединенных к серверу клиентов (не более 16). Строки отправляются клиентам в виде Hash Counter Command Name. Где Hash составлен, для уникальности из кодов адреса и команды данного пульта и его вид нельзя изменить. Counter – переменная отражающая порядковый номер посылки при удержании. После прихода следующей посылки счетчик сбрасывается. Остальные два параметра задают команду (не обязательно в числовой форме) и имя пульта.

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

Для этого устанавливаем переключатель в положение Naming (Именование) и нажимаем любую кнопку на пульте. Если для этого пульта (его адреса) нет соответствующего файла настроек, то появится запрос на введение имени пульта:

Вводим имя (например, MSI) и жмем ОК. После вторичного нажатия на кнопку, программа определит, что имя данного пульта уже ассоциировано и предложит поименовать команду:

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

В данном случае видно, как отличается принятая и отправленная строки, а также реакцию управляемого клиента (Mkey), настроенного на команду right от пульта MSI (регулировка громкости).

Остальные настройки:
-Use only named: Передаваться клиентам будут только именованные команды от именованного пульта. Сделано для исключения реакции на посторонние пульты или ненастроенные/ненужные команды.
-Unnamed enable: помимо именованных команд будут переданы и неименованные (если таковые примет приемник).
-Naming disable: будут передаваться посылки напрямую, без именования.
Как правило, наиболее комфортна работа с включенной опцией Use only named после задания соответствия имен.
Кнопка ОК сворачивает приложение в трей, Cancel – закрывает приложение.

Общие замечания:
-По умолчанию COM порт настроен на скорость 9600 бод. Изменить, в случае необходимости, можно в ветке реестра:
HKEY_CURRENT_USER\Software\IRServer\COM_PORT параметр Baud_Rate.
-В ветке HKEY_CURRENT_USER\Software\IRServer\Other можно изменить VID/PID для устройства (класс HID) с которым работает сервер. Данные идентификаторы предоставляются разработчиком драйвера V-USB (AVR-USB) OBJECTIVE DEVELOPMENT Software GmbH бесплатно для некоммерческих устройств. Подробнее читайте в лицензионном соглашении.
-При использовании класса HID, необходимо установить библиотеку libusb-win32-filter-bin-0.1.12.1 из папки tools.
-Фьюзы МК следует настроить для работы от внешнего кварцевого резонатора 12 МГц, с включенным BOD на 2.7В (иначе возможно периодическое повреждение бутлоадера), с включенным загрузчиком размером 1024 байта (конфигурация фьюзов приведена в архиве)
-Переключатель SW1 на линии PB0 может быть использован для дополнительной конфигурации устройства (при соответствующем изменении программы). Либо на вывод PB0 можно подключить светодиод, индицирующий прием посылку. Для этого в файле nec_ir_module.h нужно раскомментировать строку #define LED_USE и пересобрать проект. После этого, разумеется, не следует устанавливать на пин PB0 переключатель, с риском повреждения МК. Переключатель на PB1 при этом следует сохранить.
-Приемник ИК излучения TSOP1736 использован в малогабаритном исполнении. Обратите внимание, что цоколевка у него отличается от обычного.

В архиве проекта присутствуют все необходимые файлы и исходные коды

Проект предоставляется «как есть». Все работы по подключению данного устройства к ПК проводятся на ваш риск. Автор ответственности не несет.

Источник

Читайте также:  Вязка своими руками новорожденному
Оцените статью