Музыка на Arduino
| ||
Я написал программу "музыкальная шкатулка", которая включает более 80 простых мелодий. Эти мелодии (общий объём около 26 КБ) можно было бы записать в память Arduino, но я предпочёл использовать для мелодий I2C FLASH память Atmel AT24C512 (64 КБ). Это сделано следующим образом. Электронная схема включает Arduino Uno, 16*2 ЖК дисплей, 2 кнопки, баззер и 64 КБ FLASH. Описание схемы можно посмотреть в описании учебной платы. 1) Создаётся файл данных (архив), включающий в себя все мелодии и каталог мелодий. Это делается с помощью программы songarc.bas, написанной на FreeBasic. Программа songarc.exe последовательно читает файлы мелодий в формате заголовков .h и записывает их в архив songlib.dat Скомпилировать songarc.bas можно файлом mak.bat (но сначала нужно исправить в нём путь к компилятору fbc32.exe). Собственно создание архива songlib.dat идёт в помощью команды makarc.bat (Вы можете пропустить этот этап, воспользовавшись уже созданным файлом songlib.dat) 2) Собранная схема прошивается скетчем i2cmemerase.ino Это нужно для проверки работоспособности и очистки Atmel AT24C512 Запустите программу из Arduino IDE и включите монитор порта на 9600 Бод. Нажмите "1(Enter)" для проверки FLASH на чистоту, если FLASH не чистая, то требуется предварительно стереть её командой "2(Enter)". Внимание: операции проверки и стирания FLASH проходят относительно долго - порядка 10-20 секунд. 3) Теперь нужно загрузить в FLASH файл музыки songlib.dat Для этого потребуется скетч xmodemr.ino и программа из пакета Windows XP HyperTerminal (Работает и в более поздних версиях Windows, хотя её нет в дистрибутивах). Загрузите в Arduino скетч xmodemr.ino, выйдите из IDE и запустите hypertrm.exe (При этом Arduino должен быть подключён к компьютеру) На первый запрос HyperTerminal "Установить по умолчанию ...?" ответьте "Нет". Теперь следует создать и запустить Новое подключение с портом Arduino, скоростью 9600 Бод без управления потоком. Если всё сделано верно, то при подключении Arduino выдаёт на дисплей "C" раз в 3 секунды. Теперь отправьте файл songlib.dat по протоколу Xmodem (см рис), после успешной прошивки повесьте трубку.
4) Наконец, надо прошить в Arduino скетч melody_dkqbplay_arc.ino - музыкальная шкатулка готова ! Первая кнопка выбирает название мелодии, которое отображается на дисплее, вторая кнопка запускает и останавливает мелодию. Скетчи проекта Музыкальная шкатулка |