Главная Проекты Идеи Soft О авторе
 

Доработка проекта USB - InfroRed (IgorPlug2).

Рис. 1 IgorPlug2 в прозрачном корпусе.

»Щелкните по этому тексту, чтобы развернуть пояснения«

План.

       1) Вступление.
       2) Исходный вариант IgorPlug.
       3) Модернизация. Создание IgorPlug2.
       4) Технические характеристики результата.
       5) Особенности схемотехники IgorPlug2.
       6) Дизайн печатных плат, прошивки и драйвера.


Внимание!!!
       Проекты IgorPlug и IgorPlug2 базируются на морально устаревшем железе с софтовой эмуляцией USB_1.0. Дальнейшее развитие ПДУ систем управления на микроконтроллере с сертифицированным аппаратным USB_2.0 оформлено в новую, самостоятельную ветку - Twinkling Plug.

Twinkling Plug Второе и третье поколение плат на AT90USB162.
Увеличить.

Пример работы Twinkling Plug с плагином.


       Более подробно об новой ветке можно прочесть - тут.



       Но возвращаясь к IgorPlug2 системам. В связи с добавлением поддержки Win7 в текущий проект и переходом на HID версию описание проекта обновляется, и новый вариант описания развивается ОТДЕЛЬНО - с самостоятельным оформлением (это этот же сайт, но убрано все лишнее кроме описания HID версии проекта), а не обновленные ссылки временно свернуты в "пояснения":

»Щелкните по этому тексту, чтобы развернуть пояснения«

Вступление.

       После покупки DVB платы SkyStar2 я с удивлением обнаружил, что она комплектуется не USB HID устройством управления, а морально устаревшей версией DCD адаптера на порт RS-232 (в народе COM порт), который в моей машине занят под программатор и модем...

»Щелкните по этому тексту, чтобы развернуть пояснения«

       Конечно существуют USB <=> RS232 переходники, но запустить прилагаемый к SkyStar2 DCD адаптер через переходник у меня не вышло, т.к. в силу своей природы DCD адаптер для IR требует обработку принятых сигналов от пульта в реальном времени для замера их продолжительности, а при использовании USB <=> RS232 переходника, работа в реальном времени становится невозможной...

»Щелкните по этому тексту, чтобы развернуть пояснения«

Исходный вариант IgorPlug.

       После поисков в Интернете была найдена ссылка на интересное устройство IgorPlug, которое обрабатывало принятый с монолитного IR приёмника сигнал средствами встроенного микропроцессора, преобразовывало его и передавало отцифрованный результат измерений длительности фронтов сигнала по окончании принимаемой посылки в буфер своего драйвера по интерфейсу USB.
       Устройство IgorPlug может работать практически с любыми пультами от бытовой техники. А также, что очень приятно, многие производители программ управления компьютером с пульта дистанционного управления имеют штатные плагины для работы с ним...
       Но с первой же минуты я натолкнулся на проблему - родной сайт разработчика прекратил своё существование. Но в связи с тем, что устройство распространённое, плотно засев за поиск, мне удалось собрать с разных сайтов полный комплект для его сборки (см. страницу прошивки и драйвера).

Первоначальная версия IgorPlug.
Открыть с моего сайта.
Сайт разработчика (недоступен)

       Были найдены схема, драйвер (с демо-версией DDL файла), прошивка и исходник к прошивке на АСМе. Параллельно на одном из сайтов была найдена не очень лестная характеристика данного устройства:

       A) Нельзя подключить больше 1 устройства к компьютеру.
       B) Отсутствуют официальные драйвера для Windows Vista и x64.
           Нет возможности установить устройство без прав администратора
       C) Схема не поддерживает современные материнские платы
           с портами USB 2.0 (девайс на них не определяется).
       D) Не работает на большинстве материнских платах от АТИ и Нвидеа.
       E) Не работает на 50% дорогих USB хабов. И на 90% дешевых.
       F) Из-за небольшой памяти микросхемы* устройство не воспринимает
           кодировки с длинными посылками (кнопки определяются одинаково).

       * - Имелось в виду малое количество ОЗУ микропроцессора.

       Ну как всегда придётся браться за напильник и доделывать до нормального вида самому...

»Щелкните по этому тексту, чтобы развернуть пояснения«

       Для тех кому лень читать подробне, сообщаю, что все проблемы были устранены, включая добавление работы без драйверов (HID версия клавиатуро-мышки). То есть, работает где угодно, где работает HID мышка или HID клавиатура - DOS/Linux/MacOS/Bios/ALL Win и т.д.)

Модернизация. Создание IgorPlug2.

