DFPlayer

Тема в разделе "Arduino & Shields", создана пользователем s1984i, 10 мар 2017.

  1. s1984i

    s1984i Нерд

    помогите найти библиотеку для DFPlayer
     
  2. ostrov

    ostrov Гуру

    Ни одной безглючной не нашел. Нафиг их, только вручную. На этом форуме уже выкладывал.
     
    sslobodyan нравится это.
  3. s1984i

    s1984i Нерд

    а есть смысл заморачиваться с ним? даст он мне чистый звук без шипений? хочу через него выводить звук на gprs shield - модуль SD карты даёт сильное шипение. или нужно внимание обратить на Arduino Mp3 shield vs1053
     
  4. sslobodyan

    sslobodyan Гик

    У VS1053 уровень шумов менее -90Дб, музыка на нем достаточно приличного качества. Но если вы гоните звук в GSM сеть, то там такая узкая полоса, что скорее всего абонент не отличит звук VS1053 от DFPlayer, так что я бы ставил то, что дешевле и проще в работе.
     
    ostrov нравится это.
  5. s1984i

    s1984i Нерд

    проще, но не запустить DFPlayer :)
     
  6. sslobodyan

    sslobodyan Гик

    Здесь есть ОГРОМНАЯ тема по нему. Научить как искать? :)
     
  7. s1984i

    s1984i Нерд

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

    s1984i Нерд

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

    olegtur77 Нерд

  10. s1984i

    s1984i Нерд

    проштудировал обе ссылки... максимум что получилось это появилось шипение в наушниках. (как буто кассета закончилась и щёлканье ) по первой ссылке в сереал выводится не понятные иероглифы.
    попробовав такой код ответ получаю Please recheck the connection! Please insert the SD card! один раз получилось проскочить до DFPlayer Mini online. но музыки я не услышал
    Код (C++):
    #include "Arduino.h"
    #include "SoftwareSerial.h"
    #include "DFRobotDFPlayerMini.h"

    SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
    DFRobotDFPlayerMini myDFPlayer;
    void printDetail(uint8_t type, int value);

    void setup()
    {
      mySoftwareSerial.begin(9600);
      Serial.begin(115200);

      Serial.println();
      Serial.println(F("DFRobot DFPlayer Mini Demo"));
      Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));

      if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
        Serial.println(F("Unable to begin:"));
        Serial.println(F("1.Please recheck the connection!"));
        Serial.println(F("2.Please insert the SD card!"));
        while(true);
      }
      Serial.println(F("DFPlayer Mini online."));

      myDFPlayer.volume(10);  //Set volume value. From 0 to 30
      myDFPlayer.play(1);  //Play the first mp3
    }

    void loop()
    {
      static unsigned long timer = millis();

      if (millis() - timer > 3000) {
        timer = millis();
        myDFPlayer.next();  //Play next mp3 every 3 second.
      }

      if (myDFPlayer.available()) {
        printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
      }
    }

    void printDetail(uint8_t type, int value){
      switch (type) {
        case TimeOut:
          Serial.println(F("Time Out!"));
          break;
        case WrongStack:
          Serial.println(F("Stack Wrong!"));
          break;
        case DFPlayerCardInserted:
          Serial.println(F("Card Inserted!"));
          break;
        case DFPlayerCardRemoved:
          Serial.println(F("Card Removed!"));
          break;
        case DFPlayerCardOnline:
          Serial.println(F("Card Online!"));
          break;
        case DFPlayerPlayFinished:
          Serial.print(F("Number:"));
          Serial.print(value);
          Serial.println(F(" Play Finished!"));
          break;
        case DFPlayerError:
          Serial.print(F("DFPlayerError:"));
          switch (value) {
            case Busy:
              Serial.println(F("Card not found"));
              break;
            case Sleeping:
              Serial.println(F("Sleeping"));
              break;
            case SerialWrongStack:
              Serial.println(F("Get Wrong Stack"));
              break;
            case CheckSumNotMatch:
              Serial.println(F("Check Sum Not Match"));
              break;
            case FileIndexOut:
              Serial.println(F("File Index Out of Bound"));
              break;
            case FileMismatch:
              Serial.println(F("Cannot Find File"));
              break;
            case Advertise:
              Serial.println(F("In Advertise"));
              break;
            default:
              break;
          }
          break;
        default:
          break;
      }

    }
     
  11. Tomasina

    Tomasina Сушитель лампочек Модератор

    как файлы на карту записаны?
    Без Arduino треки играет?
     
  12. s1984i

    s1984i Нерд

    на карте создана папка mp3 , в ней лежат *wav и *mp3 файлы названием 0001 - 0002 и т.д.
    теже самые файлы лежат в корне карты. карта от форматирована v Fat32.
    Нет не играет. только появилось шипение в наушниках.(в одном)
    карта 2gb, только не помню какого по каления
     
  13. olegtur77

    olegtur77 Нерд

    попробуйте для начала громкость поставить хотя бы 20-25...и можно для начала включить небольшой динамик на силовой выход.
     
  14. sslobodyan

    sslobodyan Гик

    Уберите все, кроме сетапа. Даже луп оставьте полностью пустым. Если все правильно подключено - заиграет первый трек. Пока этого не будет - никаких проверок на состояние, никаких переключений трека, вообще ничего не надо дописывать. Подключите параллельно с плеером юсб-ком преобразователь и посмотрите через нормальный (не ардуиновский) терминал что там шлется на плеер (достаточно хорош Termite, там надо включить HEX view). И сравните с документацией правильные ли коды вы шлете.
     
  15. s1984i

    s1984i Нерд

    пробовал.... тишина
     
  16. s1984i

    s1984i Нерд

    .DFRobot D с первым кодом удали все проверки шлёт.
    46 50 6c 61 79 65 72 20 4d 69 6e 69 20 44 65 6d FPlayer Mini Dem
    6f 0d 0a 49 6e 69 74 69 61 6c 69 7a 69 6e 00 00 o..Initializin..
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 0a ................
    44 46 52 6f 62 6f 74 20 44 46 50 6c 61 79 65 72

    если загрузить вот такой код:
    Код (C++):
    #include <SoftwareSerial.h>
    #include <DFPlayer_Mini_Mp3.h>
    void setup () {
        Serial.begin (9600);
        mp3_set_serial (Serial);    //set Serial for DFPlayer-mini mp3 module
      delay (100);
      mp3_set_volume (20);
    }
    void loop () {      
    delay (100);
    mp3_play (2);  // Проигрываем "mp3/0002.mp3"
    delay (10000);
    }
    то выдаёт, если я правильно понимаю играет 2ой трек.
    7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп
    7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп
    7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп
    7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп
     
  17. sslobodyan

    sslobodyan Гик

    Вы путаете хардварный и софтварный сериал. В вашем коде плеер висит на софтварном (10,11) а слушаете вывод на хардварном, куда идет отладочная информация.
     
  18. s1984i

    s1984i Нерд

    не понял, надо в термите что то изменить?
     
  19. sslobodyan

    sslobodyan Гик

    ком2юсб у вас подключен к отладочному порту, а надо подключить к ножкам, на которых висит плеер.
     
  20. s1984i

    s1984i Нерд

    надо усб кабель разрезать подключить к рх тх плеера?