Началось все с того что захотелось сделать какое-нибудь полностью законченное устройство на микроконтроллере AVR.

Выбор пал на бинарные часы, т.к. они просты в изготовлении и достаточно эффектно смотрятся. А еще потому что мне всегда нравился плазмоид бинарных часов из KDE который выглядит вот так:

Что такое бинарные часы?

Для тех кто не знает что такое бинарные часы и как по ним определить время, сделаю небольшое отступление. Бинарные часы это просто часы которые показывают время в двоичной (или бинарной) системе счисления, вместо привычной нам десятичной.

Бинарные часы бывают разные (как в общем-то и обычные часы) - с разным количеством и расположением индикаторов, с секундами или без, с 24-х или 12-и часовым форматом времени и т.д. Я решил остановиться на варианте максимально похожем на вышеупомянутый плазмоид из KDE:


Часы состоят из шести вертикальных колонок - две колонки на часы, две на минуты, и две на секунды (слева на право). Каждая колонка по сути представляет собой одну цифру (т.е. по две цифры на часы, минуты и секунды).

В часах четыре горизонтальных строки, так как нам нужно уметь показывать цифры от нуля до девяти (по крайней мере для младшего разряда), а двоичное представление девятки - 1001 , содержит четыре разряда (бита). Младший разряд находится снизу.

Проще всего понять какое время показывают часы анализируя "циферблат" слева на право, снизу вверх. Запишем значение двоичного числа представленного самым левым столбцом часов изображенных на картинке выше (условившись что горящий индикатор обозначает единицу, а потухший - ноль): 0010 в двоичной системе счисления это 2 - в десятичной. Аналогичным образом запишем значение второго столбца: 0001 в двоичной системе счисления (как и в десятичной), или просто единица. То есть на часах 21 час. Точно так же можно прочитать что часы показывают 35 минут и 28 секунд. Немного практики и читать время с бинарных часов будет получаться почти так же быстро как и с обычных.

Реализация

Итак, с идеей понятно, приступим к реализации.

Начнем с индикатора ("циферблата") - который представляет собой решетку из светодиодов.

Поскольку в часах 4 горизонтальных и 6 вертикальных рядов, общее количество необходимых светодиодов - 6 * 4 = 24. На самом деле, можно обойтись меньшим количеством светодиодов, т.к. не все разряды будут задействованы - например старшая цифра часов (самый левый столбец), может показывать число не больше двух (при двадцати часовом формате времени), а значит можно сэкономить целых два светодиода. Но я этого делать не стал и поставил все 24 светодиода, т.к. хотел (в будущем) использовать эти часы для показа простых текстовых сообщений.

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

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

Схема и печатная плата

Схема достаточно стандартная: микроконтроллер, питание, сброс, разъем для подключения программатора. К TOSC1 и TOSC2 подключен часовой кварц от которого будут тикать часы. Кнопки настройки времени подтянуты к напряжению питания. Десять выходов на светодиоды (6 столбцов+ 4 строки). На каждую горизонтальную строку подключен резистор для ограничения тока через светодиод.

Печатная плата получилась односторонняя, но все же с двумя перемычками с другой стороны (отмечены красным) которые достаточно просто сделать из тонкой медной проволоки.

Корпус

Наверное, это самая неинтересная часть. Но, в то же время, именно она заняла большую часть времени.

Сам корпус сделан из деревянных досок скрепленных гвоздями и клеем. После сборки доски были тщательно отшлифованы, вскрыты морилкой и несколькими слоями мебельного лака.

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

К передней части часов приклеено двустороннее матовое стекло. Заднюю часть закрывает крышка на шурупах, из которой торчат кнопки настройки времени.

Программная часть

Программу я решил писать на ассемблере. Не потому что это самый удобный язык разработки, а исключительно в образовательных целях. Исходные коды можно найти ниже в разделе "Файлы".

Весь код описывать не буду, т.к. он достаточно подробно откомментирован. Опишу только ключевые моменты.

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

Смена времени происходит раз в секунду по прерыванию переполнения таймера Timer/Counter2. Поскольку частота кварца равна 32768Гц, а предделитель таймера установлен на 128, то переполнение однобайтового таймера будет происходить раз в секунду (32768 / (128 * 256) = 1 ), что очень удобно.