Рис. 2 Внешний вид универсального сэмпла.
Увеличить

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

       A) Добавить инициализацию устройства.
       B) Минимальные защиты от сбоев.
       C) Увеличить размер буфера более чем в 3 раза,
              (в первой версии был 105 байт, в более поздних версиях 197 байт).
       D) Расширить функциональность *.
       E) Сделать конструкцию более стабильной **.

       * - сделать псевдо 2х байтовую посылку с интеллектуальным сжатием данных, что позволило отказаться от несовершенной системы переменного масштабирования (в оригинале первые 7 байт [с 4 по 10 т.к. 1-3 служебные] были с В ДВА РАЗА МЕНЬШИМ масштабом по сравнению с последующими байтами). А теперь, если значение байта больше 0x0F8, то это старший байт числа, вычисляемый как: Число-0x0F8, следом за которым идёт младший байт числа. То есть, результат получается так: (Старш.bayt-0x0F8)*0x0F8 + Младш.bayt
       * - автор заложил в конструкцию, работающую на 12МГ микропроцессор, штатно не рассчитанный на работу на частотах выше 10МГ (это максимально допустимая частота для этого типа МК), что отрицательно сказалось на стабильности и надёжности устройства.


Рис. 3 На макетных платах.

Технические характеристики результата.

       Проект IgorPlug2 относится к разряду программных продуктов класса DonationWare (см сноску 1 ниже) и предназначается для управления компьютером с одного или нескольких (практически любых) пультов (от бытовой техники) пользователя. Поддерживает автономную работу, т.е. включение компьютера и/или другой бытовой техники с ПДУ пользователя (до 3х реле на базовом модуле, при необходимости расширяется до 128 реле на дополнительных модулях). В отличие от других модификаций IR систем данная система позволяет обновлять микро код устройства через штатный USB интерфейс, без применения внешнего программатора, что теоретически позволяет дистанционно дорабатывать штатные прошивки устройства под индивидуальные требования пользователя (пересылая файлы прошивок по эл.почте).
       При подключении дополнительных внешних модулей (кубиков = GraniCubicle ) на SPI, I2C и RS232 интерфейсы центрального модуля система наращивается до управления аудио-видео коммутаторами, контролирования состояние до 128 внешних цифровых входов и управления с компьютера или автономно (с пульта) до 128 выходами. Так же можно, через дополнительный модуль, генерировать ИР посылки ПДУ пользователя и многие, многое другое.

сноска 1 - Что такое DonationWare?

       DonationWare (donation(англ.) = дар, пожертвование) — это такое программное обеспечение, цену за которое устанавливаете Вы сами. То есть Вы помогаете автору проекта на столько, на сколько он, по Вашему мнению заслужил, создав данный программный продукт. Т.е. если понравилось - то помогаете (отблагодарить за разработку или нет решаете только вы).

       Вы можете сказать: "Понятно. Ну и с чего же тогда я стану платить?"

       Я укажу Вам на несколько причин, но Вы можете найти и другие:

  • Вы хотите что бы данный проект развивался и помогаете оплатить хостинг.
  • Вы хотите поощрить меня, как автора. Иногда я просто не понимаю, ради чего я трачу уйму времени на то, чтобы создать прошивку с теми функциями, которыми я сам никогда пользоваться не буду.
  • Вы понимаете, что я несу некоторые затраты (порой весьма существенные) на разработку и обкатку новых сэмплов железа, трафика на поиск оптимального варианта используемого железа, покупку и тестирование новых ПДУ для добавления их поддержки в проекте (хотя меня и мой ЕДИНСТВЕННЫЙ устраивает).

       Ну что же, справедливо. А как заплатить-то?

       Я рад, что Вы все-таки нашли в себе силы дочитать до этого места :) Самый простой способ использовать сервис SMS.копилка. Отправьте на особый номер смс-ку со специальным кодом и Вашим сообщением (запиской), тем самым разрешив оператору Вашей сотовой сети снять выбранную Вами сумму (монетку) со счета Вашего мобильника. Кликните по симпатичной свинке с притороченным счетчиком монеток и Вам откроется страница с записками, уже принятыми моей смс-копилкой (немного похоже на гостевую книгу).
SMS.копилка
       После отправки SMS Ваша записка добавится к общему списку, а монетка попадет в sms.копилку.

Особенности схемотехники IgorPlug2.

       В качестве замены был выбран более мощный процессор ATMega8, который на данный момент намного дешевле и доступнее раритетных AT90S2313 и AT90S2323.
       Светодиоды были перенесены на порт "C", а два не поместившихся старших бита - на порт "D".
       При необходимости расширения, можно без серьёзных изменений исходника перейти на более полнофункциональные чипы ATMega16, ATMega32, ATMega64, обладающие намного большей функциональностью (на данный момент доступны прошивки под ATMega8 и ATMega88). Или перепрофилировать устройство на выполнение других функций, не меняя драйвер или переделать на работу со стандартным сервисом HID совместимых устройств.

