Говорящие LED-часы — часть 1: Начало

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

Вот такие, только с синими кнопками и зелеными надписями:

Рис. 1. Говорящие часы KS-9825

Но, ни что не вечно под луной, и, собственно, первым сломался китайский динамик, следовательно, часы лишились своей главной фишки. Немного погоревав по этому поводу, мной было принято решение вкорячить внешний динамик от разобранного ранее радиоприемника, тем самым частично восстановить изначальный функционал. В успех данной затеи верилось мне с трудом, ибо как такие маленькие часы потянут такой огромный динамик. Однако, в ходе выполнения работы выяснилось, что часы с новым громкоговорителем орали так, что их было слышно на улице, плюс басов поприбавилось, чему я был очень рад.

Что с ними произошло потом я уже не помню, но вот примерно летом 2015-го нашел я их в одном из своих хламушников, уже без внешнего динамика и сомнительно работоспособном состоянии. И пришла мне в голову мысль попробовать сделать свои говорящие часы, только на LED-индикаторах и работающие от розетки, короче, изобрести свой велосипед в этой области.

Итак, начнем с блок-схемы. Часы построены на микроконтроллере ATMega16, так как на тот момент хорошо владел только AVR-ками, плюс ног много, хватит на все.

Озвучивание текущего времени производится следующим образом. К примеру, текущее время 13:35, и я ожидаю услышать что-то вроде «Тринадцать часов тридцать пять минут», а если 21:31, то «Двадцать один час тридцать одна минута». То есть, имея нужное количество заготовленных ранее отрывков типа «тринадцать», «двадцать», «один», «одна», «часов», «час», и так далее, включая их в нужной последовательности, можно получить любое необходимое значение времени в звуковом виде. Осталось только определить эти звуковые фрагменты, или семплы, которые нам нужны и записать их хоть своим голосом с помощью микрофона (фее, слушать каждый час, как звучит свой голос), или с помощью какого-либо речевого синтезатора. Но об этом потом.

Ясно, что хранить семплы в памяти AVR-ки не получится, так как мало места. Поэтому нам нужна внешняя микросхема памяти для этих целей.

Цифровой звук надо как-то преобразовывать в аналоговый сигнал, понятный уху человека, и в качестве цифро-аналогового преобразователя выбрал самое простое решение, а именно R-2R делитель, который будет висеть на каком-нибудь порту AVR-ки. Почему R-2R а не ШИМ? Предполагал, что качество звучания будет получше, но теперь у меня есть сомнения на этот счет.

В качестве цифровых индикаторов выступают семисегментные LED-индикаторы. В загашнике нашлись 2 строенных индикатора, и, так как трех цифр мало для отображения времени, решил использовать оба, то есть будет диспло на 6 цифр. Формат вывода времени будет что-то типа «13-35», так как двоеточия нет у этих индикаторов. Правда потом подглядел у китайцев, как они выкручиваются из положения, но мне не очень понравилось как выглядит данное решение с моими индикаторами:

Рис. 2. Семисегментные индикаторы

Ну и кнопки, схемотехнически заложил 5 штук, на деле оказалось достаточно 4-ре. И выносной термодатчик еще, чтоб температуру на улице показывали.

Функции счета времени выполняет сам микроконтроллер, так как хотел разобраться с подключением часового кварца к AVR-ки.

Блок-схема принимает следующий вид:

Рис. 3. Блок-схема самодельных говорящих часов

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

Продолжение

Метки: , , , . Закладка Постоянная ссылка.

Добавить комментарий