МоргАлка

Светоиндикационное табло “МоргАлка”.

Представляет собой два фонаря управляемые по средствам команд с любого устройства поддерживающего UART (COM PORT / RS232) и способного передавать произвольные данные.

“МоргАлка” может быть использована для индикации любых процессов — до которых можно дотянутся программным путём.

Например отображать наличие электронной почты, статус сервера и т.д.

Схема устройства построена на компонентах легко добываемых из отслуживших свой срок материнских плат, докупить придётся только микроконтроллер Atmel ATtiny13A и “пищалку” с встроенным генератором (если планируется использовать).

Схема:

"Схема Моргалки"

Питание устройства осуществляется от постоянного напряжения 12В, потребляемый ток не превышает 0.1А (при использовании светодиодов).
В случае если вам нет необходимости управлять нагрузкой на 12В., то можно исключить из схемы стабилизатор LM7805 и питать схему непосредственно от USB порта, это гораздо упростит жизнь.

Используемые мосфеты выбирались из расчёта “то что есть” и в приведенной схеме являются сильно избыточными, но это даёт возможность, в случае желания, мигать хоть авто. галогенками :)

Печатная плата:

"PCB-element-position"

 

Печатная плата выполнена из одностороннего текстолита. Данный вариант не был мной сделан, моя моргалка осталась собранной на плате от первой версии. (PDF файл с печатной платой под ЛУТ вы можете найти на GitHub).

Управление:

Для управление устройством можно использовать преобразователь USB2COM . Скорость обмена 9600. Используется только линия TX.

В случае если планируется использовать COM порт компьютера то необходимо собрать переходник на MAX232, например  из этой статьи от уважаемого DI HALT

Поддерживаемые команды:

  • «g» — включить мигающий зелёный
  • «r» — включить мигающий красный
  • «w» — включить мигающий зелёный+красный
  • «G» — включить горящий зелёный (бипер не подерживается)
  • «R» — включить горящий зелёный (бипер не подерживается)
  • «W» — включить горящий зелёный+красный (бипер не подерживается)
  • «C» — включить кастомную нагрузку
  • «c» — выключить кастомную нагрузку
  • «F» — скорость мигания быстро
  • «S» — скорость мигания медленно
  • «B» — Включает бипер
  • «b» — выключает бипер
  • «-» — Отключить мигалку и бипер(не глюк). Кастомная нагрузка не затрагивается.

Поддерживается комбинация команд, например «gF» — включит «быстро мигающий» зелёный фонарь или «gS» соответственно «медленно мигающий».

Бипер поддерживается только в режимах «мигания»!!!

Пример использования:

Оповещение о новых письмах GMAIL (Ruby):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# pls, install gem ruby-gmail and ruby-serialport

require 'gmail'
require "serialport"

exit if Object.const_defined?(:Ocra)

gmail_username = "YOUR USERNAME"
gmail_password = "YOUR PASSWORD"


def uart_send(command)
  port_num = 9
  baud_rate = 9600 #COM Speed
  data_bits = 8
  stop_bits = 1
  parity = SerialPort::NONE
  com = SerialPort.new(port_num-1, baud_rate, data_bits, stop_bits, parity)
  com.write(command)
  com.close
end

while 1
 gmail_connect = Gmail.new(gmail_username, gmail_password)
 mail = gmail_connect.inbox.count(:unread)

if (mail>0 && mail<5)
    uart_send("gS")
    puts "#{Time.new.strftime("%m.%d.%Y %T")} Find #{mail} unread mail\r\n"
elsif (mail>=5)
  uart_send("rS")
  puts "#{Time.new.strftime("%m.%d.%Y %T")} Find #{mail} unread mail\r\n"
else
  uart_send("-")
  puts "#{Time.new.strftime("%m.%d.%Y %T")} No mail\r\n"
end
gmail_connect.logout
sleep 60 #Delay sec
end


__END__

Скрипт в цикле с задержкой проверяет почтовый ящик на наличие непрочитанных писем и в случае наличия новых писем подаётся зелёный мигающий сигнал, в случае если писем уже более или равно 5 то подаётся мигающий красный иначе если писем нет то все сигналы выключаются при следующей проверке ящика.

Прошивка и печатные материалы вы сможете найти на GitHub

Комментарии