Универсальный ИК приёмник без драйверов и ПО.

16 июня 2010, среда 12:31
Введение.

Однажды, после кражи магнитолы из моего автомобиля я решил, что нужно сделать что-то такое, что будет неинтересно ворам, но очень функционально и удовлетворять мои потребности в мультимедии в машине. Поэтому я решил интегрировать в машину компьютер, в России это направление пока ещё слабо развито, а вот в США уже люди давно этим занимаются.
Однако и у нас в стране не мало людей, серьёзно занимающихся этим делом. Есть несколько информативных форумов(например, pccar.ru), неплохих магазинов(carmonitor.ru), ну и студий, которые помогут вам, если вы хотите повторить это у себя в авто.

Одной из проблем при построении так называемого CarPC является безопасное управление компьютером во время движения автомобиля, в основном для этого используется сенсорный дисплей со специальным набором программ(я использую[url="http://www.centrafuse.com/"]Centrafuse 3.1[/url]). Однако это всё-равно заставляет отвлекаться и переводить взгляд с дороги на монитор, намного удобней управлять часто используемыми функциями при помощи "нарульного" пульта от магнитолы. В 99% случаев это ИК пульты, поэтому в статье я расскажу как можно сделать(или приобрести и кастомизировать под свой пульт) ИК приёмник, который не требует драйверов и ПО после настройки, которую необходимо выполнить один раз.

Описанный мною ИК приёмник позволяет настроить его на приём сигналов от нарульного ИК пульта оставшегося от магнитолы: JVC RM-RK39 и управлять наиболее часто используемыми мною функциями программной оболочки Centrafuse 3.1(громкость, стоп/играть, следующий, предыдущий и т.д.) во время движения автомобиля, не отвлекаясь от дороги. Однако приёмник можно настроить на практически любой ИК пульт и выполнять практически любое управление, в ОС и программах, которые поддерживают горячие клавиши.

Конечно существуют и более простые способы ИК приёмников, но они имеют множество недостатков, я и сам ранее уже делал самодельный приёмник. [url="http://www.pccar.ru/showthread.php?t=8458"]Тут[/url] описан мой проект по построению PCCar, там же есть и описание "старого" ИК приёмника, неудовлетворяющий моим сегодняшним требованиям.

Сейчас я перешёл на Windows 7 x64(купил лицензионный, домашняя базовая), всё мне нравится, но вот мой ИК приёмничек не имеет драйверов для x64(точнее есть какие-то, но не имеющие цифровую подпись, а запускать лиц. винду в тестовом режиме, как-то не по-человечьи). Да и кроме этого мой ИК приёмник имел ряд недостатков:
1) новые пульты не понимает(хотя мой JVC RM-RK39 к ним не относится),
2) имеет ложные срабатывания(как только на встречу едет машина с ксеноном - может самопроизвольно порегулировать чо-нидь, редко, но бывало),
3) Через USB-хаб не работает(что стало для меня актуально, когда добавились другие USB устройства)
4) Не работает под Windows 7

Чтобы не читать статью до конца, сразу выделю плюсы и минусы описанного в ней устройства:
1) После первоначальной настройки (во время эксплуатации) не требует стонних драйверов и дополнительных программ(типа SlyControl, Перехватъ и т.д. Устройство определяется как HID клавиатура + HID мышь(см. пункт 6), дрова под неё есть в любой винде штатно). Настройку можно провести только на WinXP или Win2000 и только с помощью программатора.
2) Эмулирует нажатие любых комбинаций клавиш(т.е. вы нажимаете кнопку пульта - Windows думает что нажали определённую клавишу или сочетание клавиш) очень удобно в Centrafuse использовать горячие клавиши.
3) Работает с большинством (98%) современных пультов (за бортом остались только экзотические и допотопные).
4) Работает стабильно и не имеет ложных срабатываний видит сигнал хоть из багажника.
5) Опционально(в этой статье не описано) есть вывод штатного управления тремя внешним нагрузками с возможностью расширения до 256 через SPI (их поддержку можно заказать на сайте автора данного программно аппаратного комплекса).
6) Опционально(в этой статье не описано) есть возможность управления курсором мыши.

Вот как оно выглядит:


Итак переходим описанию:
Порывшись очередной раз в интернете, я набрёл, на уже известный мне сайт: http://www.mindrunway.ru/, пожалуй, это лучшее описание как сделать самому действительно хороший ИК приёмник. Сайт очень информативный, поэтому чтобы людям не разбираться в нём неделю-другую, я опишу алгоритм применения этой информации для CarPC.

