Обсуждаем контроллеры компании Atmel.
Ответить

Звук R2D2 для самодельного робота

Пн июн 04, 2018 18:55:21

Всем доброго дня! Сделал для ребенка робот. Код на писан на BASCOM Хотел добавить звук робота R2D2 из «Звездных войн», но никак не могу победить. Потому , что в музыке ни бе, ни ме :( К сожалению не разбираюсь в этих нотах, октавах и т.д. . Пробовал через ШИМ, ерунда получается. Думаю, что с помощью SOUND будет проще. Есть товарищи , которые разбираются в этой грамоте? Буду благодарен если направите на правильный путь ..а если накидаете код через SOUND, то будет вообще гуд :) ( для человека , который разбирается в этих нотах, октавах- не проблема).
Звук: https://yadi.sk/d/S-VyH5XJ3X5f46
Теперь по роботу: имеет два режим работы. Управляется с пульта и сам ездит по УЗ датчику. Режим работы выбирается с пульта.
Видео работы: https://yadi.sk/i/07He_rnM3X5d2G

ЗЫ:ссылки на Яндексдиск

Re: Звук R2D2 для самодельного робота

Пн июн 04, 2018 19:13:32

Обычно берут файл .mp3 и конвертируют в обычный .WAV файл (с помощью любого звукового редактора). Затем записывают .WAV файл на microSD (памяти в ардуино не хватит). А воспроизводят звук с помощью быстрой ШИМ на любом МК.

https://www.youtube.com/watch?v=GyFLJiEfeUo

Да, качество звука не оченб... музыку нормально не послушаешь)) А для всяких спец эффектов пойдёт))

https://www.youtube.com/watch?v=CDRRwNkzasQ

Вместо microSD можно и обычную, дешёвую шлешку...

https://www.youtube.com/watch?v=vWsUht7nizM

https://www.youtube.com/watch?v=HkgqKiw3UaI

...

и т.д.

Re: Звук R2D2 для самодельного робота

Пн июн 04, 2018 19:24:05

Обычно берут файл .mp3 и конвертируют в обычный .WAV файл (с помощью любого звукового редактора). Затем записывают .WAV файл на microSD (памяти в ардуино не хватит). А воспроизводят звук с помощью быстрой ШИМ на любом МК.

https://www.youtube.com/watch?v=GyFLJiEfeUo

Да, качество звука не оченб... музыку нормально не послушаешь)) А для всяких спец эффектов пойдёт))

https://www.youtube.com/watch?v=CDRRwNkzasQ

Вместо microSD можно и обычную, дешёвую шлешку...

https://www.youtube.com/watch?v=vWsUht7nizM

https://www.youtube.com/watch?v=HkgqKiw3UaI

...

и т.д.

Да, так можно. Но у меня на самом роботе в дежурном режиме стоит Мега328(Arduino Promini) с кодом всего 600 Байт. И получается , что почти 32Кб просто пропадает.. Посмотрел примеры , там некотрые товарищи с помощью SOUND танцора Диско играют :) И довольно неплохо звучит, да и код занимает не много места.
Через ШИМ пробовал, файл данных получается слишком большого размера

Re: Звук R2D2 для самодельного робота

Вт июн 05, 2018 07:51:01

И довольно неплохо звучит, да и код занимает не много места.
Через ШИМ пробовал, файл данных получается слишком большого размера

Тут дело не в ШИМ, ШИМ это просто метод вывода звука с контроллера (вариантов немного: либо ШИМ, либо ЦАП, причем для игрушек со звуком 99.9% используют именно ШИМ, т.к. это проще схемотехнически, и легко реализовать аппаратно на любом контроллере). Само чтение файла и вывод аудио конечно будет занимать очень мало места во флеше, но если это запись, то сам файл со звуком в любом случае будет относительно большой, 1 секунда 8-битного звука с частотой дискретизации хотябы 8кГц занимает 8кбайт. Mp3 займет меньше, но придется ставить аппаратный кодек.
Другое дело, если звук генерируется по какому-либо известному закону, тогда можно много эффектов вместить, но нужно придумывать хитрые формулы для расчета каждого семпла. Теоретически звуки R2D2 это комбинация разных свистов и писка, так что можно этот метод применить, но тут придется долго экспериментировать. Проще прицепить sd или микросхему флеш-памяти и там хранить хоть мегабайты звуков.
Оказывается есть даже описание как это было сделано: Звуки «Звездных войн»: история создания 5 легендарных звуков киносаги

Re: Звук R2D2 для самодельного робота

Вт июн 05, 2018 09:12:09