Обработка нажатий на кнопки происходит в процедурах button_stop_pressed для кнопки перевода часов в режим настройки и обратно, button_set_pressed для кнопки установки времени и button_switch_pressed для кнопки переключения столбца. Обратите внимание, что в процедуре button_stop_pressed текущее время сохраняется в EEPROM. Это сделано для того что бы время не сбрасывалось если нужно, например, переключить часы в другую розетку (при включении часов время считывается из EEPROM).

Вся основная "работа", такая как - опрос состояние кнопок, переключения активного столбца развертки и вывод времени происходит в main . Начальная инициализация выполняется в reset .

Результат

То что получилось в результате можно посмотреть на видео ниже. Там же запечатлены и некоторые стадии процесса изготовления.

Файлы

Исходные коды прошивки, схематика и разведеная плата находятся в этом репозитории на GitLab .

В качестве заключения

В общем, для первого устройства, думаю, получилось весьма неплохо.

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

Когда-то очень давно я просила моего друга объяснить мне, что такое двоичная система счисления. Поскольку я девушка, совершенно далекая от всяких технических изысков и тонкостей, друг мой задумался над ответом. «Ну ты знаешь... это как любовь — либо есть, либо ее нет и ничего с этим не поделаешь. В общем, так цифры кодируются. Единицей или нулем. Один — есть сигнал, ноль — нет сигнала».
Вот так и с бинарными часами. Возможно, покрутив их в руках, Вы скажете самому себе: «Ну и напридумывают же всякой ерунды. И что с этим делать?». Либо, (и этот вариант наиболее вероятен) увидев и подержав их в руках, Вы непременно захотите разобраться, что это такое, «с чем его едят», и конечно же захотите их приобрести.
Ну а я со своей стороны и в силу своих технических способностей и возможностей попробую все-таки Вам рассказать (и показать) что же это за зверь такой - бинарные часы.
Итак, как Вы уже поняли, «бинарный» означает двоичный, то есть отображаемый с помощью всего двух элементов. Если Вам все еще непонятно, что это, то вспомните великого «шифровальщика» Самуэля Морзе, использовавшего для передачи букв алфавита посредством телеграфной связи всего два символа — точку и тире.


Современные бинарные часы тоже определенным образом кодируют информацию о дате и времени. Человеку несведущему с первого взгляда будет довольно сложно понять, что же означают все эти безумно мигающие светодиоды. Вы спросите «Какие светодиоды? И где вообще циферблат, стрелки, ну или хотя бы электронные цифры?». Предупреждение: в поисках цифр и стрелок не пытайтесь взломать или вскрыть крышку часов.

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

Изначально бинарные часы были созданы с целью проведения научных экспериментов. Позже, в 1920-1940 годах, японский профессор Хивари работал над решением вопроса забывчивости и рассеянности у лиц пожилого возраста. Несмотря на общеизвестный факт о большой продолжительности жизни японцев, при достижении ими определенного возраста эта проблема становится весьма актуальной. В качестве тренажера для улучшения памяти профессор предложил своим пациентам использовать усовершенствованные им бинарные часы, в которых для отображения времени использовались палочки и точки. Результаты были весьма впечатляющими. Уже спустя три месяца у пенсионеров, использующих в быту такие часы, были отмечены значительные улучшения показателей памяти и внимания.



Таким образом, в настоящее время бинарными часами называют любые часы с нетрадиционным способом отображения времени: с помощью точек, перевернутых цифр или символов. Изобретение и дальнейшее развитие диодных технологий (LED) дало возможность производить наручные бинарные часы с неограниченным количеством диодов для отображения времени.

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

Несомненно, мировым лидером в производстве наручных бинарных часов является Япония, другое было бы просто удивительным. Кроме того, такие часы выпускают некоторые немецкие компании. Ну и «бюджетный» рынок бинарных часов представляет Китай, но как правило, это копии и имитации брендов известных марок.

Мир часовых головоломок от Tokyo Flash. Часы для тех, кто любит задумываться о времени.

«Как Вы думаете, что это?» - спросила на днях я своих друзей и знакомых в социальных сетях, разместив фото одной из последних оригинальных (впрочем, как и всегда) разработок компании Tokyo Flash. Бинарные часы Shinshoku, сделанные в виде браслета из металла, покрытого дырочками, в которых для определения времени необходимо сосчитать количество точек различных цветов. Надо сказать, что выдвигаемые версии были весьма разнообразны, некоторые из них даже заставили меня улыбнуться.