Итак имеем нарульный пульт(или любой другой ИК пульт, я буду описывать, как делал, имея пульт JVC RM-RK39).

1) Собираем устройство по [URL="http://www.mindrunway.ru/IgorPlug2/IgorPlug_A4.pdf"]этой[/URL] схеме. Если в SMD корпусе, то по [URL="http://www.mindrunway.ru/IgorPlug2/IgorPlug2Mini.pdf"]этой[/URL] схеме. Готовые [URL="http://www.mindrunway.ru/Layot.html"]варианты[/URL] дизайна печатных плат. Либо покупаем готовое устройство, собранное по этой [URL="http://www.redray.ru/products/rr2flash/kit/IgorPlug-2_sch.pdf"]схеме[/URL]. Я морочиться не стал, т.к. схема компактней и проще выглядит в SOIC версии, с использованием двусторонней платы, которые в домашних условиях сделать непросто(хотя некоторые делают), но есть варианты и DIP исполнения, схема и варианты реализации её есть на [URL="http://www.mindrunway.ru/IgorPlug2.html"]сайте[/URL]. Обратите внимание, что реализовывать нужно версию с возможностью внутрисхемного программирования, чтобы не припаивать концы программатора при перепрошивке к контроллеру (автор в последующем планировал систему самообновления через USB, но пока она не готова). В DIP исполнении можно конечно использовать и кроватку и прошивать контроллер напрямую отдельно.
Проще заказать готовое устройство на [URL="http://www.redray.ru/products/rr2flash/grani-kit.htm"]этом[/URL] сайте. С учётом доставки из Уфы в Москву почтой за 10 дней, мне это вышло в 649 руб. вроде. Делается всё у них там через форму заказов, оплачивается через Яндекс.Деньги(я оплатил через ближайший терминал, просто закинув им на кошелёк нужную сумму).
2) [URL="http://www.mindrunway.ru/Pony/PlataProg.zip"]Собираем[/URL] или [URL="http://www.masterkit.ru/main/set.php?code_id=255327"]покупаем[/URL] программатор. Я опять же купил за 330 руб, с самовывозом в Дельта Электроника. Можно и за 550 в "зажравшемся" чип-дипе. Есть программаторы и для COM порта и для [URL="http://www.mindrunway.ru/PetkaAvrUsb.html"]USB[/URL]. Проще всего LPT вариант, которым я и воспользовался(дома есть старый комп с LPT). Вы также можете при оформлении заказа договориться с [url]www.redray.ru[/url] и они вам прошьют ваш пульт и под ваше сочетание клавиш.
3) Для тех кто купил готовое устройство - собираем простейший переходничок:

Дело в том, что на приёмнике есть разъём для внутрисхемного программирования контроллера ISP6, но он редко используется на всех AVR программаторах чаще используется разъем ISP10, вот и приходится проводочки подвести к нужным контактам. Вот схема ответной части на отлаживаемой плате, вид сверху, в эту контактную площадку вставляется шлейф программатора:

соответственно нужно подвести нужные нам 6 из них к контактам устройства:

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

Итак, с железной частью на этом всё, приступаем к программной части.
[COLOR="Red"]Внимание! Программная часть нужна лишь один раз, для настройки вашего пульта и соответствия горячих клавиш вашего приложения. Если у вас пульт JVC RM-RK39 и вы пользуетесь Centrafuse, то вы можете прошить приложенную прошивку(firmware.rar) и на 90% есть вероятность, что всё сразу заработает, если нет - значит ваш пульт сделан другим производителем и имеет другие характеристики и его нужно обучить следуя дальнейшей инструкции.[/COLOR]

