Например TDA7294

РадиоКот > Лаборатория > Радиолюбительские технологии

И снова говорящие - поющие часы. Суперсрочно!

Автор: Y.Y., softinter@mail.ru
Опубликовано 07.08.2013.
Создано при помощи КотоРед.

Выдалось немного свободного времени – хочу поделиться деталями изготовления девайса. Может кому и пригодится.

 

Однажды проснулся – О! Скоро у папы день рождения! Что подарить?
Думал.  Решение: яркие ясные настольные часы, НО НЕ ТОЛЬКО:
При включении часы говорят поздравление: «Папа, поздравляю… Желаю..  Дарю устройство, которое зовут Федор, он  будет говорить тебе время и петь твои любимые песни…». 
При нажатии ЗЕЛЕНОЙ (под правой рукой) кнопки часы:
- опять же голосом сына говорят время (часы, минуты),
- затем тем же голосом  произносят приглашение типа «Папа, песня для тебя», или «Юрий Иванович, из твоих  любимых», или еще что-то из N вариантов (случайный выбор),
- и звучит песня, которая, наверное, понравится папе (файлы .mp3, отобранные на SD-карту сколько встанет,  СЛУЧАЙНЫЙ ВЫБОР!).
Конечно, КРАСНАЯ кнопка – СТОП.
И регулятор громкости.
Часы со своей батарейкой, кнопка корректировок показаний часов незаметно спрятана на задней стенке. При корректировке ЗЕЛЕНАЯ кнопка - "+", КРАСНАЯ - "-".
P.S. Почему именно ФЕДОР? Не знаю. Наверное, простой такой парень, веселый, надежный,  говорит, поет, и всего две понятные кнопки. Мечта чья-то…

РЕАЛИЗАЦИЯ: НУЖНО ОЧЕНЬ БЫСТРО!

Поэтому:  ARDUINO ATMega128;
+ MusicShield (за основу взята библиотека здесь) – быстро, надежно, понятно и огромный ресурс для использования звука. Встроенное гнездо для SD/MMC – есть, воспроизведение по имени файла – есть, обработка MP3 – есть, программная регулировка громкости – есть. В библиотеке уже заложено, что пока DSP декодирует и воспроизводит очередную порцию MP3, можно, например, опрашивать кнопки и менять показания часов;
+ 4х7-сегментный индикатор СС56-12SRWA. Большой, красивый, яркий и есть в продаже;
+ к индикатору  - драйвер MAX7219 (библиотека например здесь). Отправил символ из забыл. Легко программно регулируется яркость;
+ часы DS1302 (с батарейкой С1220) (библиотека например здесь). Была под рукой;
+ аудио-усилитель на TDA7052A, схема по даташиту;
+ пассивная компьютерная аудиоколонка (мелкий динамик как на фото макета – не для песен);
+ корпус G760А;
+ розеточный блок питания.
 
 Часы, LED драйвер  и аудиоусилитель предварительно разведены с помощью DipTrace (спасибо), но собраны на макетной плате. Схема платы и разводка PIN - в пакете внизу.
 

Подключение к связке Arduino+MusicShield

Вставленный MisicShield полностью перекрывает доступ к Arduino, производители в этой ситуации предлагают использовать дополнительный "переходной" шилд. Но нужно же срочно! Поэтому переключаем паяльную станцию на режим безсвинцовой пайки и смело паяемся к  нужным PINам MusicShield (а, следовательно, и Arduino).
И питание платы от него же. И проводники аккуратно закрепить.



В библиотеке MusicShield отключаем любые обращения к встроенным кнопкам управления и LED.
Аудио-переход от MusicShield в аудиочасть на плате – 3.5мм Jack и экранированный провод.

СОДЕРЖАНИЕ КАРТЫ: ОЗВУЧИВАНИЕ ВРЕМЕНИ, ПЕСНИ

Для записи голоса часов/минут использован этот бесплатный редактор: Power Sound Editor Free (большое спасибо, класс!).

Наговариваем сразу все часы в один файл ,затем нормализуем, убираем шумы, кому интересно – добавляем эффекты. Потом режем на отдельные файлы для каждого часа – 0h.wav, 1h.wav…23h.wav. Можно перевести и в MP3 (платной версией редактора либо другой утилитой).
P.S. Для удобства я между "часами" легко щелкал пальцами ("ноль часов щелк один час щелк ...") - получаются отличные маркеры на осцилограмме, резать гораздо легче.

Так же и с минутами – 0m.wav…59m.wav.
Это не так долго как кажется.

Из разных источников набираем песни .MP3, которые могут понравиться папе, переименовываем в вид 1s.MP3, 2s.MP3...
P.S.Для этого пишем маленькую программку, которая быстро копирует файлы с переименованием из указанных папок в конечную, сохраняя в отдельной таблице старые и соответствующие новые имена записанных файлов (на будущее). Такая программка в виде EXCEL-макроса – в пакете.

Формат карты – FAT16.
Все файлы -  в корневой каталог. Поздравление (при включении питания) - Intro.WAV, ?a.WAV – приглашения, ??h.WAV – часы, ??m.WAV – минуты, ???s.MP3 – песни.

SOFT

Логика программы очевидна. Практически все есть в указанных библиотеках либо на просторах. 

P.S. В библиотеке для MisicShield исключил операции с play-листами, в библиотеке MAXxxx, пока разбирался, в знакогенераторе добавил кириллические символы, позволяющие бегущей строкой отображать на 7-сегментном индикаторе, например, «ПАПЕ УРА!». На будущее.

Текст программы писался быстро, не содержит нестандартных решений и поэтому не является ярким образцом для повторения.

И ВОТ ПОДАРОК ПАПЕ К ДНЮ РОЖДЕНИЯ 12 АПРЕЛЯ!!!

 

 


P.S. Когда FEDOR стоял в тестовом режиме, однажды ночью отключили-включили электричество, и он начал “Папа, поздравляю тебя…”.  В последней версии поздравление включается только с 10:00 до 20:00.
Устройство было подарено вовремя и эксплуатируется достаточно интенсивно. Были проблемы с нестабильностью работы с китайской карточкой  - решилось заменой. Имеет место замечание по работе генератора псевдослучайных чисел - некоторые композиции звучат чаще других. Будет исправлено в следующей версии.
 
Обсуждение, как всегда, в форуме, вопросы можно в личку.

С уважением,

Y.Y.
 

Файлы:
Схема платы и соединений, разводка PIN, Excel-таблица с макросом.


Все вопросы в Форум.


ID: 1596

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

47 10 3