Наручники для заключенных с индикаторами?!
Кольца? Браслет?! Какое-то ювелирное украшение?
Похоже на челнок швейной машины....
Напоминает браслеты-утяжелители для фитнеса....
«Холодно, очень холодно», - отвечала я.
К вечеру подтянулась «продвинутая молодежь»
Может это будильник?
По внешнему виду очень напоминает часы.
Может, это часы? Какие-нибудь специальные? Например для слепых?...
Разрушил интригу мой давний знакомый, программист, несколько лет живущий в Таиланде. «Двоичные часы», - ответил он и поставил улыбающийся смайлик. «Бинарные», - поправила я, и рассказала всем остальным, что это за часы и по какому принципу они работают.
Каждый выпуск бинарных наручных часов, производимых японской компанией Tokyo Flash, строго лимитирован. Некоторые часы выпускаются в качестве корпоративных подарков или сувениров для клиентов и сотрудников по заказу той или иной компании. Каждая модель выпускаемых часов по-своему уникальна и эксклюзива, поэтому снятые с производства и не поступающие больше в продажу образцы часов хранятся в музее, их описание, фото и даже видео можно найти на официальном сайте компании www.tokyoflash.com.


Каждый раз, когда компания Tokyo Flash презентует очередную новинку, часовой мир удивленно ахает, а любители головоломок довольно потирают руки. «Айтишники» и программисты находят очередную тему для обсуждения с коллегами по цеху за чашкой утреннего кофе, а «продвинутые» мужчины точно знают, что они попросят или закажут в подарок на Новый год или очередное торжество своей второй половине.
Никогда заранее не известно, чем вдохновятся дизайнеры компании при выпуске очередной модели часов: последним фильмом про Джеймса Бонда или новым фантастическим триллером. В любом случае, можно только позавидовать их неисчерпаемой фантазии. Часы с названием «1000100101» - чем не аксессуар спецагента ФБР?


А минималистические часы Tokyo Flash, изготовленные с применением стилистических элементов, используемых в кинолентах «Трон» и «Космическая одиссея 2001 года», наверняка теперь будут вдохновлять режиссеров, сценаристов и продюсеров на создание новых фильмов. Я не исключаю вероятность того, что некоторые модели наручных бинарных часов Tokyo Flash могут использоваться в качестве реквизита при съемках какого-нибудь очередной научно-фантастической саги. Интересно, не носит ли такие часы Джордж Лукас, режиссер «Звездных войн»? Лично у меня возникла ассоциация именно с этим фильмом, когда я увидела бинарные часы Tokyo Flash Kisai Satellite Watch.


Какую бы модель наручных бинарных часов компании Tokyo Flash Вы ни выбрали, такой аксессуар в любом случае всегда выделит Вас из толпы. Это отличный способ не только заявить окружающим: «Я не такой, как все», но и создать некий ореол загадочности вокруг своей персоны. В любом случае, такие часы никогда не придадут Вам легкомысленный вид, ведь основной слоган компании Tokyo Flash - «Часы для тех, кто любит задумываться о времени».

Бинарные часы компании The one (Германия) — немецкое качество на службе у инноваций.

Среди моделей наручных бинарных часов немецкой компании The one всегда найдутся экземпляры на самый изысканный и взыскательный вкус. Если Вы отдаете предпочтение вещам, проверенным временем и соответствующим самым высоким стандартам качества, но Вам наскучили привычные часы, отвечающие общепринятым нормам этикета, то возможно Вам стоит обратить взор в сторону бинарных часов компании The one.
К примеру, коллекция Art Edition, разработанная под руководством ведущих дизайнеров Европы, таких как Walter Heidenrich и Romero Britto, известными своими ювелирными украшениями в стиле поп-арт - это яркий образец невероятного сочетания цветов и геометрических форм. Такие часы как нельзя лучше подчеркнут изысканный вкус и помогут в создании персонального имиджа истинным ценителям современного искусства.




