В статье описывается
проект на микроконтроллере 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