Красивый и прикольный подарок

Автор: Soir. Опубликовано в Часы

titleПростые часы из отдельных светодиодов на микроконтроллере ATMEGA8

 

 

 

 

Прикольный и необычный подарок.
 

Лирическое отступление №1.
Люблю делать подарки, особенно необычные; так же люблю музыку (и\или хорошее исполнение а-капелла) и жутко не выношу одного персонажа.
Лирическое отступление №2.
В далёком босоногом децтве я любил проводить время с панками и прочими неформалами попивая неплохое вино, которое в их компании доставляло к атмосфере +100.
...И вот это всё, спустя много лет, забродило и выдало на-гора, не сказать что б совсем оригинальную, но мысль.
А что если...?

Преамбула.
Видел в сети схемы интересных штук: часы на светодиодах - помашешь, а они тебе время кажут. Или попадалась такая же идея, но там можно текст через какую-то программку ввести и помахивая давать читать его.
А что если объеденить это, да ещё добавить музыку?
Понятное дело, на микросхемах стандартной логики это не сделать (ну или сделать, но потом замахаешься махать), а программировать я не умею.

Решено было обратиться к уважаемому Soir за помощью.
Выслушав несколько сбивчивое объяснение он призадумался, а прилетевшая птица Обломинго, сказала - музыки не будет, пианино сломано.
И началось составление ТЗ.

В результате довольно быстрого согласования ТЗ и долгого утрясания терминов ("туда" и "сюда" - это куда и насколько быстро?) было дано добро и проект начался.

Прошло три дня, и вот результат.

pic 1

Казалось бы - ничего особенного? Однако - нет, вся соль, другими словами, изюм, в программе.
А она может примерно вот что (но для этого надо помахать):

1. Если кнопку коротко нажать один раз: покажет время в формате часы:минуты (в версии 2 покажет часы:минуты:секунды).
2. При следующем коротком нажатии: день недели-число-месяц.
3. Ещё одно короткое нажатие: можно уточнить какой сейчас год (но это только в версии 2).
Все короткие нажатия кнопки, подтверждаются весёлым помигиванием второго снизу, в левом ряду, светодиодика.

Есть ещё секретный режим. Но о нём никому ни слова – если десять раз, быстро (~ 7 секунд ) нажать кнопку (каждый раз будет в подтверждение нажатия зажигаться второй светодиод снизу слева) , а потом помахать – то можно будет увидеть несколько экспрессивное, но весьма точное определение одного мелкого персонажа.
Выйти из секретного режима просто – примерно пять секунд держать нажатой кнопку, до зажигания светодиода слева внизу.

Как это работает

У девайса есть верх и низ. Найти их не сложно: верх – вверху, низ – внизу (там ещё батарейка).

pic 2 pic 3

 

Блок схема работы.

pic 4

pic 5

Так вот, надо взять его в руки низом – вниз, верхом – вверх.Потом сделать короткое нажатие на кнопку и помахать перед собой вправо – влево. В результате будет видно время, а если нажать ещё раз и помахать, будет видна дата.

(В версии 2 при отображении времени будут видны секунды. Также будет выводиться год.)

 

 

 

 

 

Настройка.

pic 6Чтобы попасть в режим настройки надо 5 секунд (это длинное нажатие) держать кнопку WAKE нажатой. Только в этом случае радостное зажигание первого снизу в левом ряду светодиода известит - да, вошли в режим настройки.

Настроить можно всё, и чуть больше: часы-минуты и секунды(только в версии 2); день недели-число-год. Короткое нажатие - изменение параметра; длинное -сохранение и переход к следующему.

Есть ещё настройки шрифта.
Я только щас понял насколько они полезны. 
Называются они так: гор25поз
Это задержка от момента срабатывания датчика до начала вывода информации. Поскольку вначале траектории рука не сразу набирает нужную скорость, то правые символы будут сжаты, а возможно даже не видны. Этот параметр определяет, через сколько мсек начнется вывод. По сути - положение изображения по горизонтали. 25 - число по умолчанию, доступно для установки от 0 до 99. Чем больше величина, тем больше изображение смещается вправо. Мало того, этим параметром можно отзеркалить изображение! Это окажется полезным, когда датчик будет капризный.

Есть ещё регулирование ширины символов (размер по горизонтали). Параметр роз30мiр. 30 - число по умолчанию, доступно для установки от 0 до 99. Чем больше величина, тем больше размер.
Тем, у кого руки короткие или наоборот, слишком длинные - очень пригодится. Ну и что б плече не повредить размахивая столь полезным девайсом.

(В версии 2 при установке времени будет доступно обнуление секунд нажатием на кнопку.)

Схемой предусмотрена возможность установки еще одной кнопки - MINUS. Работает она почти так же, как и WAKE. Но если WAKE увеличивает значение параметра, то MINUS его уменьшает. По кнопке MINUS часы не просыпаются. Это кнопку можно не устанавливать.

Демонстрационное видео работы:

основной режим

секретный режим

Схема часов, проект в Proteus для симуляции работы, рисунок печатной платы, прошивка и FUSE в архиве.

Обсуждение и вопросы в форуме.

Авторы: accept (реализация в "железе") & Soir (прошивка).