Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Internet Radio ESP8266 + VS1003

Тема в разделе "Другие проекты", создана пользователем idnull, 16 июл 2015.

Метки:
  1. Pilnikov

    Pilnikov Активный участник сообщества

    Сообщения:
    300
    Симпатии:
    26

    "Почти" готовое WebRadio "почти" на ESP8266
    На самом деле на ESP32 и PCM5102
     
    Berserker нравится это.
  2. kostake

    kostake Новичок

    Сообщения:
    1
    Симпатии:
    0
    Добрый день. Прошу у вас помощи, совета.
    Собрал радио по этому проекту Edzelf/Esp-radio , радио заиграло, правда не без костылей. Не хотел заводится VS1053 (синяя плата), пробовал и ножки 33/34 замыкать-ничего не помогло. пока не откинул резистор на 1кОм (от земли. после этого все стартует отлично и без замкнутых ножек). Может кому то поможет эта информация.
    Безымянный.jpg
    А я запутался в кнопках, точнее как их реализовать. Нужно две кнопки для переключения станций, в файле PDF проекта про это немного сказано.
    Безымянный.jpg
    Напаял резисторы, посмотрел значения какие выдаются при замыкании той или иной кнопки. И дальше ступор, подскажите где надо прописать команды на них? Я просто только вчера познакомился с Arduino ide. Пытался в файлике Radio.ini прописать раздел Analog, но что-то ничего не получилось.
     
  3. думка

    думка Новичок

    Сообщения:
    6
    Симпатии:
    1
    Друзья, всем привет, принимайте новичка)
    В качестве очередной поделки на ESP8266 задумал собрать интернет-радио с MP3 плеером, на основе NodeMCU v.3 и вот такой платы с VS1053 и слотом TF-карты: Arduino MP3 shield board with TF card - Geeetech Wiki
    В качестве дисплея и клавиатуры подключил такой LCD1602 keypad shield: LCD Keypad shield: схема подключения, распиновка, скетч для шилда Arduino
    Поскольку ножек у ESP на все не хватает, пришлось дисплей подключить через I2C буфер на PCF8574.
    Для проверки использовал библиотеку и скетч от Adafruit VS1053 Codec Breakout, простой MP3 плеер, который по циклу воспроизводит 1 файл с карты, а на экран выводит счетчик повторений и время воспроизведения.
    В общем, все заработало, но проявилась одна неприятная проблемка: ESP крашится, если вывод на дисплей по I2C и обращение к SPI происходят одновременно. А поскольку SPI работает по прерываниям от кодека, притом, что I2C по (более-менее) регулярному циклу, то как эти события развести по времени, не совсем понятно. Посоветуйте, куда копать, что с этим делать?
    Буду благодарен за любые идеи.

    P.S. WiFi тут не причем, пробовал и с ним и без него. Только отключение в скетче вывода на I2C помогает, без него играет сутками без остановки)
    В архиве схемка и тестовый скетч.
     

    Вложения:

    • MP3SD_a2.zip
      Размер файла:
      396,9 КБ
      Просмотров:
      14
  4. Pilnikov

    Pilnikov Активный участник сообщества

    Сообщения:
    300
    Симпатии:
    26
    А тормознуть I2c пока spi обрабатывает прерывание нельзя?
    Вообще, имхуется мне, что "дури" у esp8266 слегка не хватает на одновременную работу экрана и мп3 по причине малого объема ОЗУ.
     
  5. думка

    думка Новичок

    Сообщения:
    6
    Симпатии:
    1
    Думается мне, тут как раз обратная история - прерывание от кодека на SPI приходит в тот момент, когда передача по I2C уже в процессе.. Т.е. нужно напротив блокировать прерывание от кодлека на тот момент, пока вывод на дисплей идет. Как раз пытаюсь сообразить, как такой сценарий реализовать)
    Но, это конечно не самый красивый костыль.
     
  6. Pilnikov

    Pilnikov Активный участник сообщества

    Сообщения:
    300
    Симпатии:
    26
    Икать будет. Лучше пусть экран лагает. Прервать вывод. Потом сразу повторить
     
  7. думка

    думка Новичок

    Сообщения:
    6
    Симпатии:
    1
    Дык не получится так... Если он уже в обработчике прерывания от кодека, то вывод на дисплей и так не начнется, он же в loop. А вот если вывод на I2C уже начался, то его уже не заблокируешь по прерыванию...
    конечно, можно вывод на дисплей тоже сделать в обработчике, но это надо VS библиотеку потрошить. Да и вопрос - что делать, когда воспроизведение остановится?
    Так что пока изучаю вариант - задержать обработку прерывания от SPI... (не отключить, а задержать!). Икать, надеюсь, не будет - там же в кодеке собственный буфер MP3.
    на днях попробую, но думается мне, должно быть какое то другое, более правильное решение.
     
  8. Pilnikov

    Pilnikov Активный участник сообщества

    Сообщения:
    300
    Симпатии:
    26
    правильнее не на ардуине, а в SDK с freertos
     
  9. думка

    думка Новичок

    Сообщения:
    6
    Симпатии:
    1
    RTOS пока подождет)
    проверил noInterrupts() - interrupts() для блокировки прерываний от кодека на время вывода на I2C дисплей. Помогло.
    На тестовом скетче уменьшил интервал обновления дисплея до 100мс и увеличил объем вывода, но работает стабильно, артефактов в звуке не слышно.
    Можно продолжать работу над проектом)
    тестовый скетч прилагаю.
     

    Вложения:

    • MP3SD_a2.ino
      Размер файла:
      5,1 КБ
      Просмотров:
      10
  10. dimetrius

    dimetrius Новичок

    Сообщения:
    1
    Симпатии:
    0
    @думка
    скетч не компилится из-за ошибки
    MP3SD_a2:57: error: no matching function for call to 'LiquidCrystal_I2C::begin(int, int)'
    lcd.begin(0,2); // sda=GPIO0, scl=GPIO2
     
  11. Fayton

    Fayton Читатель

    Сообщения:
    19
    Симпатии:
    9
    Накидал на выходных...

    Радио на базе esp8266 1.5уе

    Mpc602 фильтр 0.5 уе

    Pam8403 усилитель 0.5уе

    Lds3985 стабилизатор 3.3v 300mA 0.5уе

    Ик пульт с фотоприемником для ардуино 0.5уе

    Итог 3.5уе Получам..

    веб морду с настройкой сети и потоков

    10 сохраненных мной станций

    и 10 вы можете сами сохранить

    Регулировка громкости

    Выключение с запоминанием станции и громкости

    Вход в вебморду с пульта

    Выход два по три вата

    Нормальный фильтр шестого порядка для человеческого звука.

    Питание 5 вольт

    Если увижу интерес дам прошивку : )

    Вебморда и плата на фото...

    https://youtu.be/pOTD8KXDDDs
    обзор...
    https://drive.google.com/file/d/1-_la1wg8dulOmCeRZQzZ2fqL1_9vic77/view?u...
    плата...
    RADIOSAN.bin
    прошивка...

    Конфигурация:
    ; set frequency to 160MHz
    board_build.f_cpu = 160000000L
    ; set frequency to 80MHz
    board_build.f_flash = 80000000L
    board_build.flash_mode = dio
    upload_resetmethod = nodemcu
    На здоровье :)

    Если использовать 4 мГ флеш то обновление через веб морду!
    Если есть ошибки или пожелания мыльте на почту euspro1@gmail.com
     

    Вложения:

    Последнее редактирование: 30 окт 2018
  12. думка

    думка Новичок

    Сообщения:
    6
    Симпатии:
    1
    Проверь, что подключена совместимая библиотека. Я использовал эту: agnunez/ESP8266-I2C-LCD1602
     
    dimetrius нравится это.
  13. думка

    думка Новичок

    Сообщения:
    6
    Симпатии:
    1
    Прикольно. А нельзя ли на схемку взглянуть?
     
  14. Fayton

    Fayton Читатель

    Сообщения:
    19
    Симпатии:
    9
    схемы лень рисовать... там вроде все просто.
     
  15. Fayton

    Fayton Читатель

    Сообщения:
    19
    Симпатии:
    9
    Накидал на выходных...
    Радио на базе esp8266 1.5уе
    Mpc602 фильтр 0.5 уе
    Pam8403 усилитель 0.5уе
    Lds3985 стабилизатор 3.3v 300mA 0.5уе
    Ик пульт с фотоприемником для ардуино 0.5уе
    Итог ~3.5уе Получаем..

    Активация всех функций бесплатная только за фото собранного Radiosan.
    Заходим 192.168.4.1/radiosan
    Шлем фото и 4 кода - получаем 4 кода и наслаждаемся.
    Коммерческое использование запрещено!

    20 станций записано и все можно менять.
    Обучение любого пульта. Но уже прописан пульт от Ардуино.
    Питание от USB или 5V 1A. одна колонка и 2А если две!
    Выход 2 по 3W.
    Управление громкостью.
    Вход и выход в вебморду по нажатию кнопки с пульта.
    Выключение с памятью канала и громкости.
    Авто перезагрузка при потере потока или wifi.
    Код хорошо оптимизирован что позволило сделать радио очень шустрым.
    Как по мне всякие календари и часы пихать в радио не вижу смысла. Так как радио должно просто играть.
    При переключениях звук приглушается но только при повторении моей платы.
    Светодиод красный. Фоторезистор 10к. Стоит над светодиодом нос в нос. Сверху заливается черным термоклеем.
    Качественный звук с большим динамическим диапазоном.
    Фильтр Баттерворта шестого порядка.
    Срез фильтра -60 дбм на 44 кгц давит антиалиасный и гранулярный шум
    погрешность номиналов 1% для идеальной работы но можно ставить до 5%
    это лучше чем без него вовсе.

    Прошивка в архиве. RADIOSAN-V6.rar
    Распаковать в корень диска. Запустить ESPFlashDownloadTool_v3.3.6.exe
    Вот я видос делал как залить прошивку!



    После прошивки ждем 2 мин не отключаем питание, пока происходит конфигурация и обновление списка станций.
    Сканируем wifi сети и подключаемся к RADIOSAN пароль 12345678
    Заходим на 192.168.4.1
    Ставим галочку напротив своей сети и вводим пароль от нее.
    Нажимаем на пульте кнопку вниз.
    Ждем несколько секунд и вуаля ля ля ля!
    Все уже настроено.

    [​IMG] [​IMG] [​IMG] [​IMG]
     
    Последнее редактирование: 23 дек 2018
    SARGE, amperchik и Andy Korg нравится это.
  16. Fayton

    Fayton Читатель

    Сообщения:
    19
    Симпатии:
    9


     
    SARGE нравится это.
  17. Fayton

    Fayton Читатель

    Сообщения:
    19
    Симпатии:
    9
    SARGE нравится это.
  18. Fayton

    Fayton Читатель

    Сообщения:
    19
    Симпатии:
    9


    RADIOSAN-V7.rar
    Radiosan V7[​IMG]
    [​IMG]
    Дамп для тех кто до шился...
     

    Вложения:

    Andy Korg, SARGE и mikhail09p нравится это.

Поделиться этой страницей