хай
Дико извиняюсь ,если не жалко 1.17 бакса - то купите это
https://www.ebay.com/itm/TF-card-U-disk ... SwtUNZ3dcD
Встроенный моно усилитель
и получайте спец эффекты какие хочете ...
Давно уже стоит у меня на входном звонке !

Re: Звук R2D2 для самодельного робота

Вт июн 05, 2018 15:48:05

почти 32Кб просто пропадает..

про SOUND танцора не знаю.. А на последнем видео я привёл пример программы-конвертора для AVR

https://www.youtube.com/watch?v=HkgqKiw3UaI

В ATmega8 (8Кб) спокойно влезла мелодия... Правда звучание никакое... только для простеньких игрушек...))

А вот тут подробнее - https://www.radiokot.ru/circuit/digital/game/51/

Я согласен с автором статьи. Цитата из статьи:

"Я лично считаю, что для получения высококачественной мелодии проще будет подключить SD карту и играть с нее любые WAV файлы с намного лучшим качеством, чем вообще возможно получить программным синтезом."

Да, и по моему тоже ... проще поставить отдельную флешку.. и закачать кучу нормальных мелодий... с хорошим качеством звучания... ))

К примеру Ваш файл https://yadi.sk/d/S-VyH5XJ3X5f46 mp3 (124кБайт) мой конвертер конвертировал в несжатый wav (980кБайт)... с сохранением качетва звука. Аудиопоток вырос (как и ожидалось) в 8 раз... с 64кбит/с до 512 кБит/c.
Впринципе обычная AVR и нормальная флешка (SPI) потянет такой поток)) Только может придётся немного разогнать AVR...

Re: Звук R2D2 для самодельного робота

Вт июн 05, 2018 18:07:17

Спасибо. Будем пробовать в этом направлении

Re: Звук R2D2 для самодельного робота

Вт июн 05, 2018 18:10:48

Удалил,не по теме

Re: Звук R2D2 для самодельного робота

Ср июн 06, 2018 03:51:10

для получения 44кГц дискретизации аврку придётся садить на кварц (примерно 11,3 МГц) при меньших частотах работает и от встроенного гены. имхо 32 кГц норм - и качество не страдает и кварц не нужен и справится даже тинька.

Re: Звук R2D2 для самодельного робота

Ср июн 06, 2018 08:27:21

Да мне особо качество не нужно. Так , для робота. Чтобы ездил и бормотал себе под нос...

Re: Звук R2D2 для самодельного робота

Ср июн 06, 2018 08:49:03

roman.com не (980кБайт) а гораздо меньше, при частоте дискретизации 16кГц 253кБайта, а при 8кГц - 127кБайт. Пример
Далее по приведенной ссылке https://www.radiokot.ru/circuit/digital/game/51/ требуется CVAVR версии 2.05.0, белее свежие компиляторы к сожалению не собирают данный пример.

Ramis12 можно использовать в качестве носителя флешку SPI Serial Flash Memory, к примеру Pm25LV020 (262кБайт).

Re: Звук R2D2 для самодельного робота

Чт июн 07, 2018 08:09:06

Использование микросхем флеш-памяти вместо sd-карт с одной стороны сильно упрощает и ускоряет программу, т.к. не нужно возиться с FAT и прочими заморочками карт, для доступа к информации достаточно подать код команды чтения и адрес с которого начинаются данные.
С другой стороны информацию на карту можно записать с компьютера, а вот на микросхему памяти записывать придется либо программатором, либо каким-то образом через тот же контроллер, подключенный например через преобразователь USB-UART с изобретением собственного протокола передачи данных и написанием соответствующей программы для ПК. Для первого варианта примеры в сети точно есть один из самых известных - влезает в 8-ногий контроллер.

Re: Звук R2D2 для самодельного робота

Чт июн 07, 2018 08:49:57

я вот этот проект повторял и под себя допиливал - рекомендую

Re: Звук R2D2 для самодельного робота

Чт июн 07, 2018 15:50:59

я вот этот проект повторял и под себя допиливал - рекомендую