Коллекция бинарных часов Gamma Ray, напротив, является классическим образцом сдержанности и элегантности. Модели, выполненные из нержавеющей стали, наилучшим образом подчеркнут стиль их владельца и гарантируют молчаливый восторг со стороны окружающих. Хотя стопроцентной гарантии молчания Вашего окружения я Вам не дам. Думаю, что дамы не удержатся от вопросов. Так что это неплохой повод для знакомства, если Вы еще не успели обзавестись второй половиной. Поверьте мне, женщин всегда восхищают мужчины, умеющие хорошо разбираться в технических новинках.



Несомненно, самые брутальные бинарные часы The one — это часы коллекции Ibiza Ride. Перефразируя известный афоризм, о них можно сказать «Проснулся, оделся, умылся, надел часы The one - и пошел спасать мир». С часами коллекции Ibiza Ride, придающими «терминаторскую» уверенность в себе, Вам по плечу справиться с любыми, даже самыми невыполнимыми задачами предстоящего дня. Это часы для тех, кто ценит свое недешевое время, стиль и индивидуальность.




Компания The one не обделила своим вниманием и любителей классики. Сдержанные, элегантные часы коллекций Kerala Trance и Lightmare являются одними из самых востребованных и популярных.



Кроме того, у The one есть несколько коллекций для слабой половины человечества. Это и вызывающая волнение мужских сердец и зависть подруг коллекция Odins Rage, все часы которой инкрустированы кристаллами Swarovski, и поднимающая настроение коллекция SLIM SQUARE, выполненная в неоновых цветах и украшенная воздушными бабочками.



Бинарные часы немецкой компании Led Watch.

Немецкая компания по производству наручных бинарных часов Led Watch была основана конструктором Адольфом Индермануром. При разработке и дальнейшем производстве часов используются последние научные разработки в области светодиодных технологий.
Часы компании Led Watch представлены в крупнейших городах всего мира и продаются в Англии, Австралии, Франции, Китае, Корее, Тайване, Гонконге, Таиланде, Японии, Малайзии, Сингапуре, Канаде, Турции и США.
Бинарные часы компании компании Led Watch разительно отличаются от своих швейцарских коллег и привлекают в первую очередь немецким качеством стальных циферблатов, нестандартным дизайном и особенным способом подсчета времени. В линейке часов Led Watch представлены как женские, так и мужские коллекции.


Подводя некий итог, могу отметить, что бинарные наручные часы - это то, что никак не назовешь стандартным, банальным и обыденным. Это новый, свежий взгляд на время и способ его отображения. Если учесть тот факт, что постоянное использование бинарных часов способствует развитию и улучшению памяти, то это не просто модный аксессуар, но и способ заботы о своем здоровье. Если Вы хотите жить не только красиво, модно, стильно, ярко, но еще долго и качественно, то бинарные часы — Ваш выбор. И не бойтесь, что Вы не сможете разобраться с этим сложным механизмом отображения времени, спустя пару дней использования таких часов Вы с легкостью будете отвечать на вопрос: «Который час?».

Наташа

Пожелав собрать бинарные часы, я так и не нашел приемлемой готовой конструкции в сети. Большинство часов обладали серьезным недостатком – при отключении питания, настройки времени сбивались. По счастливой случайности, незадолго до этого, я начал осваивать язык Си и микроконтроллеры AVR. Итак, было решено подкрепить полученные знания практическим опытом, а заодно изобрести велосипед. А еще я очень люблю зеленые мигающие светодиоды.



Схема



RTC

Проблему сохранения текущих настроек прекрасно решают часы реального времени (RTC). Мой выбор пал на микросхему DS1307 .

По заверениям производителя, при отключении питания, она может сохранять время и дату в течении 10 лет, потребляя энергию одной лишь литиевой батарейки типа CR2032. Т.е часы продолжают тикать, сохраняя приемлемую точность хода. Время не сбивается, снова включив часы, мы получаем реальное время на циферблате, а не время на момент выключения. Микросхема общается с микроконтроллером через «квадратную шину» I 2 C, сообщая точное время и принимая новые его значения.

Сердце устройства

