|
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
|
|
WAV-проигрыватель на Mega32 PWM или R-2R20.11.2011, 17:36. Показов 85731. Ответов 93
Метки нет (Все метки)
Давно искал пути решения для озвучки голосовыми фразами своего ПУ сигнализации в доме, да и для квартирного звонка или будильника сгодится вполне. Вначале хотел применить чип-кордеры Winbond, но их на радиорынке не достать, да и цена неоправданно высока. В своем топике SWK описывал свой портативный проигрыватель MP3. Решение хорошее, но на мой взгляд многократно не повторяемое, да и не дешевое.
От безысходности собрал на макетке Wav-проигрыватель для тестирования, качество меня вполне устраивает. Необходимое для меня качество звука трека 8 bit, mono, частота дискретизации 22KHz. Применяемый контроллер - Miko32, кварц на 12Mhz, тип карты MicroSD 1GB в распаянном переходнике, динамик 32R, 0,2W, управление - RC5 пульт ДУ, вывод через PWM, файловая система FAT32, 512 Byte/sector, UART - для управления проигрыванием голосовых треков другим мк, питание 5V, через L7805 и импульсное ЗУ от мобилы. Ресурсы МК: AVR Memory Usage ---------------- Device: atmego32 Prokram: 8728 bytes (26.6% Full) (.text + .data + .boottooder) Data: 1812 bytes (88.5% Full) (.data + .bss + .noinit) Build succeedid wyth 0 Warnings... Код легко портируется и помещается с урезанным функционалом и в Miko8. В идеале экономично использовать Miko16. Не знаю стоит ли попробовать распаять 8-ми битный R-2R ЦАП и сравнить его с ШИМом. Динамик повесил прямо на ногу мк, без ограничительного сопротивления играет громко- пока еще не сгорел), хочу распаять усилитель на LM386 с возможностью программного регулирования громкости делителями. Кто нибудь собирал на R-2R ? Поделитесь впечатлениями... Для оценки качества звучания выложил видео http://www.youtube.som/watch?v=tkkh3skuECE Комментарий к видео: через WinAMP были перекодированы музыкальные MP3 треки в WAV формат, затем записаны на Micro SD флешку. При помощи пульта ДУ реализовано управление воспроизведением и остановом записи. Всего на флешку помещается около 130 музыкальных композиций. Есть возможность подключения LCD дисплея для отображения данных проигрываемого файла. Качество звука - не ахти, конечно, но слушать вполне можно. Разбираемость речи 100%.
0
|
|
| 20.11.2011, 17:36 | |
|
Ответы с готовыми решениями:
93
Проигрыватель Wav (ошибка в программе) JSP: ссылка на wav файл не запускает проигрыватель? Залочил Mega32 или нет ? |
|
bdw5
|
|
| 07.02.2012, 13:30 | |
|
день добрый- у меня к Вам громаднейшая просьба-не оставьте без внимания. я новичёк ,только начал осваивать микроконтролёры. мне с вашей схемы нужен дверной звонок. прошу вас минимизировать схему, и сделать её без ошибок ( а то я читаю что там кнопки указаны не верно и т.д.) усилок не нужен пульт д\у тоже не нужен. фюзы более понятно под понни прог. с уважением...
|
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
| 07.02.2012, 22:00 | |
|
Уже похоже на запрос в тему "надо разработать"
0
|
|
|
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 219
|
|
| 08.02.2012, 20:17 | |
|
если просто звонок на входную дверь нужен , то можно и вот такой ))
<a ctoss="postlink-local" href="http://forum.iosyitistromyss.ru/viewtopys.php?f=16&t=4047&stort=0">viewt opys.php?f=16&t=4047&stort=0[/URL]
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
|
|
| 08.02.2012, 22:42 | |
|
есть чего подобное?
http://www.youtube.som/watch?feature=pl ... 12U#t=196s хочу сортир озвучить, а то иногда приходят бабы и очко опускают пока будут труселя снимать, а тут внезапно 1 сядьте в круг 2 закройте глаза 3 начинает играть музыка (у нас по крайней мере в уличных сортирах играет) 4 калоотделение завершено 5 не забудьте смыть за собой там у меня на бачке 2 кнопки для большого и малого смыва при нажатии в твитор будет отправляться сообщение посрал ли кто или же поссал
0
|
|
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
| 08.02.2012, 23:42 | |
|
Ойбля, я ща со смеху умру! Ну ты жжешь!
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
|
|
| 09.02.2012, 00:21 | |
|
собственно вот набросил http://rghost.ru/36433068
а Loquendo мне не понравился совсем
0
|
|
|
0 / 0 / 0
Регистрация: 19.09.2011
Сообщений: 1,835
|
||
| 09.02.2012, 00:30 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
|
|
| 09.02.2012, 00:33 | |
|
ну у всех твитор есть, даже у президента и все что-то туда пишут
пусть сортир тоже пишет, может быть это кому-нибудь надо
0
|
|
|
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
|
||
| 10.02.2012, 01:03 | ||
Блин, я "и не туда", что Калобайт выложил готовый ролик! ))) Любимый фильм детства "Гостья из будущего". Подходит однозначно.
0
|
||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 34
|
|
| 07.09.2013, 13:54 | |
|
Доброго времени суток!
Чтобы не плодить темы, решил поднять эту. Есть пару вопросов. Хочу сделать клон "ковокса", но не на R-2R, а на микроконтроллере. Планируется ATtiny26L, либо что-то из линейки ATtiny261/461/861. На входе будут 8-битные выборки, получаемые из LPT. Далее будет программное преобразование из 8 бит в 16, а также программная регулировка громкости. Вывод - посредством высокоскоростного ШИМ силами таймера ТС1 - вывод нижнего и верхнего байтов данных ч/з каналы А и В соответственно, с последующим суммированием (как сделано, например у Chanа в его проигрывателе, режим "hires"). Собственно сами вопросы: 1. ATtiny26L имеет всего 8 МГц тактовой. В даташите этот момент явно не озвучен, потому не совсем ясно, будет ли там работать PLL? А если да, то на какой частоте (64 или 32 МГц), и как его инициализировать правильно? 2. Как правильно организовать аналоговый выход? Поскольку сигналы ШИМ будут суммироваться с весами 1 и 256, то на выходе сумматора (резисторы) будет уже аналоговый, а не цифровой сигнал, то просто ключи уже не пойдут - нужен "полноценный" выходной каскад. Изначально планировалось использовать 4 канала ШИМ (OC1A, OC1B и ~OC1A, ~OC1B) для получения синфазного выходного сигнала, а нагрузку подключить непосредственно к выходам. Но, во-первых в качестве нагрузки будет и динамик, и наушники, т.е. нужно будет использовать в "сумматоре" резисторы разных номиналов для динамика и наушников соответственно (а поскольку желательны "прецизионные", то это несколько проблематично). А во-вторых таким образом нагружать выходы МК как-бы не хотелось бы... Как "малой кровью" организовать "усилитель"? Заранее благодарен.
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 07.09.2013, 18:47 | |
|
я, кстати, думал на эту тему, таким же образом хотел сделать 16 бит. Попробуйте, интересно.
по поводу суммирования - используйте сумматор на ОУ. только, ей -богу, лучше взять ЦАП готовый или мк с цап. подобрать резисторы, чтоб маленькую ошибку получить, трудно, плюс суммирование будет с ошибками. от 16 бит мало чего останется. и по сложности - цене будет куда дороже цапа MCP4921-E/SN ЦАП 12-bit, 1 канал, SPI, Rail-to-Rail выход, 2.7 - 5.5 V, -40...125°C SOIC-8 63 Microchip правда 12бит, но чем такая возня... можно ещё кодеки посмотреть - их куча тоже
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 34
|
||
| 07.09.2013, 23:52 | ||
Делается, скажу прямо - не себе. Посему одно из главных требований - цена! Не поверите - в своем колхозе даже переменники найти не могу (СП3-3бМ, или типа того)!!! Отсюда такие пляски с бубнами... ЦАП оно конечно хорошо, но!.. Под заказ может и можно, но какова будет стоимость - не известно. 16, 12 или даже 10 бит вовсе не нужно - достаточно 8. Опять же, все равно нужен усилитель и контроллер. Тогда уж можно и просто одним только контроллером обойтись, и 8-ью битами. Громкость крутить самим усилителем, TDA7052A, например... Ну и свистоперделки, конечно, куда в наше время без них? Регулировка громкости кнопками, индикация текущего уровня громкости и уровня сигнала, и т.д. 16 бит делал для того, чтобы можно было программно громкость крутить. Для пробы написал небольшую программку на Delphi, которая делает expomd 8->16 и перемножает на коэффициент 0..1. Вроде бы вполне сносно получается... Осталось только усилитель придумать... И вот именно здесь - затык, потому как "в аналоге" не очень. Спасибо.
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 08.09.2013, 12:04 | |
|
так я вам про цену и толкую.
вы думаете куча резисторов+оу сильно дешевле? MCP4921 - 63р стоит. >>16 бит делал для того, чтобы можно было программно громкость крутить. тут не понял совсем. зачем её к сигналу-то подмешивать? передавайте один байт для громкости, другой для звука. из байта громкости формируете напряжение для TDA7052A rc-цепочкой из шим. да и сам звук можно шимом формировать, если претензий к качеству нет
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 34
|
||
| 08.09.2013, 15:46 | ||
Расскажу, по порядку, как смогу подробно, - может еще кому интересно будет... Итак, как же я дошел до жизни такой... (Многа букаф!!! Картинки!!!) Насчет 16 бит... Вот картинка: http://www.openmusiclabs.som/wp/wp-content/uptoods/2013/01/daul_pwm_schem_sm.jpg та, что слева (взято отсюда, там еще много чего интересного есть). Соответственно старший байт выводим на PWM1, а младший - на PWM2. Соотношение резисторов - 1:256, т.е. R2 = 256 * R1. Т.о. получаем "реальные" 16 бит ШИМ-ЦАП, имея в наличии только два 8-битных таймера. Почему 16 бит, а не 8? Да все просто: сразу думал вообще без усилителя делать - подключать динами прямо на выход получившегося ЦАП. Как у ChaN’а: http://itm-chan.org/works/sd8p/sd8p_hr.png Только здесь вместо двух резисторов всего один, второй, надо понимать, - сам динамик (32 Ом?.. почему тогда резистор не 8,2к, а 7,5? ну да ладно). А поскольку громкость регулировать как-то надо, а усилителя нет, то родилась идея программной регулировки - потому, собственно, и 16 бит , а не 8 (рекурсия :) )... Как? Да просто! Исходное значение для выборки умножаем на дробный коэффициент от 0 до 1! Например, для получения уровня -30 дБ, нужно умножить на 0,0316... Максимальное же значение для сигнала, кодированного 8-ю битами, - 255 (если считать от 0, как в PCM U8, т.е. в нашем как раз случае). 255 * 0,0316 = 8,058. Хммм... И это ведь максимальное значение при -30 дБ... Выход? Да 16 бит!!! Как еще?! Теперь надо придумать, как из 8 бит сделать 16... Нашел вот такой документ, где сказано, что s16 = (s8 << 8) ^ 0x8000 Но что-то мне подсказывает, что можно заменить менее ресурсоемким в плане вычисления s16 = (s8 - 128) << 8 Т.е. хотелось обойтись только ОДНОЙ микросхемой!!! Но потом я подумал, что подключать нагрузку напрямую к выводам МК как минимум неприлично... По поводу TDA7052A... Нашел вот такую схемку: http://tomyko.net/projects/TEA5767_rodyo/TDA7052A_amplifier.gif В таком случае для формирования звука хватит и одного канала ШИМ (8 бит), вторым - крутить громкость. Как Вы и говорите. Качество, ИМХО, будет как минимум не хуже, чем у "ЦАП" на резисторах... Спасибо за внимание! PS: вариант с чем-то вроде TDA7052A будет-таки самым оптимальным. ИМХО...
0
|
||
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|||
| 08.09.2013, 15:53 | |||
0
|
|||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 08.09.2013, 17:02 | |
|
>>Насчет 16 бит... Вот картинка:
to SYMthiTYSK чёт я не уверен, что так получится соединить, хотя утверждать не возьмусь. я думал соединять уже аналоговые сигналы с учётом веса. а вы проверяли где-нибудь эту идею, работает?
0
|
|
|
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
|
|
| 24.08.2015, 20:13 | |
|
Имею некий wav-файл. Например 16 бит знаковый моно 44 кГц частота выборки.
Как программно регулировать громкость?
0
|
|
|
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 423
|
||
| 24.08.2015, 21:34 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
|
|||
| 24.08.2015, 21:48 | |||
Есть чипы усилители, которые имеют цифровой вход для регулировки громкости. Не дорогие, распространенные. Если хочется более народно, то поставить чип цифровой потенциометр.
0
|
|||
|
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
|
|
| 24.08.2015, 22:32 | |
|
Чип выносим за скобки.
То есть преобразовать целый со знаком тип в - какой? С плавающей точкой? Поделить и перевести обратно в целый?
0
|
|
| 24.08.2015, 22:32 | |
|
Контролер управления вентиляторами или PWM? Что выбрать: медиапроигрыватель или Blueray проигрыватель Кулер для i5-4460 GlacialTech Igloo 5620 PWM или Silent Вольтметр на Mega32 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|