Собрал сегодня этот проект на макетке(не хочется изобретать велосипед заново). Ничего не присходит :( Горит зеленый светодиод. И все -тишина

Re: Звук R2D2 для самодельного робота

Чт июн 07, 2018 17:49:15

Как- то от "нечего делать" решил попробовать сделать "говорёшку" - звук WAV пишется в ПЗУ, а потом воспроизводится за счёт того, что куча счётчиков перебирают адресные выводы ПЗУ, на выходе данных ПЗУ меняются данные, а WAV - файл это не что иное, как "амплитуда" сигнала.. При помощи "простейшего ЦАП- а" - матрицы R-2R "цифра" превращается в звук..
Изображение

561ИЕ11 применены только потому, что они у меня были, а, например, 155ИЕ5 или 561ИЕ10 - нет.. :facepalm:

Длительность записанного "звука" зависит от параметров записи- обязательно - 8 бит МОНО, а потом выбирается частота дискретизации- чем она меньше, тем длиннее записываемый фрагмент, и хуже качество звука.

Re: Звук R2D2 для самодельного робота

Пт июн 08, 2018 03:54:18

1) а без флешки мигает красным?
2) флешку очень желательно взять размером не более 2Гб, у них спи интерфес быть обязан, а на бОльших может быть другим.
3) фьюзы правильно стоят? (если частота низка - будет сплошной громкий писк ШИМа, я проверял)
4) при начале и конце воспроизведения наблюдается небольшой щелчок - это включается выключается ШИМ (как победить не знаю)
5) ну и на всякий случай скачай алгоритм билдер, скачай проект и хекс пересоздай (вдруг побился...) это не сложно - всего одну кнопку нажать.
6) схема повторена правильно? у меня сразу (с микросд, печатку я делал другую) заработала, потом придумывал как её заставить самовыключаться чтобы батарейки экономить, если надо свои наработки пришлю.
7) кнопки замыкаешь на минус?
просто уже и не знаю куда дальше копать... хоть сфоткай что получилось...

Re: Звук R2D2 для самодельного робота

Пт июн 08, 2018 08:24:54

1) а без флешки мигает красным?
2) флешку очень желательно взять размером не более 2Г<

Сегодня прбовал на 1Гб - тоже ничего.Сделал небольшой усилитель (думал малое усиление) , ничего не слышно. Усилок работает. Фото сделаю, Выложу.

Re: Звук R2D2 для самодельного робота

Пт июн 08, 2018 08:53:52

SOUND - это меандр с таймера в режиме CTC ?
Если играть не сэмпл, а "по нотам", то надо делать портаменто/глиссандо - у R2D2 частота писка перетекает плавно из одной в другую :)

Re: Звук R2D2 для самодельного робота

Пт июн 08, 2018 09:19:46

Сделал небольшой усилитель (думал малое усиление)
если будешь усиливать - сначала отфильтруй ШИМ несущую, иначе только усилок перегрузишь, а толку будет мало. но оно и без усиления звучит довольно громко - мне для дверного звонка хватает.
опиши поведение подробней.
вот, на всякий случай, моя печатка (для ЛУТа зелёный и желтый слои зеркалить):
Вложения
CD-mono-zvonok.rar
(11.58 KiB) Скачиваний: 302

Re: Звук R2D2 для самодельного робота

Пт июн 08, 2018 19:33:26

Сделал небольшой усилитель (думал малое усиление)
если будешь усиливать - сначала отфильтруй ШИМ несущую, иначе только усилок перегрузишь, а толку будет мало. но оно и без усиления звучит довольно громко - мне для дверного звонка хватает.
опиши поведение подробней.
вот, на всякий случай, моя печатка (для ЛУТа зелёный и желтый слои зеркалить):

Спасибо большое!. Только у вас исходник на Algorithm Builder, а я в ней не разбираюсь.Поэтому решил применить родной Basomavr :) .Оказывается в ней имеются готовые библиотеки для работы с флеш-картой. После небольших изменений кода устройство заработало сразу:
https://yadi.sk/i/EfWtyhZD3XUEn6
https://yadi.sk/i/4xcdfeD73XUFGs
Качество установил 8-бит моно 11025Гц.

Добавлено after 56 minutes 58 seconds:
SOUND - это меандр с таймера в режиме CTC ?
Если играть не сэмпл, а "по нотам", то надо делать портаменто/глиссандо - у R2D2 частота писка перетекает плавно из одной в другую :)


Да, использует таймер. Это самый простой способ генерирования звука в Bascom. Команда имеет вид: Sound Portpin, А, B -где:Portpin - ножка куда подключаем пищалку(динамик),А-число импульсов(длительность), В-длительность этих импульсов(частота). Играя всего двумя этими параметрами люди ,знающие муыкальную грамоту, пишут небольшие коды (без всяких флешек и т.д), которые вполне подходят для игрушек.

Добавлено after 1 hour 5 minutes 37 seconds:
АлександрЛ, ну это жестоко...бедному роботу придётся таскать на себе такую ношу :)
Ответить