Рис. 4 Внешний вид миниатюрного варианта.
Увеличить    Прислал FALCON (AKA Андрей г.Хмельницкий).

Миниатюрный вариант cхемы IgorPlug2 под ATMega8/88/48.
с возможностью самообновления прошивок через USB лежит - тут.
Использовать только в случае SMD компонентов.
       А тут показано как к нему добавить оптопару для включения ПК с ПДУ.

Упрощённый вериант cхемы IgorPlug2 под ATMega8/88/48.
Это минимальный плюс защита от помех. Лежит - тут.
Лишних деталей и лишних ёмкостей в ней нет.

Базовый вариант cхемы IgorPlug2 под ATMega8/88/48.
Это упрощённый плюс одна внешняя нагрузка. Лежит - тут.
Лишних деталей и лишних ёмкостей в ней нет.

Универсальный вариант - перевёртыш.
для просмотра.        для печати.

Рис. 5 Внешний вид минимального варианта.
Увеличить    Прислал FALCON (AKA Андрей г.Хмельницкий).

       В универсальном варианте представлен один центральный модуль (см. рис.2) и несколько вариантов ведомых модулей для расширения функционала.

»Щелкните по этому тексту, чтобы развернуть пояснения«

       Многие спрашивают: "Почему в качестве софта используется именно SlyControl"?
       Поясняю - эта программа удобнее других программ этого класса, имеет очень большие возможности, модуль для работы с IgorPlug, и имеет очень полезную функцию эмуляции сервера WinLirc (для связи со всеми программами, имеющими в своём составе клиента WinLirc), а также, что для меня очень важно, бесплатна для пользователей из СНГ.
       Но ещё раз хочу напомнить - если залить обученную прошивку, то данный девайс будет свободно работать с любой PgorPlug совместимой программой, а в случае прошивки HID клавиатуро-мышки - с любой программой, позволяющей работать с клавиатурой или мышкой.

Рис. 6 Минимальный вариант на фоне USB Flash драйва.
Прислал FALCON (AKA Андрей г.Хмельницкий).

       А в случае необходимости управлять любым разумным количеством внешних нагрузок (в примере штатно заложен верхний предел в 128 штук, но возможно расширение). Более подробно подключение и управление нагрузками с пульта описано тут.
       Ну раз мы вспомнили про внешние нагрузки, то дополнение по применению цветомузыки с WinAmp (выводимой на 8 светодиодов данного проекта) можно найти - В архиве.
       А более подробное описание установки и использования библиотеки цветомузыки описано в подразделе "Другие USB прошивки и программы для управления", который обитает - тут.

Рис. 7 Сравнение SMD варианта и DIP варианта.
Прислал FALCON (AKA Андрей г.Хмельницкий).

Дизайн печатных плат, прошивки и драйвера.

       Варианты дизайна печатных плат вынесены на отдельную страницу.
       Прошивки HID версии и драйвера (в современных Windows системах ставить не надо - встроен, в Linux отдельный) к ним вынесены в САМОСТОЯТЕЛЬНЫЙ вариант - с самостоятельным оформлением который находится тут.
       Классификация прошивок старой версии использующей драйвер в Win лежит - тут, а сами прошивки и драйвера, как и раньше лежат - тут.

Ограничения.

       Устройство разработано по принципу КАК ЕСТЬ и автор не несёт ответственности за явный (или не явный) ущерб, причинённый в результате повторения.

То есть все эксперименты вы делаете на свой страх и риск.

       Список часто задаваемых вопросов читайте в    FAQ.

       Если у вас возникли вопросы и предложения - пишите мне по адресу внизу страницы

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

       Кошелёк для оплаты накладных расходов на сайт Z158779319858 в системе WebMoney.

       Принимаю только безвозмездную помощь :)


       Все статьи, опубликованные на этом сайте защищены Частью 4 Гражданского Кодекса Российской Федерации. Запрещено полное или частичное копирование материалов без согласия их авторов. Незаконное использование материалов сайта влечет за собой административную ответственность в виде компенсации в размере от 10.000 рублей до 5.000.000 рублей [Ст. 1301, 1250, 1252, 1253 ГК РФ]. При согласованном использовании материалов сайта обязательна активная ссылка на www.mindrunway.ru и указание авторства.



Copyright© 2007-2012 QuickWitted Почта     grani СОБАКА mindrunway РУ
Ссылки
Гостевая
Форум