Девайс на рабочем местеС этой задачей сталкивается рано или поздно любой разработчик, который шаманит чего-нибудь на компьютере и сидит с паяльником. Рано или поздно ему приходит в голову Идея: «Управление освещением с компьютера» или что-то подобное. Кто-то хочет чайник кипятить, кликая на иконку в трее, кто-то — включать лампу, не вставая с кресла, кто-то — обогреватель… В общем, заканчивается это всё каким-нибудь iXBT, темами со схожими названиями и LPT-портом.

LPT-порт — это первое, что приходит в голову разработчикам старой закалки, заставшим ещё Windows 3.11 и 95;) Потому что он прост, как два пальца, и его пинами можно легко дёргать, просто записывая байт на выход. В общем, компьютер превращается в некий интерактивный микроконтроллер с одним двунаправленным восьмибитным портом. Но сейчас есть ноуты. Windows Seven и прочие «прелести» цивилизации… Понятие «Умный дом» всё большое входит в наши головы, и надо думать, как заменить старый LPT-порт. Наткнулся я тут, изучая этот вопрос в инете, на прикольный модуль Ke-USB24A, от KernelChip, и решил его купить и потыкать.

UPD: Добавлена схема устройства и исходники программы.

Часть 1. Тестовая сборка.

Производитель пишет столько всего вкусного про модуль, например вот, кратко:

Модуль Ke-USB24A предназначен для сопряжения внешних цифровых и аналоговых устройств, датчиков и исполнительных механизмов с компьютером через шину USB. Определяется как дополнительный (виртуальный) COM порт. Модуль имеет 24 дискретные линии ввода/вывода (либо лог. 0 либо лог. 1) с возможностью настройки направления передачи данных (вход/выход) и встроенный 10-ти разрядный АЦП. Для управления модулем предусмотрен набор текстовых команд управления (KE — команды).

В общем, получаем тот же самый LPT-порт, но управляемый по USB — отличная вещь для всяких игрушек вида «вкл-откл с компьютера». На тот момент (летом) я ваял многоканальный диммер, задачей которого было автономно и с компьютера регулировать (ну или хотя бы включать-выключать) пару ламп освещения в комнате: я люблю местное освещение и рассеянный свет — например в потолок светит лампа, удобно её врубить, когда темнеет — яркий свет не нужен, а глаза при слабом рассеянном свете лучше воспринимают светящийся монитор.

Так вот! С диммером были проблемы, и я решил собрать простейшее устройство, хотя бы «на коленках», чтобы тыкать нагрузки на 220 вольт с компа. Решил, что 4х штук мне как раз хватит, и поехал покупать модуль. Сама контора расположена в бизнес-центре, по звонку на сотик выходит их товарищ, выносит модуль, завёрнутый в полиэтилен с пупырышками (кажется, ничерта не электростатический) и забирает деньги. Цена, наверное, кусается, по меркам микроконтроллерщиков — 1350 рублей, но мне она была приемлема как для «коробочного», готового решения Plug-n-Play — в смысле, всунул USB шнур — и работай. Даже программка-терминал у них своя есть. Довольный я вернулся домой и первым делом всячески обфоткал модуль со всех сторон. Заодно заскочил в КВАРЦ, где купил макетку, всяких моих любимых фенечек вроде разъёмов, клеммников на плату и реле.

Модуль Ke-USB24A, вид сверху Модуль Ke-USB24A, вид снизу Установка модуля на разъёмы

Транзисторы КТ315 79го года выпускаМодуль — полная вещь в себе, сделанная на базе Microchip’овского микроконтроллера PIC18F4550. Наверное, и на AVR такое же можно лепить, но узнал я об этом уже позже, благодаря сайту одного челябинского товарища (блин, кажется я начну уважать этот город! Правда! он у меня постоянно на слуху). Торчит только тантал по питанию, кварц, несколько ёмкостей и перемычка, которой выбирается питание — от USB или внешнее. PDFник с документацией на сайте вполне адекватный, выводы расписаны нормально и понятно, чего куда. В общем, воткнул я его в плату и начал лепить выходные реле из того, что было под рукой: КТ315х 70-80х годов выпуска, каких-то помоечных светодиодов и блока питания от компьютера — так как на данный момент нету никакого лабораторного источника, питаюсь от него.