Выбор микроконтроллера Mega32a был продиктован следующими факторами:
Достаточное количество портов, чтобы не использовать динамическую индикацию, которую я не люблю, в первую очередь из-за того, что она раздражает зрение (мигание с высокой частотой в любом случае неестественно). С ней я познакомился, играясь с микроконтроллерами PIC на языке Proton PICBasic, и если есть возможность не использовать динамическую индикацию, я предпочту так и сделать.
Относительно низкая стоимость в 130 рублей (Mega16a, например, стоит столько же), а со скидкой так вообще 104 рубля.
Четкий QPF-44 корпус, с удобным расположением выводов


Порт «А» отображает секунды, порт «В» - минуты и порт «С» - часы. Очень удобно то, что можно присвоить портам значения времени, принятые из DS1307, без каких – либо изменений. К порту «D» подключены кнопки (пины 3 – 7), пины 0 и 1 работают как линия тактирования (SCL) и линия последовательной передачи данных (SDA) соответственно. Микросхема RTC настроена так, что выдает на своей седьмой ноге импульсы с частотой 1 герц. Эта нога подключена к 3-му пину порта «D». Сам этот порт сконфигурирован на вход, и на всякий случай включены внутренние подтяжки к плюсу питания, продублированные SMD резисторами снаружи. Такие действия в полной мере защищают от всяких неожиданностей.

Светодиоды


Светодиоды я выбрал в матовом корпусе с низкой светимостью. Сначала были опробованы яркие диоды в прозрачном корпусе, но даже при токе в 3 мА они слишком ярко и неравномерно светили, что опять таки вызывало дискомфорт. При падении напряжения на диоде в 2 вольта, напряжении питания 5 вольт и резисторе 1 кОм, значение тока, текущего через диод будет равно (5 – 2)/1000 = 3 мA. Это значение было подобрано эмпирически, а яркость свечения отлично подходит для полутемной комнаты. Если планируется устанавливать часы под прямой солнечный свет, то номинал резисторов следует уменьшить, вплоть до 200 ом, для более яркого свечения (спасибо кэп).

Кнопки

На отдельной плате с кнопками, предусмотрен «предохранитель» (он убережет нас от случайного выстрела в голову), в виде еще одной кнопки Bt6. Время можно редактировать, предварительно зажав ее.

Софт

Код написан в среде CodeVisionAvr.
Программа начинается с того, что мы настраиваем периферию микроконтроллера.
Конфигурируем порты (A,B,C – выход, D – вход)
На всякий случай предусмотрена пауза 300 мс, чтобы DS1307 успела «очухаться»
Инициализируем «квадратную шину»
Настраиваем микросхему RTC так, чтобы она выдавала прямоугольные импульсы каждую секунду на выводе SQW/OUT
Проверяем, нажата ли кнопка CLR. Если да, то сбрасываем все значения в 0
Разрешаем глобальные прерывания
Да, пару слов про них. Мы используем внешние прерывания INT0 на PD2 по спаду, т.е. каждую секунду программа будет уходить в обработчик прерываний, в котором мы считываем значения времени из DS1307 и выводим их на светодиодные индикаторы.
Уходим в бесконечный цикл, где опрашиваем кнопки
Если кнопка нажата, прибавляем (отнимаем) час (минуту) и посылаем новое значение по I2C
Попутно проверяем, вписываются ли новые значения времени в 24-х часовой и 60-ти минутный диапазоны.

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

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


