Полезное

понедельник, 27 октября 2014 г.

NTP Synced Nixie Tube Clock

 Автор: Evan Blair Quirk



Лампа: ИН-14
Схема: есть
Плата:есть  
Прошивка:нет
Исходник:есть
Описание: есть

Особенности: NTP синхронизайия времени.




Схема:




Часы построены на старинных ГРИ и  умеют получать текущее время из интернета по средствам  NTP протокола.

ГРИ -  лампповые индикаторы, которые были популярны в прошлом веке. Они имеют один анод и ряд катодов, которые связаны с цифрамив лампе. Когда источник высокого напряжения соединен с анодом и одним из катодов заземлен, соответствующую цифру окружает оранжевое свечением. Они в настоящее время популярен среди любителей электроники, благодаря своему уникальным внешнему виду и
"магическому" свечению.

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


Аспекты проектирования:

В построении часов на ГРИ нет ничего нового. Это было сделано уже бесчисленное количество раз и считается уже до точки, почти обрядом посвящения для любителей в области электроники. МЕня зацепила тема ГРИ, но я хотел сделать что-то другое, то, что вы не могли найти в других проектах. В конце концов я решился на строительство NIXIE часов, которые были бы в состоянии получить время автоматически, а именно, через NTPМои соображения по этому поводу описаны ниже:


Аппаратно-программные части:

Решив использовать NTP для синхронизации времени, я понимал, что разработка программного обеспечения(прошивки) займет большую часть времени в реализации проекта. Прошивка МК должна уметь работать с протоколом TCP / IP , в основном UDP для синхронизации по NTP, а также преобразовать время UTC в формат, пригодный для вывода.  


Оборудование же, чтобы включать в себя все компоненты, необходимые для отображения, а также тех, для работы в сети. Имея как аппаратные, так и программные компоненты также поможет мне узнать столько, сколько я мог от проекта.  

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


Оборудование :

Везде, где можно, я бы попытаться сделать свою плату как можно более простой. Воосновном потому, что этот проект - моя первая попытка разработки и производства своих собственных плат. Таким образом, выбор остановился на односторонней печатной плате. Кроме того,там где это возможно, я старался для простоты схемы усложнить программу, ведь мне  не   хотелось иметь плату в которой полно перемычек


Модульность:

Как мой первый  проекта, я не сомневаюсь что будут проблемы . Поэтому решил построить каждый  аппаратного узел отдельный. Таким образом, если произошла ошибка на одной из плат ,не нужно переделать все.
 


Оборудование:
Tuxgraphics NTP Clock:

Покопавшись в интернете я нашел NTP  часы на tuxgraphics.org. Они оказались идеальным исходником для моих часов, тем более что весь проект был открытым исходным кодом. В нем используется 
микроконтроллер Atmel ATmega168  для работы по SPI с микросхемой ENC28J60 Ethernet. Я повторно использовать код работы по сети и просто напишу новый кусок программы индикации, подходящий для приведения с ГРИ.

Общая схема:


 ENC28J60 и обвязка:
 

Включение ENC28J60 является довольно стандартным. ENC28J60 требуется 3,3В питание,микроконтроллеру - 5В(почему оба не запустились на 3.3В см ниже). Связь с МК проводится по  SPI интерфейсу. ENC28J60 также связана с выводом для внешних прерываний INT0 микроконтроллера . Кроме того, ENC28J60 обеспечивает тактирование ATmega168. ENC28J60 работает на частоте 25 МГц и внутренним делитель частоты делит его на 12,5 MГц часы. По документации для ATmega168 способна работать на частоте 0-10MHz @ 2.7-4.5V и 0-20MHz @ 4,5-5,5. Однако, на практике, Оказалось, нет никаких проблем с запуском с немного более высокой тактовой частотой(странно с чегоб они были верь МК питается от 5 в :), а не от 3В)."Magjack" (сетевой раьем) содержит и согласующий трансформатор, и светодиоды. МК и аппаратная часть обслуживания сети собраны на одной из 3 плат.

