В статье описывается 
проект на микроконтроллере Atmel AVR, представляющий собой компактную 
отладочную плату и, по совместительству, необычные часы на светодиодах, 
получивший название Makerbot. Это Arduino проект, и микроконтроллер 
имеет собственный загрузчик, который работает по UART интерфейсу. Сам 
загрузчик программируется с помощью программатора в среде Arduino. 
 Спецификация:  устройство выполнено на микроконтроллере ATmega328; 
кварцевый резонатор 16 МГц; 3 кнопки для управления (пользовательские 
кнопки); динамик (буззер); 6-контактный разъем для обновления ПО с 
помощью Arduino; 6-контактный разъем внутрисхемного программирования; 
4-контактный разъем для расширения возможностей (подключение 
дополнительных датчиков).  Устройство выполнено на двухсторонней 
печатной плате в форме окружности с диаметром около 50 мм. Питание 
осуществляется от батареи, напряжение питания 3.3 В. Схема и печатная 
плата разработаны в среде проектирования Eagle, файлы проекта доступны 
для скачивания в разделе загрузок. 
 Для отображения текущего времени используются светодиоды:  12 
светодиодов для индикации часов; 12 светодиодов, каждый из которых 
соответствует 5 минутам; 4 дополнительных светодиода индикации минут, 
каждый из которых соответствует 1 минуте (т.е. для индикации 4 
дополнительных минут).  К примеру, если текущее время 12:04, будет 
светиться светодиод, обозначающий часы – в 12 позиции, светодиод, 
обозначающий минуты – в 12 позиции, и будут светиться 4 дополнительных 
светодиода, обозначающих минуты. Принципиальная схема 
Кликните для увеличения Все примененные компоненты для поверхностного монтажа, за исключением разъемов и держателя батареи. Разъемы не обязательно оставлять на плате, они нужны лишь для программирования и обновления ПО микроконтроллера.  
  Также разработана вторая, усовершенствованная версия часов. Основные 
отличия от первой версии:  питание осуществляется от Li-Polymer 
аккумулятора емкостью 110 мА•ч; встроенная схема заряда аккумулятора; 
порт microUSB для питания часов и заряда аккумулятора; количество кнопок
 сокращено до 2; микроконтроллер тактируется от кварцевого резонатора 8 
МГц; отсчет времени ведется специализированной микросхемой DS1337, 
которая подключена к микроконтроллеру по шине I2C.  Схема зарядки 
аккумулятора в данном варианте конструкции часов выполнена на микросхеме
 MCP73831 производства компании Microchip, которая предназначена для 
зарядки одной ячейки Li-Po или Li-Ion аккумулятора. В MCP73831 
реализована возможность задания тока предзаряда, встроены контроль и 
защита по температуре. Указанные возможности позволяют применить это 
семейство в сложных комплексных разработках, в т.ч. со встроенными 
аккумуляторами, например, карманные приборы, сложные USB изделия, 
медицинская техника. Вид печатной платы, второй вариант:  Вид печатной платы в 3D:   
 При конструировании данных часов потребуется редактирование текстового 
файла в среде Arduino. В данном текстовом файле прописаны основные 
конфигурации платформ Arduino: протокол программирования, размер 
Flash-памяти микроконтроллера (в соответствии с платформой Arduino), 
конфигурация загрузчика, Fuse- и Lock-биты, тактовая частота и пр. 
Редактирование потребуется, в связи с тем, что микроконтроллер 
тактируется от кварцевого резонатора и питание осуществляется от батареи
 3 В, а уровень Brown-Out детектора установлен на 2.8 В, что в данной 
конструкции неприемлемо. Загрузки  Схема   Принципиальная схема первого 
варианта (pdf) – скачать Печатная плата (Eagle) - скачать Второй вариант
 конструкции (с DS1337) в формате Eagle - скачать 
Программное обеспечение
(Header-файл с определением класса MakerBotWatch, исходный код класса MakerBotWatch, тестовый проект простых часов с использованием класса MakerBotWatch, модифицированный Header-файл с определением класса MakerBotWatch (версия 1.1), модифицированный исходный код класса MakerBotWatch (версия 1.1), тестовый проект усовершенствованных часов с использованием класса MakerBotWatch, примеры) – скачать
Дополнительные ресурсы: Программная библиотека дата/время - http://www.arduino.cc/playground/Code/DateTime Организация часов на базе Arduino - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?action=print;num=1200661518 На английском языке: MakerBot Watch - portable Arduino environment
	
Кликните для увеличения Все примененные компоненты для поверхностного монтажа, за исключением разъемов и держателя батареи. Разъемы не обязательно оставлять на плате, они нужны лишь для программирования и обновления ПО микроконтроллера.
| № п/п | Количество | Обозначение в схеме | Наименование | Номинал | Корпус | 
| 1 | 3 | S1, S2, S3 | Кнопки | SMT | |
| 2 | 4 | R1, R9, R10, R11 | Резисторы | 10 кОм | SMT 0805 | 
| 3 | 12 | LED13-24 | Зеленые светодиоды | SMT 1206 | |
| 4 | 12 | LED1-12 | Красные светодиоды | SMT 1206 | |
| 5 | 4 | LED25-28 | Желтые светодиоды | SMT 1206 | |
| 6 | 6 | R2, R3, R4, R5, R6, R7 | Резисторы | 75 Ом | SMT 0805 | 
| 7 | 1 | Crystal | Кварцевый резонатор | 16 МГц | SMT | 
| 8 | 2 | C1, C2 | Конденсаторы | 15 пФ | SMT 1206 | 
| 9 | 1 | C5 | Конденсатор | 1 мкФ | SMT 1206 | 
| 10 | 1 | C3 | Конденсатор | 10 мкФ | SMT 1206 | 
| 11 | 2 | C4, C6 | Конденсаторы | 100 нФ | SMT 1206 | 
| 12 | 1 | SG1 | Буззер | SMT | |
| 13 | 1 | IC1 | Микроконтроллер | ATmega328P-AU-ND | TQFP | 
| 14 | 0 | ICSP | Коннектор внутрисхемного программирования | DNS | |
| 15 | 0 | BK-OUT | Коннектор расширения | DNS | |
| 16 | 0 | TTL | Коннектор для обновления ПО с использованием загрузчика | ||
| 17 | 0 | R8 | Резистор | 1 МОм | DNS | 
| 18 | 0 | Держатель батареи типа CR2032 | 
Программное обеспечение
(Header-файл с определением класса MakerBotWatch, исходный код класса MakerBotWatch, тестовый проект простых часов с использованием класса MakerBotWatch, модифицированный Header-файл с определением класса MakerBotWatch (версия 1.1), модифицированный исходный код класса MakerBotWatch (версия 1.1), тестовый проект усовершенствованных часов с использованием класса MakerBotWatch, примеры) – скачать
Дополнительные ресурсы: Программная библиотека дата/время - http://www.arduino.cc/playground/Code/DateTime Организация часов на базе Arduino - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?action=print;num=1200661518 На английском языке: MakerBot Watch - portable Arduino environment
По материалам сайта www.rlocman.ru