Существует много вариаций этой технологии. На мой взгляд, вот этот самый лучший:
1. Выпиливаем нужного размера кусок текстолита.
2. Шкурим торцы, избавляясь от вредных заусенцев.
3. Смазываем будущую плату чистящим порошком или зубной пастой и жесткой стороной губки драим ее до блеска.
4. Окунаем наш кусок на пару десятков секунд в слабый раствор теплого хлорного железа, до появления равномерной, матовой, бардово-коричневой поверхности. При вытаскивании из раствора, жидкость должна полностью смачивать поверхность.
5. Смываем каку, аккуратно сушим, не прикасаясь к поверхности пальцами, или чем другим жирным. Сразу кладем на чистую бумагу медью вниз, чтобы избежать попадания пыли или волос.
6. Распечатываем отзеркаленный рисунок на тонкой(!) глянцевой бумаге, можно вырезать из журнала, например. Не прикасаемся к рисунку руками. Аккуратно вырезаем, кладем рисунком вниз.
7. Прикладываем к подготовленному куску текстолита, проглаживаем через 1-2 слоя чистой бумаги, выставив утюг на максимальную температуру. Секунд 10 должно быть достаточно, ибо если передержать, дорожки расплющатся и затекут друг на друга. Тонер должен полностью прилипнуть к меди.
8. Отмачиваем под струей теплой воды, можно оставить в воде на 10 минут. Аккуратно отдираем, соскребаем бумагу. Мне в этом помогает старая зубная щетка. Удаляем оставшиеся кусочки бумаги иголкой. Тонер остается на текстолите.
9. Нагреваем на водяной бане крепкий раствор хлорного железа, бросаем туда нашу плату и бултыхаем в течении нескольких минут (по правилу Вант-Гоффа, при увеличении температуры на 10 градусов, скорость реакции увеличивается в 2 раза. Медь исчезает прямо на глазах. Можно и не греть, но ждать придется дольше.
10. Как только вся ненужная медь исчезла, выключаем газ, вытаскиваем (например пинцетом) плату, пытаемся отмыть плиту и пальцы от хлорного железа. Смываем его с платы проточной водой.
11. Берем ацетон (жидкость для снятия лака) и оттираем тонер. Можно попробовать соскрести его шкуркой или губкой.
12. Сверлим отверстия.
13. Лудим. В качестве флюса использую ЛТИ, и вам советую, однако после лужения и пайки этот флюс нужно обязательно смыть (тем же ацетоном, а лучше смесью спирто-бензин 1:1), т.к. ЛТИшка обладает некоторой проводимостью.
Все работы обязательно проводить в проветриваемом помещении, в процессе
выделяется много вредных паров.


Платы соединяются между собой PBS и PLD разъемов. Первые соединяются с верхней платой при помощи тонкого монтажного провода, его можно выковырять, например, из старого LPT кабеля или переходника.


Вторые припаиваются к нижней плате, причем штырьки, ведущие к клавиатуре загибаются (см. фото).

Печатные платы в формате SprintLayout5.0 прилагаются. На фотографиях есть пару косяков, но они уже исправлены в приложенных файлах.

Прошивка микроконтроллера

Для этого дела был собран программатор USBasp , который можно увидеть на фото сверху. Довольно приятная штука, прост в использовании и можно всегода носить его с собой в кармане(надеюсь, никто так делать не станет). Для прошивки mega32 придется установить джампер «Slow SCK».
Фьюзы:
Low fuse = 0xC4
High fuse = 0xD9
Наш микроконтроллер тактируется от внутреннего RC генератора с частотой 8 МГц. Пришлось отключить JTAG интерфейс на PortC, иначе некоторые светодиоды не будут светиться.
На плате предусмотрен ISP10 разъем, для быстрой прошивки/отладки.

Лицевая панель

Выполнена из алюминиевой пластины, шириной 40 мм и толщиной 1,5 мм. В ней просверлены 18 отверстий диаметром 5 мм, и 4 отверстия диаметром 3 мм для крепления стоек.


Сначала был распечатан шаблон и наклеен на пластину. Далее, были просверлены пилотные отверстия сверлом 1,5 мм, после чего уже сверлами нужных диаметров были просверлены основные отверстия.


В завершении, пластина была загнута, ошкурена мелкой шкуркой и отполирована пастой ГОИ.
Шаблон прилагается к приложенным файлам в виде файла layout5.0

Красный светодиод в левом верхнем углу

Повторяет импульсы, генерируемые DS1307 на 7-ой ноге, т.е. мигает каждую сегунду. Маленький p-канальный MOSFET транзистор работает в ключевом режиме, открываясь и закрываясь в такт импульсам. Сначала я хотел сделать фоновую подсветку (как Ambilight), для чего был слеплен КМОП инвертор на комплиментарной паре транзисторов(чтоб уж наверняка). Но мне не понравилось. Для одного светодиодика вполне достаточно одного транзистора, можно использовать даже pnp типа bc857. Я использовал бескорпусные mosfet irlml6402 или irlml6302.

Файлы

Исходники, hex-файл, печатные платы, схемы, схема в proteus и фьюзы заключены вот в эту картинку в виде архива. Я не доверяю файлохранилищам, своего сервера у меня пока нет, поэтому, на мой дилетантский взгляд, самым надежным местом для хранения будет Хабр. Пользователи windows могут добраться до файлов открыв сохраненную картинку с помощью WinRar.
Да, вот эта картинка.

Видео

Заключение

Источник питания можно использовать любой, способный выдать 5 вольт при токе в 70 мА. USB-порт вполне для этого подойдет. Главное, чтобы питание было «чистым», и не превышало 5 вольт. Питая часы от DC-DC преобразователя из на микросхеме mc34063 с уровнем помех ~50 мВ, я заметил глюки при установке времени. Сейчас устройство питается от свича, висящего рядом. Он выдает строго 5 вольт. По хорошему, нужно еще сделать защиту от дурака в виде диода, и какой-нибудь линейный стабилизатор на 3.3 - 5 вольт.
Отсутствие в часах функций будильника и отображения даты вполне обосновано: и то и другое присутствует в телефоне, а значит, пользоваться ими в бинарных часах с большой долей вероятности никто не будет (спасибо дядюшке Оккаму за этот вывод).

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

Двоично-десятичный режим

Расшифровка

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

Первый столбец показывает часы, второй, соответственно, минуты, ну и третий подскажет, сколько секунд утекло. Все столбики имеют одинаковую структуру.

Первый ряд огоньков в столбце, отражающем часы, показывает первую цифру, десятки, а второй, вторую цифру - единицы. Каждый ряд содержит в себе от двух до четырех огоньков, каждый из которых подразумевает степень двойки. Так самый нижний огонек представляет 2 в степени «0». Такое значение принимается за единицу.

Второй огонек представляет 2 в степени «1», что принимается за двойку.

Третий огонек символизирует 2 в степени «2», т.е. обозначает четыре. Ну и четвертый огонек отображает 2 в третьей степени, что расшифровывается как восемь (см. изображение).

Теперь, когда вы имеете представление о работе бинарных часов, попробуйте определить, сколько часов показывают бинарные часы на изображении. Вы видите, что в первом ряду столбца, отражающего часы, горит один огонек. Помним, что первый огонек отображает 2 в степени «0» и читается как единица. Далее во втором столбце не горит ни один огонек, соответственно, это читается как нуль. Исходя из полученных данных, можно сделать вывод, что часы на изображении показывают десять часов. Только помните, что часы отображают время в режиме суток, поэтому если вам неудобно, отнимайте двенадцать, когда часы показывают тринадцать и более часов. К примеру, если часы показывают пятнадцать, то вы можете смело считать, что это три часа.

Таким же способом попробуйте определить, сколько минут показывают бинарные часы на представленном изображении. Так в первом ряду столбца, отражающего минуты, вы видите, что горит два огонька. Вспоминая правила определения времени по бинарным часам, можно сделать вывод, что первый столбец отображает тройку. Во втором же ряду этого столбца видно, что горит три огонька. Помня о степенях двойки, сложим все показатели и получим цифру семь (см. изображение). Сопоставляя первую и вторую цифру, можно сделать вывод, что минутный столбец показывает значение 37. Вспомним о показателе часов и получим, что часы показывают время 10:37.

Расшифровка показатели секунд иногда представляется достаточно сложным, ведь секунды постоянно изменяют свои значения. Определять значение столбца с секундами вы научитесь тогда, когда определение показателей бинарных часов дойдет до автоматизма. Итак, на представленном изображении вы видите, что в первом ряду столбца, отражающего секундные значения, горит верхний третий огонек. Помня о степенях двойки, мы может сделать вывод, что этот огонек указывает на цифру 4. Во втором ряду этого же столбца горит четвертый огонек и первый, т.е. самый нижний. Следуя правилам определения времени по бинарным часам, можно сделать вывод, что верхний огонек означает цифру 8, а самый нижний, соответственно, единицу. Складываем обе цифры и получаем девятку.

Результат

Теперь сопоставим значение первого и второго ряда столба и получим значение 49. Таким образом, часы на изображении показывают время 10:37:49.

Подлинный бинарный (двоичный) режим.

Расшифровка показателей

Способ расшифровки бинарных часов, которые имеют всего два ряда совершенно такой же, как и при двоично-десятичном режиме. Однако есть один нюанс, теперь в каждом ряду имеется лишь одна строка. Огоньки в верхней колонке соответствуют принципу степеней двойки: 1, 2, 4, 8. А вот в нижней колонке вы можете заметить не четыре огонька, а шесть. Не стоит пугаться, ведь принцип и во второй колонке соблюден, просто добавлено несколько значений: 1, 2, 4, 8, 16, 32. Нет необходимости добавлять больше шести огоньков, ведь следующее значение будет 59, которое можно записать так, что будет гореть первый, второй, четвертый, пятый и шестой огоньки.

Определить часы

Теперь попробуйте определить, сколько часов показывают часы на изображении. Вы видите, что горят первый и второй огоньки. Зная о степенях двойки в бинарных часах, можно определить, что первый огонек означает цифру один, а второй, соответственно, двойку. Сложим оба показателя и получим цифру «3».

На представленном изображении часы имеют два ряда огоньков, однако вы должны помнить, что могут быть часы и со столбцами. Принцип определения времени по таким часам будет таким же, как и в этом случае. Главное помните о двоичной системе исчисления, которая подразумевает только две цифры для шифрования «0» и «1». Так показатели, которые вы только что определили, в двоичной системе будут выглядеть, как 0011, что также будет равно значению «3».

Определить минуты

Используя описанную технику, по часам на изображении можно видеть, что горят первый, четвертый и пятый огоньки. В двоичной системе это будет выглядеть, как 011001. Вспоминая о степенях двойки, можно сделать вывод, что первый огонек показывает «1», четвертый «8», а пятый, соответственно «16». Сложим все показатели и получим значение «25».

Определить секунды

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

Помните о практике и тренируйте свой мозг. Со временем вы научитесь быстро и с легкостью определять время по бинарным часам даже в том случае, если на первый взгляд вам показалось это очень сложным. Не зацикливайтесь на математике, помните лишь о значении и расположении каждого огонька. Для того чтобы быстро научиться определять время по бинарным часам, купите первые часы со столбцом, отображающем секунды. Значения в нем будут самыми большими, поэтому, научившись быстро определять секунды, показания минут и часов станут для вас очень простыми.

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

В 2008 году британская компания Anelace впервые выпустила бинарные наручные часы с LED экраном. Это событие нашло бурный отклик среди молодежи. Сегодня бинарные часы выпускают не только производители компьютерной техники, но и ювелирные фабрики.

Как выбрать

Существуют модели бинарных часов с разным количеством «циферблатов». На некоторых можно заменять диодную подсветку. Бинарные часы можно разделить на две большие категории: с подсветкой группы и ключевым горящим индикатором. В первом вам предстоит суммировать степени двоек, во втором - переводить двоичное число в десятичное. Первый способ предпочтительнее для людей, желающих привлечь внимание, второй - программистам и людям, желающим как можно скорее узнавать время. В целях простоты использования вы можете купить бинарные часы с подписанными диодами (1, 2, 4, 8 и т.д.).

Где купить

В интернет-магазинах имеется множество выгодных приложений по покупке бинарных часов. На специализированных сервисах торговли можно подобрать эксклюзивные модели из разных материалов. Торговый сервис eBay - это самая оживленная площадка электронной коммерции в мире. На сайте eBay, в разделе «Аксессуары» представлены тысячи вариантов бинарных часов. Для их оплаты потребуется электронная валюта PayPal.

Как пользоваться

Для использования бинарных часов в быту необходимо быстро переводить числа и складывать их друг с другом. Прочитайте инструкцию к своим часам, уточните, какой ряд диодов отвечает за часы, какой - за минуту. Если инструкции нет, попробуйте определить это экспериментально - показания минутной шкалы будут изменяться скорее, чем часовой. Общее время складывается из показаний часовой и минутной шкалы. Допустим, на часовой шкале горит первый и пятый диод, а на минутной - третий и четвертый. Это , что на часовой шкале отображается 2 в нулевой степени и 2 в четвертой, то есть 1 + 16 = 17 часов. Сумма минут: 2 в квадрате плюс 2 в кубе: 12 минут. Таким образом, бинарные часы показывают 17:12.

Достоинства бинарных часов

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

Они привлекают внимание, многие люди будут восторгаться вашими «арифметическими способностями». Кроме того, бинарные часы представляют дизайн, несут технологичный «стиль будущего». Настенные (настольные) бинарные часы способны стать частью вашего интерьера.