ГРИ:

Выбор пал на  IN-14 , изготовленные на территории бывшего Советского Союза. Они были выбраны за их среднего размера и доступной цене примерно в $ 3 + доставка за лампу. По инструкции что они работают от 170 вольт  и потребляют 2,5 мА тока. Я хотел бы использовать в общей сложности шесть ламп, две для часов, две для минут, и две для секунд.Для индикации решил заказать профессионально сделанный плату от nixieclocks.de и самомму запаять лампы, поскольку я не был уверен, что смогу сделать их самостоятельно. Это второй вторая плата.
Схема высоковольтного питания:
Переводить эту часть смысла нет, все и так понятно, схема стандартна и не совсем удачна.Могут быть проблемы с запуском и нагревом мосфета.На просторах интернета  можно найти и более совершенные образцы.


Управление лампами:

Хотя микроконтроллер отвечает за уравление шестю лампами в моем проекте, он не может непосредственно взаимодействовать с ними. Его выводы выдают 3.3V и лампы же требуют напряжения 170 В. Таким образом, потребовался посредник(анодный драйвер и катодный драйвер)  между микроконтроллером и лампами. Наиболее распространенная катодного драйвера, либо на дискретных компонентах (транзисторы, резисторы) или через МС 74 141 (155ИД1).  Бла-бла-бла про динамическую индикацию можно почитать в википедии. Человек выбрал индикацию со скважностью 3, в его случае одновременно светятся 2 лампы, что позволит увеличить яркость свечения.
 Обыденно использоваал 74141 IC для управления катодов ламп.74141 является BCD (дешифратор из двоичного кода в десятичный) декодер. Это означает, что она двоичное число (половина байт или четыре бита) в качестве входных данных, декодирует его десятичный эквивалент, и переключает соответствующий катода к земле. В моем случае потребуется две 74141 ИС, по одному для каждой из двух ламп, одновременно горящих

Анодный драйвер сделан на десертных элементах, т.к. не нашел подобие 74141 для коммутации высокого напряжения

Получившаяся схема показана вначале статьи.

программное обеспечение:
 
Ведение Время:
Отслеживание времени является сравнительно простым делом. В данном случае, оно(время) хранится в 32-битной переменной в UNIX формате. Это означает означает, что переменная содержит количество секунд прошедших от полуночи по Гринвичу 1 января 1970 года,т.к мы будем с сервером  NTP только раз в час, надо отсчитывать время еще и этих промежутках между синхронизациями. Это делается путем генерации прерывание таймера каждую секунду модификации внутренней переменной.


Главный цикл программы выглядит так:
main() {
      initialize();
      while(1) {
            recieve_packet();
            if no packet {
                  if time not set { request_ntp(); }
                  time_conversions();
                  display( hourh, minl , anode_pair_1 );
                  display( hourl, sech , anode_pair_2 );
                  display( minh, secl , anode_pair_3 );
                  if minutes = 59 { request_ntp(); }
            }
            else { interpret_packet(); }
      }
Подробнее рассказывать не буду , и так все понятно.


Конфигурация:

Конфигурация ГРИ часов осуществляется через веб-браузер. Есть три страницы конфигурации:
http://(clockip)/config, http://(clockip)/options и http://(clockip)/timing На странице КОНФИГУРАЦИИ параметры настройки сети, такие как IP адрес часов и IP адрес NTP сервера. Страница ОПЦИЙ отвечает за параметры отображения, такие как вариант 12/24 часовое отображение времени и гасить незначащий нольтраница ВРЕМЕНИ, включает в себя настройки   ночного режима.

Страница КОНФИГУРАЦИИ:


Страница ОПЦИЙ:



Страница ВРЕМЕНИ:
 

 Теперь немного фото:











Видео:




 

Файл платы верх
Файл платы низ
Схема
Исходник(фьюзы)

Для любителей читать на англицком первоисточник



 
 
 
 

Комментариев нет:

Отправить комментарий