Помогите разобраться с UART DFPlayer Mini 2.0

Тема в разделе "Arduino & Shields", создана пользователем Unruly, 27 ноя 2014.

  1. Unruly

    Unruly Нерд

    Всем привет.
    Купил себе модуль DFR0299 http://amperka.ru/product/df-player-mp3-module , сам он как чисто плеер с кнопочным управлением работает на ура. Но я желал от него немного большего.
    В описании на страничке говориться о том что он может с легкостью управляться через стандартный com порт с выходов на плате UNO.
    Вот схема с амперки
    [​IMG]

    Так же представлена ссылка на Библиотеку 2.0 https://github.com/DFRobot/DFPlayer-Mini-mp3 в которой находятся примеры скетча.

    Скачал я значит библиотеку, подгрузил ее в ардуино, схватил первый попавшийся скетч пример с оф`сайта http://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299 и залил ее в UNO.

    На флешке до этого уже лежали 4 файла которые хорошо воспроизводились на этом плеере с кнопочным управлением. Раскидав все на мокетке как показано выше я запустил стандартный скетч.... И как вы думаете что? Да ничего, самое интересное что ничего не произошло TX и RX на моей UNO даже не попытались мигнуть.
    Не залил скетч - подумал Я. Отцепил UART, залил скетч и о чудо TX стал мигать с интервалом в 6 сек.
    Накидываю провода на TX-RX и? Сижу значит и жду, и снова ничего. Ну попил я значит чаю, закурил сигаретку и тут о чудо, я слышу первый трек на этом плеере.
    Но радоваться долго не пришлось.
    Плеер живет своей жизнью и неоднозначно реагирует на посылаемые команды. В общем стабильной работы я от него не добился.
    Так же хочу отметить что скетч на mySerial 10,11 (SoftwareSerial) не всегда работает правильно, (я бы даже сказал что он не работает) и еще каждый раз при отсоединении UNO от компа, serial не запускается автоматически ибо нет сигнала.

    Буду благодарен если кто то поможет разобраться с этой железкой. ведь на видео от той же амерки он работает.
    Что я делаю не так?
    И что нужно делать?

     
  2. Unruly

    Unruly Нерд

    Странно.... блог есть, пример наглядно показан, платку продаем а помочь то и некому(((

    ну хоть пример скетча прикрепите или покажите в каком направлении копать... а то совсем непонятно - что и где не так..
     
  3. Daniil

    Daniil Гуру

    Вы хотите помощи за 6 часов в рабочий день(
    Про UART - аппаратный использует пины "0" и "1". Встроенный USB-прогромматор (прошиватель) передает программу через аппаратный UART.
    Для того чтобы ошибок не было всегда выдергиваю "0" пин перед прошивкой.
    Про макетку - она ужасная. Когда я баловался с переходником TTL - RS232, то проблема была в макетке. Плохие контакты. Иногда бывает, что когда провожу рукой над ней и задеваю провода, то наблюдается "неожидаемая" реакция, после этого играюсь с проводами.( и программный uart заработал)
    Далее я гадаю, не воспринимайте близко.
    Про чужие программы (я не купил еще) с ними тоже надо быть осторожным. Я бы делал по документации,в сторонней библиотеке смысла не вижу.
     
    Последнее редактирование: 28 ноя 2014
  4. Unruly

    Unruly Нерд

    СПС... если я правильно понял, то мне проще впаяться к контактам напрямую что бы избежать наводки..
    Так же отказываемся от библиотеки 2.0 (стандартная) и работаем напрямую с контроллером при отправке команд в HEX по UART строкой в 6 байт.

    Факт в том что предыдущие попытки так и не позволили мне понять способен ли он стабильно работать без переходника со встроенным UART. Будем пробовать и пытаться, просто очень НЕ хочется работать с ним через костыль.

    сразу вопрос до кучи. Могу ли Я использовать на своей UNO стандартный UART что бы принимать сигнал на RX0 от устройства 1 (внешний источник)и передавать по TX1 на устройство 2 (плеер), или проще повесить костыль на 232 к шим с целью поднятия нового сом? Или придется вообще уйти на MEGA?
     
  5. melehos

    melehos Нерд

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

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

    в плохой контакт не верю ибо всегда все работало на моей макетке.
    в то что библиотека скачанная с сайта производителя корявая поверить могу но самому писать управление некогда. я бы не купил модуль к которому нет библиотеки с которым придется неделю разбираться в протоколе.

    я купил два модуля и с обоими такие проблемы.

    как быть то?
     
  6. acos

    acos Официальный гик Администратор

    Наблюдал такое поведение с последней версией библиотеки. Когда мы делали видео, использовали вот эту версию библиотеки http://www.dfrobot.com/image/data/DFR0299/DFR0299_library.zip . С ней воспроизведение начинается сразу. А вот с последней версией может пройти куча времени перед стартом произведения. С чем связано - пока не понятно. Что-то дфробот перемудрили где-то. Попробуйте с этой версией и отпишитесь пожалуйста
     
    Daniil нравится это.
  7. melehos

    melehos Нерд

    с этой библиотекой работает все кроме функции stop.
    ну и громкость еще не проверял.

    но это уже лучше чем раньше.

    регулировка громкости не работает.
    в примере ее вообще нет, хотя в mp3TF.h есть такая функция...
     
    Последнее редактирование: 28 ноя 2014
  8. melehos

    melehos Нерд

    блин.
    китайские дибилопрограммеры библиотеку не правильно написали.
    сижу переписываю.
    функцию stop починил.
    вкуриваю дальше...
     
  9. Daniil

    Daniil Гуру

    Простите, писал с телефона, только с ПК заметил, что шрифт огромный.
    В принципе Ваша идея с подключением ТХ и RX к разным устройствам должна работать. По этим проводам передаётся только информация, которую Вы захотите передавать. Ардуину не должно волновать, что на других концах этих проводов висят разные приёмники и передатчики.
    Но программный UART работал не плохо у меня.
     
  10. Pawky_Paw

    Pawky_Paw Говорящая голова

    Если будет возможность, поделитесь потом решением?
     
  11. Unruly

    Unruly Нерд

    Ну тогда я ее ковырять не стану.. выложи если не сложно как закончишь.. v 0.1... составлена грубо но грамотно... да и как правильно было замечено не все функции подключены... но это уже должно работать лучше чем 2.0 ... она из буфера возвращает неправильную строку...
     
  12. melehos

    melehos Нерд

    моих познаний в программинге не хватает для довода библиотеки до ума.

    выяснилось что Stop плеер впринципе не поддерживает. а китайцы сделали вместо него туже функцию что и Puase только с ошибкой.
    я ошибку поправил и теперь есть функция стоп которая по факту пауза.

    прикрутил функции увеличения и уменьшения громкости.

    а вот как задать громкость числом не соображу.

    требуется помощь:
    если я правильно понимаю нужен код который переведет int в HEX
    и второй код который посчитает контрольную сумму для этого байта
    потом это надо будет встроить в массив отдаваемый по UART
    а остальное вроде понятно.

    вот с контрольной суммой байта я вообще не соображу как быть.

    UPD: вру разобрался. скоро выложу библиотеку рабочую.
     
    Последнее редактирование: 28 ноя 2014
  13. melehos

    melehos Нерд

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

    новый список функций:
    * function:
    * mp3tf.play (); play once
    * mp3tf.play (1); play first
    * mp3tf.play (3); play third
    * mp3tf.pause (); pause
    * mp3tf.stop (); stop (на самом деле это таже функция что и пауза)
    * mp3tf.next (); next
    * mp3tf.previous (); previous
    * mp3tf.upVolume (); upVolume
    * mp3tf.downVolume (); downVolume
    * mp3tf.setVolume (20); setVolume 20
    *****************************************************************/
     

    Вложения:

    • mp3TF.zip
      Размер файла:
      2,6 КБ
      Просмотров:
      1.993
    ovLesnik, fin и acos нравится это.
  14. Unruly

    Unruly Нерд

    Прекрасно... буду тестировать...
    в библиотеке 2.0 STOP
    void mp3_stop () {
    mp3_send_cmd (0x16);
    (в сервис мануале я этот параметр не нашел)
    ну или можно подставить SLEEP
    void mp3_sleep () {
    mp3_send_cmd (0x0a);
    (В сервис мануале этот параметр Enter into standby – low power loss)
    Sleep - часто срабатывает на библиотеке 2.0, что самое интересное после пробуждения от кнопки PLAY (начинает играть с начала остановленный трек)

    Думаю что при положительном результате из этого поста, можно будет сделать туториал к этому плееру))))
     
  15. Weim

    Weim Нуб

    Привет) у меня вот прям такие же проблемы с этим модулем, с той только разницей что в офисе амперки чтото както работало, а до этого недолго у меня дома, а потом перестал запускаться, хотя я пробовал с несколькими разными библиотеками. Мне не обязательно управлять по серийному порту, но с кнопками он почему-то тоже не реагирует((((
    Unruly можешь выложить фотку как ты подключал его с кнопочками?
    Реальны ли плохие контакты в макетке?
     
  16. geher

    geher Гуру

    Эту заразу очень легко спалить. На моем счету уже есть один.
    К 5-вольтовой ардуине RX-TX нужно обязательно подключать через резисторы 1 кОм.
     
  17. Weim

    Weim Нуб

    Чорт, я подключал его и через 220 оМ, и через 1 кОм и через 2 кОма) как проверить его?
     
  18. acos

    acos Официальный гик Администратор

    Блин, если ты их спалил, новый только в понедельник. Можно первый, сломанный спаять.
     
  19. melehos

    melehos Нерд

    Кстати в даташите у китайцев есть схема подключения к 5ти вольтовому контроллеру и в ней нет резисторов.
    Китайцы такие китайцы.

    Да и еще. Плеер тупит если слишком часто слать команды.
     
  20. Weim

    Weim Нуб

    протестил библиотеку которая выложена здесь - оба модуля молчат. С кнопок тоже не заводятся.