Прошивка устройства
Чтобы тем у кого уже всё есть как я выше описал дальше далеко не читать, процесс программирования опишу тут:
Ищем комп с портом LPT .
1) Вставляем программатор в LPT. Соединяем через вышеописанный переходник с разъемом ISP6 USB ИК приёмника и вставляем приёмник в USB порт компа. Включаем комп(можно всё это делать в указанной последовательности и при включённом компе, ничего страшного не будет).
2) Из вложения (firmware.rar) распаковываем папку PonyProg2000 запускаем setup.exe, следуем инструкциям и устанавливаем программу PonyProg. При первом запуске в появившемся окне Нажимаем ОК, и на вопрос Откалибровать программу, тоже ОК, потом ещё раз ОК и заходим в меню Setup -> Calibration, отвечаем YES, ждём, нажимаем ОК. Далее заходим в меню Setup -> Interface Setup... Тыркаем в Parallel и выбираем "Avr ISP I/O", тыркаем в LPT1, нажимаем ОК. Закрываем программу.
3) Из вложения (firmware.rar) распаковываем папку HID Прошивка, запускаем файл BeliyM8.e2s, отвечаем YES на вопрос, ждём окончания прошивки. Закрываем PonyProg(или он сам закроется, я не помню)
4) Отключаем переходник от разъема ИК приёмника, отключаем программатор. ИК приемник автоматом определится и будут установлены драйвера HID клавиатуры и HID мыши, если этого не произошло, вынимаем устройство и вставляем заново.

Если у вас пульт JVC RM-RK39, то Windows будет понимать нажатие кнопок пульта как нажатие сочетаний клавиш в соответствии с табличкой:
Кнопка пульта_|_Клавиши клавиатуры__|_Команды в Centrafuse
_____________|_____________________|____________________
Vol - ________|_Alt+5________________|_Уменьшить Громкость
Vol + ________|_Alt+4________________|_Увеличить Громкость
Left _________|_Alt+2________________|_Загрузить предыдущий трэк
Right ________|_Alt+3________________|_Загрузить следующий трэк
Up __________|_Alt+0________________|_Проиграть аудио/Пауза аудио
Down ________|_Ctrl+Alt+V____________|_Переключить речь
ATT _________|_Alt+6________________|_Без звука
SRC _________|_Ctrl+Alt+A____________|_Ответить на звонок

Если у вас другой пульт или вам хотелось бы назначить другие действия или сочетания клавиш для другой проги, вам необходимо провести полный цикл настройки системы, используя [URL="http://www.mindrunway.ru/IgorPlHex/HexV9M08v3min.zip"]эту[/URL] прошивку и читать дальше
Если вы не прошивались ещё, то просто читать дальше.

Разархивируем вложения hid.rar, Oscilloscope.rar

Шаг 1 Создание 3-х слепков вашего пульта

1.1. Запустить программу IR Oscilloscope (Oscilloscope\Oscilloscope.exe).
1.2. Выбрать нужный вариант настроек (9 и 10 для работы через драйвер).
1.3. Перейти на вкладку "Oscillograf".
1.4. Открыть файл соответствующий вашему пульту. Для этого нажать File -> Open Cod File -> найти по названию файл с соответствующим названием в каталоге Oscilloscope\SpisalPult это будет так называемый первый слепок, т.е. он уже есть и его делать не нужно, хотя автор методики и рекомендует сделать, но у меня и так заработало. Я выбрал Oscilloscope\SpisalPult\JVC\JVC_RM-RK39_102.txt. (Если вашего пульта нет в каталоге, то идём [URL="http://www.mindrunway.ru/SoftIROsI.html"]сюда[/URL] и выполняем все Части с 1-ой по 3-ю. Если есть, читаем дальше.)
1.5. Перейти на вкладку "Oscillograf".
1.6. Нажать кнопку "Создание слепка".
1.7. Появится окно, в котором надо нажать кнопку "Принять". Далее следуя инструкции, в окне нажимать кнопку PW (или ее функциональный аналог, в нашем случае это кнопка SRC).
1.8. После завершения, нажать кнопку "Exit" на форме "Создание слепка".
1.9. Сохранить второй файл данных. Для этого нажать File -> Save Cod File -> ввести имя ВТОРОГО файла(я ввёл JVC_RM-RK39_102_2.txt). Это будет второй слепок.
1.10. На запрос о очистке базы нажать "No".

2.1. Повторить действия, описанные в пунктах 1.6. - 1.8.
2.2. Сохранить третий файл данных. Для этого нажать File -> Save Cod File -> ввести имя ТРЕТЬЕГО файла(я ввел JVC_RM-RK39_102_3.txt). Это будет третий слепок.
2.3. На запрос об очистке базы нажать на кнопку "Yes", а после закрыть программу "Осциллограф".

Шаг 2 Создание патча для исходной прошивки

