Журнал РАДИОЛОЦМАН, сентябрь 2011
В статье описывается проект на микроконтроллере 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 дополнительных светодиода, обозначающих минуты.
Принципиальная схема
Все примененные компоненты для поверхностного монтажа, за исключением разъемов и держателя батареи. Разъемы не обязательно оставлять на плате, они нужны лишь для программирования и обновления ПО микроконтроллера.
№
п/п |
Количество
|
Обозначение
в схеме |
Наименование
|
Номинал
|
Корпус
|
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
|
Также разработана вторая, усовершенствованная версия часов. Основные отличия от первой версии:
- питание осуществляется от 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 В, что в данной конструкции неприемлемо.
Загрузки
- Схема
- Программное обеспечение
(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