Стенд, показанный на фото, мы собрали, чтобы показать, что можно сделать с помощью наших устройств. На стенде расположен прибор UNC011, оснащённый модулями UNC010/in и UNC010/out; это позволяет показать на одной демонстрационной сборке все основные возможности устройств UNC0xx, а именно — продемонстрировать управление нагрузкой с помощью встроенных реле, подключение внешних реле, использование входных линий и шины 1-Wire.
Устройство UNC011 и его питание
Устройство может быть запитано как от порта USB, так и от внешнего блока питания, причём это может быть источник постоянного напряжения величиной от 7 до 12 В. При сборке нашего стенда мы решили пойти по второму пути, поскольку, кроме устройства UNC011, на стенде есть и другие потребители постоянного тока — это внешние реле и датчик движения. Коль скоро в конструкцию в любом случае необходимо включить блок питания, удобнее от него же запитать и UNC011, ведь это позволяет стенду работать и выполнять некоторые функции без подключения к компьютеру. Поскольку применённые нами реле и датчик движения требуют питания 12 В, именно такого номинала блок питания мы и подобрали. На фото справа видно, что блок питания включён в разъём XPWR (стандартный круглый разъём питания). Там же можно заметить красный провод, подключённый к контакту PWR1; именно через этот провод проходит питание остальных потребителей 12 В на стенде. Для удобства разводки питания мы разместили справа от устройства на той же DIN-рейке клеммник, к которому и подвели 12 В, снятые с контакта устройства, а с клеммника уже распределили питание другим потребителям.
Встроенные реле
Для демонстрации работы встроенных реле на стенде предусмотрены электрические лампочки, расположенные в нижнем ряду. Две из них (слева) вкручены в патроны, для двух других установлены электрические розетки, и в эти розетки включены разноцветные лампочки-ночники.
Если внимательно посмотреть на фото, можно заметить, что контакты RA0, RB0, RC0 и RD0 соединены между собой. Сюда приходит один из проводов, несущих напряжение 220 В. Второй (парный) провод разветвляется и входит в патроны и розетки, расположенные в нижней части стенда. Нам осталось только соединить RA2, RB2, RC2 и RD2 со свободными контактами патронов и розеток; в результате релейные цепи устройства UNC011 играют роль выключателей для этих потребителей электричества.
Контакты RA1, RB1, RC1 и RD1 в нашей схеме остались не задействованы, но в некоторых случаях они бывают полезны: это контакты, присоединённые к RA0, RB0, RC0 и RD0, когда обмотки встроенных реле не запитаны. Если требуется держать некий потребитель тока постоянно включённым и лишь иногда его выключать, применение этих контактов будет более удобно, поскольку позволит держать выключенной обмотку соответствующего реле, включая её только тогда, когда соответствующую цепь нужно разъединить.
Следует учитывать, что встроенные реле имеют ограничение по мощности коммутируемой нагрузки 300 Вт. Конечно, для лампочек этого более чем достаточно; более того, через эти цепи можно подключить не очень мощный компьютер, а также практически любое активное сетевое оборудование — роутер, точку доступа, хаб и прочее. Но вот подключать электроутюги, чайники, кипятильники и отопительные приборы через эти цепи всё же не стоит.
Внешние реле
Модуль UNC010/out, установленный в слот 2 данного экземпляра устройства, обеспечивает работу четырёх управляемых линий. Поскольку размеры стенда ограничены, мы использовали только три из них. Цепи второго слота расширения выведены на клеммы M21, M22, M23 и M24, а клемма M20 соединена с «землёй» устройства. При включении соответствующей цепи её клемма также оказывается соединена с «землёй», когда же цепь выключена, клемма «висит в воздухе». Для подключения реле мы воспользовались стандартной схемой подключения с общим питанием (см. рисунок). Согласно этой схеме, контакт M20 остаётся незадействован, а обмотки реле включаются между соответствующим контактом управляемой цепи (M21, M22, M23 или M24) и «плюсом» цепи питания.
К первой цепи мы подключили обыкновенное автомобильное реле 112.3748 (фото слева). На фото видно, что красный провод цоколя реле (плюс питания) присоединён к клеммнику, на который, как уже гворилось, выведено +12 В. Красный провод с синей полосой (минус питания) мы подключили к контакту M21; таким образом, управляемый канал оказался в разрыве цепи питания реле со стороны «минуса». Через контактную группу реле (синий и коричневый провода на фото) подключена к питанию 220 В розетка, расположенная на стенде выше блока питания (в неё включён белый ночник). Реле 112.3748 также имеет размыкаемую контактную группу, которая на нашем стенде не задействована.
К третьей и четвёртой управляемым цепям мы для разнообразия подключили реле PK-1P и PK-2P, выполненные в одноюнитовых DIN-корпусах (фото справа). На фото видно, что к верхней части реле подходит красный провод (+12 В), а два белых (минусы питания) идут к контактам M23 и M24. В нижней части фото наглядно показана разводка управляемых цепей 220 В. Как обычно, мы оставили незадействованными размыкающие контактные группы реле. В розетку слева мы включили ещё один ночник, в розетку справа — обыкновенный дверной звонок. В принципе, здесь мы могли бы управлять достаточно мощной нагрузкой, поскольку реле PK-1P и PK-2P допускают ток в управляемой цепи до 16 А при напряжении 220 В — этого хватит не только на практически любой бытовой прибор, но и на всю электронагрузку в среднестатистической квартире.
Входные линии
В слоте 1 устройства UNC011, представленного на стенде, размещён модуль UNC010/in, поддерживающий четыре входные линии. Мы задействовали три из них: к первой подключили датчик движения (на фото слева), ко второй и четвёртой — кнопки, расположенные на выносном пульте вместе с зондом электронного ключа
Линии (в данном случае входные) модуля первого слота выведены на контакты M11, M12, M13 и M14, контакт M10 соединён с «землёй»; устройство определяет статус входной линии, проверяя наличие соединения между соответствующим контактом и землёй. Схема подключения оказывается, таким образом, проста: источник информации (в данном случае кнопка или контур датчика движения) включается между соответствующим контактом линии (M11—M14) и любым контактом «земли», это не обязан, вообще говоря, быть именно контакт M10, который в нашем случае так и остался не задействован. Например, датчик движения имеет четыре контакта: «земля», питание +12В и два контакта сигнального контура. У датчика, установленного на нашем стенде, мы соединили «землю» питания вместе с одним из контактов сигнального контура с клеммой PWR2 устройства UNC011 (чёрный провод на фото), запитали датчик от общего контура низковольтного питания (красный провод), а свободный контакт сигнального контура соединили с клеммой M11. Что касается кнопок выносного пульта, то с одной стороны к ним подходят провода от контактов M12 и M14, а другой стороной они подключены к тому же проводу «земли», что и зонд для «таблеток» iButton: этот провод соединён с клеммой OW0 из контактной группы интерфейса 1-Wire, на которой тоже представлена «земля».
Периферийные устройства 1-Wire
В настоящее время прошивка UNc0xx поддерживает два вида устройств, подключаемых по шине 1-Wire: электронные ключи-«таблетки» iButton и температурные датчики (DS18B20 и DS18S20). На стенде представлены устройства обоих видов. Для подключения температурного датчика мы в верхней части стенда расположили переходник UNC010/1w, через который подключили датчик температуры в исполнении UNC1W-THS-S (это термодатчик DS18B20, снабженный штекером RJ-11). Отметим, что датчики температуры требуют подачи питания по отдельному проводу, так что на переходник UNC010/1w пришлось вывести все три контакта группы OW.
Для зонда электронного ключа нам в данном случае показалось не вполне удобным использовать соединения стандарта RJ-11, к тому же электронные ключи-«таблетки» работают в так называемом режиме паразитного питания и, таким образом, требуют только двух проводов для подключения; поэтому мы просто вывели контакты OW0 и OW1 на клеммник, к которому подключён внешний пульт, а входящий в состав пульта зонд для iButton включили между проводами от этих контактов.
Спецэффекты
Прошивка устройств UNC0xx позволяет задать простейшие реакции на «внешние раздражители», которые устройство выполнит без вмешательства управляющего компьютера. На нашем стенде мы сделали в общей сложности четыре такие «программы». Первая из них поочерёдно включает и выключает реле основной группы с первого до четвёртого, это выглядит как «бегущий огонь», движущийся вправо. Вторая программа делает то же самое в обратном порядке, то есть «бегущий огонь» в этом случае перемещается справа налево; в дополнение к этому, после выключения последней лампочки программа на долю секунды включает четвёртую линию модуля внешних реле, что заставляет один раз прозвонить наш звонок, включённый в соответствующую розетку. Эти две программы мы связали с событием «замыкание входной линии номер два и номер четыре», то есть с нажатием на кнопки, расположенные на выносном пульте.
Третья «программа» гораздо проще: она включает первую линию модуля внешних реле, а через три секунды выключает её. Такую реакцию мы повесили на размыкание входной линии номер один, то есть происходит это, когда датчик движения улавливает движение (его сигнальный контур при этом размыкается). Внешне это проявляется в том, что, когда к нашему стенду подходит человек, расположенная в самом верху стенда лампочка загорается на три секунды, потом гаснет.
Четвёртая «программа» звонит в звонок дважды; эту программу можно задействовать только по команде с управляющего компьютера.
Все эти настройки задаются приведённым ниже командным файлом. Этот скрипт расчитан на исполнение в ОС Linux; при работе под Windows рекомендуется заменить $UC
на имя программы uncctl
и оставить только эти строки, убрав комментарии, присваивания и прочие особенности Bourne Shell.
#!/bin/bash UC="sudo /usr/local/bin/uncctl" # 47, 46, 45 are "entry points" for "press me" of the demo $UC -Y 47 "f000 f02c 3000 f02c" # ring the bell twice $UC -Y 46 "f000 f02b 0000 ffff" # lamps1 $UC -Y 45 "f000 f024 0000 ffff" # lamps2 # 44 aka 2c is "ring the bell" $UC -Y 44 "f000 0240 0800 0280" # 43-39 aka 2b-27 are "main lamps, one by one" $UC -Y 43 "f000 00a9 1000 f02a" $UC -Y 42 "f000 00a6 1000 f029" $UC -Y 41 "f000 009a 1000 f028" $UC -Y 40 "f000 006a 1000 f027" $UC -Y 39 "f000 00aa 0500 feff" # 38 aka x26 is "blink the light" $UC -Y 38 "f000 0201 0201 0202" # 36-32 aka x24-x20 are the reverse on lamps, and the bell $UC -Y 36 "f000 006a 1000 f023" $UC -Y 35 "f000 009a 1000 f022" $UC -Y 34 "f000 00a6 1000 f021" $UC -Y 33 "f000 00a9 1000 f020" $UC -Y 32 "f000 00aa 0500 f02c" # now set the configuration regs $UC -F # factory defaults $UC -G 00dc0002 # enable 1-Wire $UC -R 0 60f026ff # Movement sensor reaction $UC -R 1 60f0ff24 # First button reaction $UC -R 3 60f0ff2b # Second button reaction $UC -W # Save to eeprom
Здесь программа uncctl
используется для установки значений расширенных регистров (именно они задают «программы» действий), регистра пользовательской конфигурации (это нужно, чтобы устройство UNC011 пыталось взаимодействовать с периферией 1-Wire) и регистров реакций, связанных с входными линиями. Подробности обо всех этих возможностях вы найдёте в руководстве по эксплуатации устройств серии UNC01x.
Демонстрационная программа
Специально для демонстрации возможностей стенда была написана программа demo
, входящая в наш комплект программного обеспечения. Программа расчитана на работу в полноэкранном режиме. В нижней части экрана располагаются индикаторы включения линий встроенных реле и кнопки, позволяющие включать их и выключать; в верхней части экрана расположены аналогичные интерфейсные элементы для линий модуля внешних реле. Под ними расположены индикаторы состояния входных линий; ещё ниже программа выдаёт значение температуры, считанное с датчика, а если к 1-Wire подключить ключ-«таблетку», программа выдаст уникальный серийный номер этого ключа. Кнопки с надписью "press me", расположенные в колонку у правого края экрана, задействуют описанные выше «программы», занесённые в память устройства: двойной звонок, бегущий огонь вправо, бегущий огонь влево.