Рабочий инструментНа плату поставил нормальный разъём, чтобы не городить скрутки из проводков, заодно напаял клеммников (синенькие) под силовые выходы реле. Эти клеммники мне нравятся тем, что провод в них зажимается металлической пластинкой, которую в свою очередь прижимает винт — площадь контакта больше, можно смело зажимать многожильные провода как есть (без наконечников), и всё это ещё паяется на плату, и может набираться в ровные линейки (там на каждом клеммнике есть пазы для соединения). Купил себе два десятка про запас, на три выхода: всегда можно подключить 220 как L, PE, N или как L, N, оставив середину пустой. Офигенная штука!

Для пайки использовал какое-то советское подобие паяльной станции и понижающий трансформатор на 36V (у меня от него питается обычный низковольный паяльник на 36). Вначале получалось красиво, а потом плата стала обрастать снизу кучей проводочков и выглядеть, как ёжик. Кстати, в качестве монтажного провода удобно использовать проволочки от витой пары. Отлично идут многожильные — лудятся и паяются моментально, зачищаются на отлично. А если надо зачистить совсем короткий кусок — я один конец держу пассатижами, а второй зачищаю.

Разъёмы под модуль и клеммники под сеть 220  Выходные реле и клеммники под винт Готовая плата с реле

Итак, тем временем плата была готова, спаяно 4 выходных канала, и сами реле напрямую были выведены на клеммники (я взял реле с одной переключающей группой, катушка на 5V).

Подключение блока питания и USB-шнурка для теста К включению готовы!

Всё было подключено, и для теста заведена обычная лампочка 220V 100W. Даём команду с терминала, реле щёлкает, лампочка включается. Ураа!

Выдаём команду (кусок терминала) Заработало!

Итого, что можно отметить:

  • Простота решения — купил, воткнул, используй (обычные ТТЛ выходы)
  • При желании, схема может питаться от USB целиком, без внешнего источника питания.
  • Реле ЖРУТ безумно много! USB-порт тянет 1-2 канала одновременно. Остальным нехватает тока, чтобы сработать.
  • Всё это безумно прикольно и интересно, и можно как-то использовать. Хехе!

Плата была собрана, потестена, и заброшена до осени: в окно светило солнце, и никакие подсветки были не нужны ;)

Часть 2. Готовый девайс.

Осень пришла внезапно) А вместе с ней, роясь в куче хлама, я выкопал свитч, на котором недрогнувшей рукой Сурового Админа Миши с одной давней конторы было написано категоричное слово «ТРУП». Его серая коробочка меня привлекла, и меня осенило: «А вот же отличный корпус для моего девайса!», и затем родился концепт устройства. Питаться и питать нагрузки оно должно было через евроразъёмы (как на компьютере и на UPS-ах), возможно иметь автономное управление и быть мелким, чтобы его можно было положить на стол/полку и забыть.

Были куплены компоненты, а в качестве блока питания использован старый зарядник от фотика Casio, который давал 5,5 вольт при токе до 0,5А. Почему-то ток у него такой же, как у USB-порта, но все-все реле он тянул без напряга, нагрева и других проблем. Модуль при напряжении 5,5 вольт вёл себя отлично — итого, за три часа прогона — никакого нагрева микросхем или других деталей схемы. На автономное управление было забито из-за нехватки места в корпусе под выключатели: хотел, чтобы реле их шутнтировали, или сделать аналог «проходного выключателя», но в итоге забил, решив, что ноут у меня и так постоянно работает всё время — подойти и тыкнуть мышкой кнопку — нет никаких препятствий.

