DFPlayer + Арудино

Первое новое сообщение

Аватара пользователя 1.Василий » Пн окт 24, 2016 12:03 am

Коллеги, не дает мне покоя звук :)

Для тестов приобрел второй из двух доступных и главное маленьких mp3 модулей - DFPlayer mini (первым был wtv020-sd-16p, но тот совсем убогий).

Кто-нибудь с ним дело имел? Дело в том, что если пытаться управлять порядком воспроизведения файлов, то есть запустить трек, дождаться конца воспроизведения и запустить следующий, возникает маленькая пауза, которая все портит. Причем если заставить плеер играть файлы из папки все подряд, паузы этой нет. Так же как и у зацикленных треков.

Может быть кто-нибудь знает как от паузы избавиться?
Цитата
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!

2.shalex » Вт окт 25, 2016 12:05 pm

Хорошо бы на скетч посмотреть. Мельком посмотрел примеры с wtv020 - надо статус опрашивать постоянно, сам модуль не сообщает о своем состоянии, если правильно понял.
Цитата

Аватара пользователя 3.Василий » Вт окт 25, 2016 12:45 pm

Да пожалуйста :) Прицепил.

Только дело в том, что похоже плеер реально не умеет играть без пауз.
Я уже даже самый свежий китайский даташит на чип перевел :)

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

В принципе можно сократить время между концом трека и подачей команды на проигрывание следующего прицепившись на gpio ногу. На чипе есть такая, которая показывает идет воспроизведение или нет. Соответственно если завязать на эту ногу начало проигрывания можно исключить ровно половину обмена по последовательному порту (10 байт ответа). Но что-то мне подсказывает, что фига там пауза уберется окончательно.

В качестве плеера для озвучки станционных и прочих эффектов DFPlayer идеален, он сильно лучше использованного мной wtv020-sd-16p. Видит все карточки подряд, меньше проводов, так как используется всего 2, и протокол управления понятнее.

Для звукового декодера - не подходит из-за пауз... Все таки смотрю в сторону чипа vs1053b. Ну либо идти другим путем и использовать вывод звука прямо через ардуину с библой типа TMRpcm.
Вложения

dfplayerv2.ino
(5.56 КБ) 896 скачиваний

Цитата
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!

4.shalex » Вт окт 25, 2016 1:19 pm

Спасибо!

Судя по коду, сейчас режим синхронный. Если будете пробовать с ногой в качестве ОС, то напишите итог, пожалуйста?
Скорость обмена всего 9600, вдруг получится )))
Цитата

Аватара пользователя 5.Василий » Вт окт 25, 2016 2:33 pm

Спасибо!

Судя по коду, сейчас режим синхронный. Если будете пробовать с ногой в качестве ОС, то напишите итог, пожалуйста?
Скорость обмена всего 9600, вдруг получится )))
Там есть корявость в описаниях, почему-то перепутан флаг синхронный\асинхронный то есть если передаешь в функцию play 0 фидбек приходит после проигрывания файла, а если 1 то нет :) Вернее сразу возвращается статус.

На моем китайском модуле, потребная нога gpio не распаяна с чипа. А та что в описании означено как BUSY - не работает. Я конечно постараюсь выпаять модуль и попробовать с ногой, но быстро не обещаю. А то мне сейчас интересные запчасти приехали, цифровые потенциометры, для модификации РУ пульта. Скорее всего буду с ними возиться в ближайшее время.
Цитата
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!

Аватара пользователя 6.Василий » Сб окт 29, 2016 10:43 pm

Был не прав, нога BUSY на модуле работает. Как и ожидалось - пауза стала меньше в 2 раза. Но совсем не исчезла. Причем по замерам, приблизительным конечно, время тратится именно на передачу команды по последовательному интерфейсу. Если выдавать команду проигрывания, когда предыдущий трек еще не закончен, паузы нет.

В качестве костыля - можно посчитать время всех треков и хардкодом забить значения, для старта нового трека с небольшим упреждением. Работать будет, но некрасиво :)
Цитата
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!

7.shalex » Сб окт 29, 2016 11:09 pm

В качестве костыля - можно посчитать время всех треков и хардкодом забить значения, для старта нового трека с небольшим упреждением. Работать будет, но некрасиво :)
Класс! Может тогда другой костыль - постоянно опрашивать на предмет "сколько осталось" и вовремя засылать команду запуска другого трека?
Цитата

Аватара пользователя 8.Василий » Вс окт 30, 2016 10:49 am

А вот нету там команды "сколько осталось" :) Есть идея попробовать заслать неполную команду пока трек играется и последний байт по ноге. Может быть так получится еще сократить.
Цитата
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!

9.shalex » Вс окт 30, 2016 12:53 pm

А вот нету там команды "сколько осталось" :) Есть идея попробовать заслать неполную команду пока трек играется и последний байт по ноге. Может быть так получится еще сократить.
Отличная мысль - загнать команду заранее! Как еще один вариант костыля - в названии файла передавать длительность трека, но это уже борщ ))
Цитата

Аватара пользователя 10.Василий » Вс окт 30, 2016 12:58 pm

С предзасылом команды - не помогло. Пауза вроде как стала еще меньше, но не исчезла.

С названием не выйдет, эта шняга не умеет получать названия :(
Да я в принципе смирился.. Заказал пару vs1053b правда там писанины много, но все таки есть простор для творчества.

А этот плеер вполне пригоден для озвучки всяких эффектов.
Цитата
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
Поле сортировки

« Цифровое управление, Аналоговая автоматика и их элементы