Управління силовими навантаженнями по USB (на Ke-USB24A) на CS-CS.Net: Лабораторія Електрошамана

  1. Частина 1. Тестова збірка.
  2. Частина 2. Готовий девайс.
  3. Схема і програма управління
  4. висновки
  5. Післямова

З цим завданням стикається рано чи пізно будь-який розробник, який шаманить чогось на комп'ютері і сидить з паяльником З цим завданням стикається рано чи пізно будь-який розробник, який шаманить чогось на комп'ютері і сидить з паяльником. Рано чи пізно йому приходить в голову ідея: «Управління освітленням з комп'ютера» або щось подібне. Хтось хоче чайник кип'ятити, клікаючи на іконку в треї, хтось - включати лампу, не встаючи з крісла, хтось - обігрівач ... Загалом, закінчується це все якимось 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 шнур - і працюй. Навіть програмка-термінал у них своя є. Задоволений я повернувся додому і першим ділом всіляко обфоткал модуль з усіх боків. Заодно заскочив в КВАРЦ, де купив макетке, всяких моїх улюблених фенечек начебто роз'ємів, клемників на плату і реле.

Заодно заскочив в КВАРЦ, де купив макетке, всяких моїх улюблених фенечек начебто роз'ємів, клемників на плату і реле

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

На плату поставив нормальний роз'єм, щоб не городити скручування з дротів, заодно напаяти клемників (синенькі) під силові виходи реле На плату поставив нормальний роз'єм, щоб не городити скручування з дротів, заодно напаяти клемників (синенькі) під силові виходи реле. Ці клеммники мені подобаються тим, що провід в них затискається металевою пластинкою, яку в свою чергу притискає гвинт - площа контакту більше, можна сміливо затискати багатожильні дроти як є (без наконечників), і все це ще паяется на плату, і може набиратися в рівні лінійки (там на кожному клемнику є пази для з'єднання). Купив собі два десятка про запас, на три виходи: завжди можна підключити 220 як L, PE, N або як L, N, залишивши середину порожній. Офигенная штука!

Для пайки використовував якийсь радянський подобу паяльної станції і понижуючий трансформатор на 36V (у мене від нього харчується звичайний нізковольного паяльник на 36). Спочатку виходило красиво, а потім плата стала обростати знизу купою проводочков і виглядати, як їжачок. До речі, в якості монтажного проводу зручно використовувати зволікання від кручений пари. Відмінно йдуть багатожильні - лудяться і паяются моментально, зачищаються на відмінно. А якщо треба зачистити зовсім короткий шматок - я один кінець тримаю пассатижами, а другий зачищаю.

А якщо треба зачистити зовсім короткий шматок - я один кінець тримаю пассатижами, а другий зачищаю

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

Отже, тим часом плата була готова, спаяні 4 вихідних каналу, і самі реле безпосередньо були виведені на клеммники (я взяв реле з однією переключающей групою, котушка на 5V)

Все було підключено, і для тесту заведена звичайна лампочка 220V 100W. Даємо команду з терміналу, реле клацає, лампочка включається. Ураа!

Ураа

Разом, що можна відзначити:

  • Простота рішення - купив, встромив, використовуй (звичайні ТТЛ виходи)
  • При бажанні, схема може харчуватися від USB цілком, без зовнішнього джерела живлення.
  • Реле жеруть шалено багато! USB-порт тягне 1-2 каналу одночасно. Іншим не вистачає струму, щоб спрацювати.
  • Все це шалено прикольно і цікаво, і можна якось використовувати. Хехе!

Плата була зібрана, Потестів, і занедбана до осені: у вікно світило сонце, і ніякі підсвічування були не потрібні;)

Частина 2. Готовий девайс.

Осінь прийшла раптово) А разом з нею, риючись в купі мотлоху, я викопав свитч, на якому без вагань Грозного Админа Михайла з однієї давньої контори було написано категоричне слово «ТРУП». Його сіра коробочка мене привабила, і мене осінило: «А ось же відмінний корпус для мого девайса!», І потім народився концепт пристрою. Харчуватися і живити навантаження воно повинно було через еврораз'ёми (як на комп'ютері і на UPS-ах), можливо мати автономне керування і бути дрібним, щоб його можна було покласти на стіл / полку і забути.

Були куплені компоненти, а в якості блоку живлення використаний старий зарядник від фотика Casio, який давав 5,5 вольт при струмі до 0,5. Чомусь ток у нього такий же, як у USB-порту, але все-все реле він тягнув без напрягу, нагріву та інших проблем. Модуль при напрузі 5,5 вольт поводився відмінно - разом, за три години прогону - ніякого нагрівання мікросхем або інших деталей схеми. На автономне управління було забито через брак місця в корпусі під вимикачі: хотів, щоб реле їх шутнтіровалі, або зробити аналог «прохідного вимикача», але в підсумку забив, вирішивши, що ноут у мене і так постійно працює весь час - підійти і тицьнути мишкою кнопку - немає ніяких перешкод.

У корпусі були проточені всі необхідні дірки і прорізи (дрібні - напилком, великі - елекролобзіком з тонкою пилою), після чого корпус був пофарбований чорною фарбою з балончика прямо на сходах під'їзду :) газетки допомогли мало, і там до сих пір сліди;)

Євророзетки не влазить в корпус, і кріпити їх за «вушка» і на гвинти не вийшло. Довелося робити жахливу порнографію: вирізати шматок макетке, припаяти їх туди, а макетке на втулках на гвинтах закріпити до корпусу і уліть це все суперклеєм. Зусилля на виймання вилки пережили - буде слухатися! ;)

Останні фотки плати перед установкою в корпус девайса. Напаяти туди ще Кренку, потім згадав, що вона все одно нічого не буде стабілізувати, так як 0,5 вольта (5,5 - 5,0) їй не вистачить для роботи. Кренку так і залишив, але відключив. Ззаду вийшов треш-монтаж. Не буду більше макетке використовувати. Або буду використовувати в розумних межах.

Звичайно ж, треба зробити світлодіоди, які индицируют включення реле навантажень і харчування. А ще гарний червоненькі вимикач харчування (саме такі моделі вимикачів я теж люблю за те, що світяться і за те, що рвуть два дроти мережі одночасно). Зверніть увагу, перейшов на використання плоского кольорового кабелю і роз'ємів серії BLS-, здається - кабель зручно на них паяти, роз'єм відламується на стільки пинов, наскільки треба, і виглядає красиво. Кольоровий кабель зручний тим, що не треба постійно вважати жилки, коли щось налагоджувати і розбираєшся в сигналах, або куди тикати тестер.

Отже, ось що полуучілось в результаті. Макетке прікрепелена до корпусу (знову на втулках), в неї встромлений USB-модуль, праворуч стирчить блок живлення, вимикач і світлодіоди. Ззаду (щодо компонування) стирчать розетки живлення. До вимикачів я паяюсь, а з'єднання ізолюю термоусадкой - виходить красиво і акуратно.

А ось що вийшло перед закриттям корпусу. Проводка 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кОм на потрібний вхід і опитувати його. Я спробую доапгрейдіть схему і, якщо знайдеться гарне рішення - викладу апдейт статті.

Навіщо потрібно?
© 2008 — 2012 offroad.net.ua . All rights reserved. by nucleart.net 2008