В корпусе были проточены все необходимые дырки и прорези (мелкие — напильником, крупные — элекролобзиком с тонкой пилкой), после чего корпус был покрашен чёрной краской из баллончика прямо на лестнице подъезда :) Газетки помогли мало, и там до сих пор следы ;)

Окраска корпуса на лестнице Окрашенный корпус, вышло неплохо!

Евророзетки не влезали в корпус, и крепить их за «ушки» и на винты не получилось. Пришлось делать ужасную порнографию: вырезать кусок макетки, припаять их туда, а макетку на втулках на винтах закрепить к корпусу и улить это всё суперклеем. Усилие на вынимание вилки пережили — держаться будет! ;)

Заготовка для монтажа выходных розеток Установленные выходные розетки

Последние фотки платы перед установкой в корпус девайса. Напаял туда ещё КРЕНку, потом вспомнил, что она всё равно ничего не будет стабилизировать, так как 0,5 вольта (5,5 — 5,0) ей не хватит для работы. КРЕНку так и оставил, но отключил. Сзади вышел трэш-монтаж. Не буду больше макетки использовать. Или буду использовать в разумных пределах.

Внешний вид итогового монтажа реле и USB-модуля Кошмарный монтаж соединений на макетной плате

Конечно же, надо сделать светодиоды, которые индицируют включение реле нагрузок и питание. А ещё красивый красненький выключатель питания (именно такие модели выключателей я тоже люблю за то, что светятся и за то, что рвут два провода сети одновременно). Обратите внимание, перешёл на использование плоского цветного кабеля и разъёмов серии BLS-, кажется — кабель удобно на них паять, разъём отламывается на столько пинов, насколько надо, и выглядит красиво. Цветной кабель удобен тем, что не надо постоянно считать жилки, когда что-то отлаживаешь и разбираешься в сигналах, или куда тыкать тестер.

Блок питания от зарядника Монтаж светодиодов цветным кабелем Вид монтажа спереди

Итак, вот что полуучилось в итоге. Макетка прикрепелена к корпусу (опять на втулках), в неё воткнут USB-модуль, справа торчит блок питания, выключатель и светодиоды. Сзади (по компоновке) торчат розетки питания. К выключателям я паяюсь, а соединения изолирую термоусадкой — получается красиво и аккуратно.

Плата USB-модуля, установленная на своё место Выключатель сети 220 и блок питания

А вот что получилось перед закрытием корпуса. Проводка 220, конечно жесть, и мне за них стыдно. Ипнет — переделаю. Не ипнет — пусть работает. Была мысль залить это всё термоклеем из пистолета, но в три ночи было на всё наплевать.

Готовый монтаж схемы Трэшовое подключение выходных розеток

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

Девайс вид спереди Вид подключений сзади

Схема и программа управления

Схема управления очень напоминает такой же модуль, но с релюшками (Ke-USB24R). На выходы модуля, которыми мы управляем через USB, совершенно тупо навешаны транзисторы (из тех, что попались под руку) — КТ315 в ключевом режиме. В коллекторную цепь транзистора включено реле с защитным диодом, спасающим транзистор от напряжения самоиндукции при коммутации реле. Ну дополнительно в моём блоке ещё навешаны обычные светодиоды с ограничительными резисторами, которые светятся и показывают какой канал включён.

Дополнительно на схеме дорисовал пример какого-нибудь контактного входа, типа кнопки: внешний резистор подтяжки на +5 вольт ставлю обычно всегда, привычка от микроконтроллеров семейства ВЕ51 (8051). Соответственно на данном примере вход работает инверсно: «0» означает замкнутую кнопку. ИМХО этот способ немного более помехоустойчив ко всяким импульсным выбросам.