1.1 Когда у вас будут три файла от вашего пульта, надо запустить программу IR Preparation (IRPreparation.exe).
1.2. Нажать кнопку "Шаг 1" и выбрать систему. (Работаем с HID системой).
1.3. Нажать кнопку "Шаг 2" и указать путь к первому, второму, третьему файлам, а также имя пульта, от чего он и сколько у него кнопок, убрать галочку "У меня есть фотография пульта", ставим галочку "Да. Я даю разрешение..." После ввода данных подтвердить выбор кнопкой "Анализ".
1.4. Если появилось "Кодировка 100% совместима с М96 системой" продолжаем, если нет, идём [URL="http://www.mindrunway.ru/SoftIROsI.html"]сюда[/URL] и читаем всё и разбираемся.
1.5. Ну и далее по шагам...
1.6. Перед нажатием на кнопку "Шаг 4" нужно проследить, чтобы раскладка была русской и Caps Lock отключен, а потом нажать на кнопку "Шаг 4". После этого появится окно с загадкой, нужно набрать ответ и нажать Enter.
1.7 Нажать "Шаг 5", сохранить irf-файл с результатом.(я сохранил JVC_RK-RM39.irf)

2.1 Когда вы создадите irf файл от вашего пульта, можно будет запустить программу KeyTabMap.exe и создать "набор кнопок пользователя". Для этого на закладке Maper выбрать те сочетания клавиш, которые вам нужны сверх стандартных. То есть, кликаем на нужную комбинацию в окне "Набираем набор сканкодов", после чего подсветятся соответствующие клавиши на картинке. Если нужно изменить - кликаем нужную клавишу на рисунке, жмём кнопку "Сохранить". Здесь я добавил все сочетания клавиш, которые описал выше в табличке для использования в Centrafuse, вы можете задать нужные вам. Когда "набор кнопок пользователя" будет создан, надо сохранить его по "умолчанию", то есть, "File -> Save as default".
2.2 После создания таблицы сочетания клавиш ("набор кнопок пользователя"), можно интегрировать её в irf файл от вашего пульта. Т.е. здесь мы зададим какое сочитание клавиш эмулируемой клавиатуры какой кнопке пульта будет соответствовать. Я задал соответствие как указано в таблице выше. Для этого надо запустить программу IR Mapping(IRMapping.exe), кликнуть на кнопку "Open" и указать путь к вашему irf файлу, полученному на первом этапе. Потом перейти на вкладку Maper, в правом окне выбираем "Набор пользователя" и задаём соответствия как расписано в левом окне. Поля на вкладке "Hardware Relays and Buttons" оставляем без изменений. Когда процесс будет закончен, кликаем "Save" и сохраняем изменения.
2.3 Конечная цель - получить патч в виде .pcz файла. Это делается кнопкой "SavePath" после всех настроек системы. Удобнее сохранить результат сразу в директорию с исходной прошивкой(папка "Исходная прошивка" архива hid.rar).

Шаг 3 Создание настроенной под ваш пульт прошивки
После того, как вы подготовили патч и выбрали исходную прошивку мы переходим к наложению патча на прошивку при помощи программы HexUtil.exe.Тут всё просто и понятно - открываем оригинальную прошивку(файл "Исходная прошивка\Beliy.hex"), открываем полученный патч, патчим, сохраняем полученную прошивку и бежим на программатор Попутно отгадываем загадки. Кто не знает отгадок - google в помощь На всякий случай напомню, что если в программе Hex Utility неправильно ответить на какую-нибудь загадку -- она абсолютно никак не предупреждает об этом, но в итоге не вносит никаких изменений в прошивку!

Заключение
Не пугайтесь большого объёма статьи, всё делается просто, внимательно выполняйте описанный мной алгоритм. Он представляет из себя кастомизированную под CarPC версию описанного [URL="http://www.mindrunway.ru/IgorPlHex2.html"]тут[/URL] алгоритма. [URL="http://www.mindrunway.ru/author.html"]Автор[/URL] методики предупреждает, что система тестовая, однако у меня не было сбоев и проблем. Для тех, кто хочет во всём детально разобраться, добро пожаловать на [URL="http://www.mindrunway.ru/"]сайт[/URL] автора и всё там почитать. Ведь устройство, купленное мною [URL="http://www.redray.ru/"]тут[/URL] может эмулировать мышь, а также штатно имеет три маломощных выхода для управления реле(например, у кого моторизованный монитор по кнопке пульта он будет складываться и открываться), эти возможности вы также можете задействовать!

Видеоролик как это всё работает
[URL="http://rutube.ru/tracks/3313915.html?v=0d3ede59f2837921a3e05b38635f10f0"]Тут[/URL] я приложил видеоролик, в котором показывается как пультом управляется оболочка Centrafuse 3.1
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают