|
Что это такое
Примерно 3 месяца назад узнал что есть
Ram Gas/Diesel Engine Sound.
Было решено сделать аналогичную, правда только по назначениию, т.к. о той схеме знаю только то,
что она умеет воспросизодить звук, ее характеристики и каким образом она это делает мне не известно.
С помощью этой схемы вы сможете к своей копии, полукопи или просто модели добавить желаемый звук.
Скорость имитируемого звука НЕ синхронизируется со скоростью модели (не изменяется с измененеим положения ручки газа).
А скорость воспроизведения зависит от настроек, которые хранятся в EEPROM микроконтроллера mega8.
Частота кварца 16.9344MHz. Сам звук дожен быть записан во внешнюю EEPROM (24cXXXX).
При выборе EEPROM столкнулся с тем, что фирма ATMEL выпускает их с максимальной частотой интерфейса I2C до 1MHz,
а Microchip как 1MHz, так и 400KHz. Поэтому если будете брать память от MIcroship буквы на маркировке мосле "24"
должны быть "FC". Т.е. память от Atmel должна быть с маркировкой 24CXXXX, а от Microship 24FCXXXX, где XXXX задают
объем памяти.
Для того чтобы было проще представить что получается в результате, вот фотографии макета:
P2220011.JPG
P2220012.JPG
Краткое описание схемы
Оранжевый провод 1- +9..+25В, зеленый - земля аккумулятора. Чем больше напряжение питания, тем громче будет воспроизводимый звук.
По документации усилителя (TDA2003) максимальное рабочее напряжение 28В, минимальное 8В.
Два белых - звуковой выход - подключаются к динамику. Рекомендуется брать динамик 4 Ома в импедансе, мощностью от 1
до 6 Ватт (в зависимости от желаемой громкости).
Микросхема TDA2003 может работать и с 8ми омными динамиками, только будет звук потише.
Этот макет весит 25граммов, но на нем припаяны SCS под микроконтроллер (DIP-28) и EEPROM (DIP-8) для удобства замены.
Так же для того чтобы подобрать оптимальные конденсаторы (в поисках меньшей массы) на плате установлены разъемы для
удобного перебора.
Три провода (недалеко от кварца) подключаются к каналу, с которого управляется схема: черный - земля, красный - питание
(нужен для проверки на столе), белый - серво.
Если питание на приемник подается от контроллера двигателя, то красный провод не нужен.
Подготовка звука
Чтобы ESS мог работать должным образом, в память нужно прошить файл приведенный
к пригодному виду для воспроизведения.
-
Для этого следует выполнить следующие шаги (Описан способ которым пользовался я на примере файла mig-15.wav):
Взять файл mig-15.wav из папки симулятора FMS у него по умолчанию параметры
22.050KHz, 16bit mono
Открыть через Total Recorder, в нем это наглядно

-
Сконвертировать в файл с частотой дискретизации 8KHz и 8bit mono (частотй можно выбрать и больше, от этого зависят настройки и качество звука), для этого
выбирать File->Save As, в появившемся окне нажмать кнопку Change, в появившемся окне выбирать как показано на
рисунке, далее нажмать ОК

Выбирать имя файла и сохранить mig-15_8k.wav
-
Удалить всю ненужную информацию (чанки, число каналов, частоту дискретезации, скорость считывания, и т.д. пока
не встретится слово data, после которого надо удалить еще 4 байта) в начале файла
Для удобства можно открыть полученный файл mig-15_8k.wav в HEX редакторе, в
поле ASCII найти слово "data"
(на картинке я его обвел зеленым). Последние 4 байта - длина звуковой части в 16-ти ричной форме.

Первй байт 04 - LSB (самый младший байт). Т.е. Длинна звуковой части в шестнадцатиричном виде: 00006F04
(максимальная длина зависит от выбранной
внешней памяти EEPROM, для 24с512 это будет FFFF).
Лучше ее запомнить, она пригодится при настройке.
Удалив данные, сохраняем файл с расширением .eep(для удобства) mig-15_8k.eep
Если забыли посмотреть длину звуковой части, то ее можно получить следующим образом:
открываем полученный файл в HEX редакторе и к смещение последнего байта прибавляем 1.
На картинкечисла над черной чертой написаны мной для наглядности. Числа обведенные красным составляют размер.

Или подругому, когда будете прошивать этот файл в память, посмотреть в программаторе.
-
Осталось прошить полученный звук во внешнюю EEPROM, выбранную на ваше усмотрение.
Это может быть память любого объема (в который вместится ваш звук), с интерфейсом I2C. Главное не запутаться в объеме памяти.
Т.е. если на микросхеме маркировка at24c512, это не значит что в ней 512 килобайт, это всего лишь 512 килобит = 64 килобайта,
следовательно максимальный размер звука который вы можете туда записать - 64 килобайта.
Рекомендую использовать память не меньше 16ти килобайт. Хотя все зависит от файла звука и желаемого результата.
Настройка ESS
Эти настройки прошиваются в EEPROM микроконтроллера, находятся в файле
engine_sound_m8.eep.

Первые два байта, обведенные красным - объем внешней памяти EEPROM, в которой хранится звук.
Первый байт - старший, второй младший (по умолчанию объем - 64кб).
Следующие два байта, обведенные синим - размер звука, для mig-15_8k.eep там должно быть 6f04 = 28.420кб.
Два байта, обведенные фиолетовым цветом - период воспроизведения одного дискрета
записанный в тактах микроконтроллера. Чтобы получить начальную частоту воспроизведения слудует разделить
16.9344MHz (частота микроконтроллера) на период 0644h.
0644h = 1604
169344000/1604 примерно 10563Гц
Эту частоту выставляйте в зависимости от желаемого звука при полете.
Файлы
Схема: EngineSound_v1_2_inet.sch
Печатная плата в формате PCAD 2002: EngineSound_v1.1_2_inet.pcb
Печатная плата в PDF: EssBottom.pdf
Расположение компонентов в PDF: EssArrange.pdf
Список элементов: EngineSound_v1.1_2_inet.bom
Прошивка микроконтроллера: engine_sound_m8.hex
Файл настроек(eeprom микроконтроллера): engine_sound_m8.eep
Первоначальный звук в wave: mig-15.wav
Звук в формате 8bit mono 8KHz: mig-15_8k.wav
Звук готовый для записи в EEPROM: mig-15_8k.eep
Все материалы данной статьи являются интеллектуальной собственностью автора, могут быть использованы только в некомерческих целях. Любое использование с целью получения материальной выгоды без согласования с автором запрещено.
|
|