Нетривиальный будильник

Завязка: Дело было… на информатике, делать было нечего…

Сидели мы с другом на паре и обсуждали микроконтроллерные будильники. В один момент мой друг заметил: «А я ведь и не проснусь со звука обычного баззера… Вот был бы он погромче...» И тут нам в голову пришла извращенская идея: а что если МК прицепить к плееру, и он будет по утрам включать нужную песню? Я взялся за это только из спортивного интереса, посмотреть, что получится.
]Развитие действия: Разработка девайса.

Я решил особо не мудрить с железом. Для коммутации кнопок плеера(точнее, в моем случае, хватило 1 кнопки), я решил использовать транзисторные ключи. После пары замеров тестером я подпаял 2 проводка к кнопке «on/off/play», засверлил 2 отверстия на корпусе и вывел эти 2 провода сзади.
В качестве ядра системы я взял ATtiny2313, потому что в ней не слишком много лишнего, и прерывания на каждой ноге => удобно разводить плату.
На плате расположились:
  • Счетверенный 7-сегментный индикатор с общим катодом;
  • 3 микрокнопки;
  • 2 транзистора 2N5088, пакет которых у меня имелся в закромах;
  • Отсек под «таблетку» CR2032;
  • 10-пиновый разъем для прошивки под USBAsp (неиспользуемые пины удалены);
  • 6-пиновый разъем для связи с плеером(на него также выведена пара питания).
  • Ну и собсно тинька и сдвигач 74HC595 в SOIC-корпусах для экономии места.

Предусмотрено 3 режима работы, которые переключаются средней кнопкой(см. плату ниже).
№0 — режим сна(standby sleep mode). Часы тикают, МК спит))
№1 — Отображение и перевод текущего времени.(Верхняя кнопка +1 час, нижняя кн. +1 минута)
№2 — отображение и перевод времени будильника. В этом режиме точка горит в старшем разряде(т.е. если будильник стоит на 08:30, то на индикаторе будет 0.830), это сделано чтобы не путать режимы. Забыл сказать: при каждом изменении будильника цифры закидываются в EEPROM, а при каждой перезагрузке оттуда читаются.
№3 — отображение и перевод дня недели. На экране будет буква d, пробел, цифра от 1 до 7, где 1=понедельник, 7=воскресенье.
Верхняя кнопка в этом режиме увеличивает день, нижняя уменьшает, сброс автоматический.

МК затактирован от кварца на 1 МГц, для счета времени поднят таймер1 с делением тактовой на 64.
Транзисторы для коммутации кнопок висят на PB0 и PB1. Коммутировать можно только 2 кнопки, но большинству этого хватит за глаза. Управление проще простого: подняли, потупили, опустили. Только для каждого плеера, с которым будет использоваться будильник, придется писать отдельно эту процедуру. УПДАТЕ: у меня для задержки в 1 сек приходится ставить _delay_ms(5000) на меге16(залил на нее потестить), хотя при тестировании в протеусе на тиньке _delay_ms(1000) дает задержку в 1 сек.

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

Здесь транзистор подпаян для проверки моих гипотез.

Прошивка на Си в AVR Studio 5 (v1.1)
Добавлена проверка дней недели, в субботу-воскресенье спим спокойно.
Плата в Sprint Layout 5
Схема для симуляции в PROTEUS 7.7 SP2
В схеме кнопки плеера заменены на светодиоды для показательности.
На плате на каждом резисторе подписана его маркировка.
ВИДЕО:
http://www.youtube.com/watch?v=13kFh6UtAhI
  • 0
  • 23 апреля 2011, 12:15
  • enq

Комментарии (6)

RSS свернуть / развернуть
Тег не работает.
0
  • avatar
  • enq
  • 23 апреля 2011, 12:19
а все разобрался
0
  • avatar
  • enq
  • 23 апреля 2011, 12:21
Интересная конструкция…
только я бы управлял сразу музыкальным центром или радиоприемником, а не мелким плеером :)

Семисегментник и CR2032 как-то не сочетаются :)
Или питание будет браться от плеера?
0
Предполагается, что МК львиную долю времени будет находиться в стэндбае, а сегментники будут работать редко, в основном в моменты перевода. Mожет потом (или при ближайшем апдейте) запилю на плату LM7805.
0
сначала хотел питаать от плеера, потом передумал, потому что плеер же днем можно и с собой носить, а часы должны тикать
0
Я в далёкие 90е решал проблему проще.
У нас тогда не было не МП3 ни микроконтроллеров, но было желание проснуться вовремя поле очередной партии в настолку или пьянки.

И так решение было таким:
Усилок на 90Ватт, у ниму подключен CD плеер (размером так с современный системник) у плеера есть ИК пульт
На пульте есть кнопка Play. К пульту добавили разъём для подключения к этой кнопке внешнего устройства.
В качестве внешнего устройства использовали китайский будильник (были такие в виде пейджера) подпояв разём вместо пищалки.

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