Есть мно­жес­тво спо­собов опре­делять вре­мя: по сол­нцу, по часам на компь­юте­ре, по запаху обе­да у соседей. Но пожалуй, самый хакер­ский — это бинар­ные часы. Вмес­то обыч­ного цифер­бла­та у них дво­ичный. Циф­ры зашиф­рованы с помощью двух эле­мен­тов — нуля и еди­ницы, а для инди­кации мож­но исполь­зовать любой бинар­ный приз­нак. В этой статье я покажу, как самос­тоятель­но сде­лать бинар­ные часы, которые будут сто­ять у тебя на сто­ле и управлять­ся по Bluetooth.

По спо­собу инди­кации вре­мени бинар­ные часы раз­деля­ют на три груп­пы.

Пер­вая — с дву­мя рядами диодов: часы и минуты.

Часы с двумя рядами светодиодов
Ча­сы с дву­мя рядами све­тоди­одов

Вто­рая — с тре­мя рядами диодов: часы, минуты, секун­ды.

Часы с тремя рядами светодиодов
Ча­сы с тре­мя рядами све­тоди­одов

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

Часы с круговым расположением светодиодов
Ча­сы с кру­говым рас­положе­нием све­тоди­одов

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

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

В цен­тре цифер­бла­та в ряд рас­положе­ны еще четыре лам­почки. С их помощью мож­но опре­делить еди­ницы минут от одной до четырех. Для это­го нуж­но добавить зна­чение пятими­нут­ного интерва­ла к зна­чению горяще­го диода в ряду.

Ча­сы с тре­мя рядами све­тоди­одных огней — это ряды из две­над­цати, пяти и девяти диодов, над которы­ми рас­положен ряд чисел от одно­го до две­над­цати.

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

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

Пер­вый диод равен еди­нице, вто­рой — двум, тре­тий — четырем, а чет­вертый — вось­ми. Во вто­рой стро­ке по такому же прин­ципу рас­положе­ны чис­ла 1, 2, 4, 8, 16 и 32.

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

Под­робнее о бинар­ных часах я писал в статье «Ча­сы для гика. Под­бира­ем ком­понен­ты и мас­терим бинар­ные часы». В ком­мента­риях меня спра­шива­ли, будет ли внед­рение Bluetooth сле­дующим шагом в доработ­ке таких часов. Почему бы и нет! Отличная задача для наших очу­мелых ручек.

 

Сборка начинки

Для сбор­ки устрой­ства я исполь­зовал:

  • мо­дуль Bluetooth HC-05;
  • Arduino Pro mini;
  • мо­дуль RTC DS32431;
  • маг­нитный кабель заряд­ки для смар­тфо­на;
  • ад­ресную све­тоди­одную лен­ту RGB WS2812 — 144 све­тоди­ода на метр;
  • нес­коль­ко резис­торов и соеди­нитель­ных про­водов.

Со­бирать все буду навес­ным мон­тажом без исполь­зования общей печат­ной пла­ты, что­бы сэконо­мить вре­мя и день­ги. Как ты уже мог догадать­ся, кор­пус будет пол­ностью напеча­тан на 3D-прин­тере.

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

Принципиальная электрическая схема бинарных часов
Прин­ципи­аль­ная элек­три­чес­кая схе­ма бинар­ных часов

И прой­дем­ся по ее ком­понен­там:

  • мик­рокон­трол­лер — Arduino Pro mini, обоз­начен крас­ным цве­том;
  • U2 — модуль Bluetooth;
  • U1 — модуль RTC DS3231;
  • BT1 — батарей­ка для питания RTC-модуля во вре­мя, ког­да отклю­чено основное питание (для сох­ранения и под­сче­та текуще­го вре­мени);
  • с U3 по U38 — адресная све­тоди­одная RGB-лен­та WS2812;
  • R1, R2, R3 — резис­торы;
  • C1 — кон­денса­тор;
  • +5V — шина с питани­ем схе­мы;
  • GND — зем­ля.

Пе­ред тем как запа­ять модуль Bluetooth в нашу схе­му, необ­ходимо про­верить его на работос­пособ­ность. По желанию мож­но изме­нить его имя: для это­го нам понадо­бят­ся нес­коль­ко AT-команд. Что­бы про­верить связь с Bluetooth, отправь тес­товую коман­ду AT: для это­го вве­ди текст AT и наж­ми Enter. Если связь уста­нов­лена кор­рек­тно, то модуль отве­тит OK.

Пос­ле это­го мож­но отправ­лять осталь­ные AT-коман­ды. Нас­тра­ивают модуль в режиме прог­рамми­рова­ния, отправ­ляя AT-коман­ды по пос­ледова­тель­ному пор­ту.

Под­клю­чим модуль HC-05 к пла­те Arduino по схе­ме ниже — кон­такт RX под­клю­чаем к десято­му пину на Arduino, соот­ветс­твен­но, TX под­клю­чаем на один­надца­тый кон­такт Arduino. На кон­такт KEY модуля подадим 3,3 В. AT-коман­ды будем отправ­лять из монито­ра пос­ледова­тель­ного пор­та Arduino IDE.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии