А вообще мне просто надоело писать скучные проекты и курсовые в институте, поэтому на летней практике я решил занаятся чем нибудь интересным.
Введение
Я студент третьего курса радиотехнического факультета УрФУ, попутно работаю программистом на Ruby on Rails в одном из самых больших IT отделов Екатеринбурга — в отделе веб-разработки медиахолдинга «Абак-Пресс».
Когда пришло время проходить практику, я решил – буду проходить по месту работы. Перед собой поставил цель: реализовывать на практике систему мониторинга билдов. На работе задумку одобрили и предложили собрать подобное устройство.
Конечно же, в процессе работы я столкнулся с рядом проблем.
Проблема 1: Светофор
Оказалось, что купить за разумные деньги ламповый светофор в нашем городе невозможно. Пришлось задейстовать всех своих знакомых, и с большим трудом нашелся один экземпляр, якобы сильно пострадавший от рук вандалов, от чего, собственно, он и был списан. На деле же у него был поврежден один из козырьков и полностью уничтожено одно из креплений.
Решение было простым – крепить к стене, а не к столбу, к тому же апоксидка со стеклотканью с легкостью восстановили обломленный козырек.
«Мозги» Светофора
Сначала думал сделать что-нибудь простенькое, например, MSP430 + Ethernet. Однако, расчеты показали, что стоимость этого решения сравнима со стоимостью raspberry PI. Конечно, я выбрал raspberry, это предвещало наличие в будущем различных свистелок-перделок в светофоре.
На малину был установлен ArchLinux. Оказалось, что настоящих часов в малине нет, поэтому нужно написать скрипт, который бы при каждом включении ходил и устанавливал верное время на устройстве, в противном случае https соединения работать отказывались в связи с текущей датой — 1 января 1970 года — все сертификаты недействительны.
Далее был скомпилирован ruby последней версии 2.0.0. Процедура заняла больше трех часов.
Было опробовано два гема для общения с gpio: WiringPI и PiPiper. На плате последней версии (rev 2) заработал только PiPiper. Кстати, доступ для gpio есть только у пользователя с root правами, это обязательно надо иметь в виду.
Как имея 3,3 В на логических выводах raspberry управлять включением ламп светофора ?
Светофор очень хорошо работает от сети 220В — это удобно. Около часа я включал попеременно каждую лампу светофора в розетку и радовался как ребенок. Для справки: светофор светодиодный, но старого образца, то есть свет у него как будто ламповый, поэтому модифицировать его конструкцию и втыкать в него лампочки я не стал.
Свет от светофора приятный – почти теплый, ламповый и только попадая в фокус линзы светофора есть немного неприятные ощущения слишком резкого света, но эту проблему решили правильным расположением светофора.
Итак, обратимся к главной проблеме вышеизложенного. Решений было найдено два: реле и «не реле».
Так как мне интересно все новое, и совсем не потому, что у одного из моих руководителей практики есть дача, на которой надо управлять дистанционно мощной нагрузкой, что чревато большими токами, был выбран второй вариант.
Прочитав http://easyelectronics.ru/upravlenie-moshhnoj-nagruzk.. я реализовал трехканальное устройство с немного другими оптодрайверами — с хорошими радиаторами оно может держать до 16А. Светофор все же нагрузка не мощная — я обошелся без радиаторов.
На макетной плате я собрал работающий один канал такого устройства:
Правда оказалось, что схема была указана для управления нулем, я же управлял высоким уровнем сигнала, так что входные контакты пришлось поменять местами.
Изготовление управляющей платы
После неудачной попытки поверхностного монтажа было принято решение изготовить печатную плату.
Получившаяся схема:
Был закуплен текстолит, хлорное железо, изучен ЛУТ (лазерно-утюжный метод печати плат в домашних условиях) и с пятой попытки изображение печатной платы было перенесено с бумаги на текстолит.
Топология:
После этого, сломав пару сверл на 1 мм, я дождался утра и в институте просверлил оставшиеся отверстия на сверлильном станке. Вечером того же дня я развел хлорное железо и начал травить — всего 20 минут и плата была вытравлена.
Раствор, к слову, получился многоразовый.
С помощью ацетона удалил слой тонера, и за два часа были припаяны все компоненты. В последствие плата была покрыта цапонлаком.
Программа управления
Так как доступ до gpio есть только у пользователя с root правами, rvm был собран по инструкции wiki.archlinux.org/index.php/RVM. Архитиктура системы такая: есть сервер, к которому из веб формы можно обращаться и есть демон, который осуществляет общение через gpio c платой исполнительного устройства. Демон имеет root права. Код проекта можно посмотреть:
github.com/Aelphy/traffic-light-server
github.com/Aelphy/traffic-light-daemon
Заключение
В последствие планируется добавить колонку и полноценный режим «Новый год».
Сейчас светофор работает в стандартном режиме — показывает статус последнего билда проекта и следит работает ли внутрення сеть.
Используемые цветовые коды :
— зеленый — тесты прошли;
— красный — тесты упали;
— желтый — идет билд;
— желтый мигающий – проблемы (нет интернета, не отвечает).
На данной платформе можно очень дешево реализовать целый ряд задач по мониторингу и обслуживанию
ссылка на оригинал статьи http://habrahabr.ru/post/195594/
Добавить комментарий