Питание в моей схеме бралось от первого попавшегося под руку источника +5V, и реле, соответственно, тоже были с катушкой на 5V. Внешний источник питания нужен лишь тогда, когда мы не укладываемся в выдаваемые USB штатные 500мА. Ток потребления схемы будет равен (4ТокРеле) + ТокМодуля. В моём случае USB тянуло пару реле из 4х, поэтому я не парился особо (всё равно схема коммутирует 220 — значит там оно есть!) и воткнул сетевой источник питания (перемычку на плате модуля СНЯТЬ!). Особо извращённые люди могут покопать в сторону твёрдотельных реле, которые потребляют гораздо меньше обычных электромагнитных.

Программа управления модулем была такой примитивной, что писалась на Visual Basic 6 за 1 час вместе с отладкой. Кнопки «открыть/закрыть» порт, и четыре кнопки на 4 выхода. Рядом с ней лежит текстовый конфиг-файл (Ke-USBControl.Conf), откуда она при запуске считывает названия этих кнопок — можно менять их без перекомпиляции проги. Первая строка — номер COM-порта, выбираемого по умолчанию для железки (как сменить ей правильный COM-порт — читать вот тут: Изменение номера COM-портов / Отображение скрытых устройств). В планах сделать автопинг модуля и реконнект к нему (см. выводы).

Управляющая программа

Программу управления модулем (исходники и EXEшник) можно скачать по этой ссылке (22 кБ). Поставляется As IS. Или Ass IS ;)

Выводы

  • Модуль — забавная игрушка и не более. На самом деле — полное ГАВНО, и использовать можно только как красивый заменитель LPT-порта для старых игрушек или разработок типа моей — ткнул кнопку, включилась лампочка.
  • Теперь я знаю про симисторы и оптопары. Можно сделать так, чтобы питалось только от USB и коммутировало до 2х кВт на канал 220.
  • Протокол управления модулем — тоже гавно. Самое дерьмовое, чего они не сделали, и что вылезло в процессе эксплуатации, это то, что нельзя прочитать состояние пина модуля, настроенного на выход, как в микроконтроллере. Оно обычно и не нужно, но вот даже сам модуль не может выдать информацию — какие пины сейчас «включены». Зачем нужно? Простой пример: у вас что-то включено из программы. Программа так и отображает: это вкл, это — выкл. Тут вам нужен USB-порт. Вы выдрали шнур, закрыли программу (или вообще винды перегрузили), поюзали, сунули назад, запустили программу. И всё. Она не знает, что было включено, а что нет — и получить эту информацию НИКАК нельзя!
  • Дополение к предыдущему. Если дёрнуть шнур и вставить его назад, девайс определяется, но криво. Нужно закрыть порт в программе, ещё раз передёрнуть шнур, и открыть порт. С каким-то полудохлым конвертором USB<>RS-232, у меня такого не наблюдается.

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

UPD: Вышла новая версия модуля с возможностью определения состояния пинов (включён или нет)!

Послесловие

В принципе, для решения проблемы с мониторингом выходов, можно использовать какой-то из входов — замкнуть его через резистор в 1кОм на нужный вход и опрашивать его. Я попробую доапгрейдить схему и, если найдётся красивое решение — выложу апдейт статьи.

Если вас заинтересовала информация из этого поста и вы хотите со мной связаться (или заказать Сборку щита / Консультацию), то пишите мне на почту или звоните на +7-926-286-97-35 (c 10 до 20 по Москве). На SMS и почту, написанную в одну строчку, я не отвечаю. Отзываюсь на имя "Электрошаман".
Невнимательных, тупых и наглых продаванов и менеджеров я буду жёстко стебать, если они не заглянут в инфу про контакты для организаций, а скорее кинутся звонить.


Источник: http://cs-cs.net/upravlenie-silovymi-nagruzkami-po-usb-na-ke-usb24a



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Как сделать своими. - m Что посмотреть в даламане самостоятельно


Как сделать свет для аквариума Как сделать свет для аквариума Как сделать свет для аквариума Как сделать свет для аквариума Как сделать свет для аквариума Как сделать свет для аквариума Как сделать свет для аквариума Как сделать свет для аквариума