ESP, IoT Интернет-радио в форме головы Бендера. Обсуждение проекта.

werdes

✩✩✩✩✩✩✩
3 Янв 2024
6
8
На волне обсуждения помех и искажений, -у меня отсутствуют какие-либо слышимые помехи, возможно вам поможет что-то из перечисленного ниже:

Унч использовал дешевый pam8406 с подстроечными резисторами, в стоке активен режим AB.
После того как подобрал максимальную громкость для динамиков, замерил сопротивление подстроечников и заменил на дискретные резисторы.
Несмотря на то, что на усилке уже есть конденсатор, пришлось поставить электролит на общий вход питания.
Входное питание сразу идет на унч, хорошим сечением.
Цифровые сигналы цапа не пересекаются с аудио сигналами или питанием.
Цап запитан от 5в, как обозначено в даташите, как сказали выше, -там стоит лдо на 3.3в. Отпаял разъем миниджек, как ненужный.
Минуса (земли) много не бывает.

IMG_20240112_153225.jpgIMG_20240113_190103.jpgIMG_20240113_190126.jpgIMG_20240124_063526.jpgIMG_20240124_234429.jpg

Удалось выжать порядка 6,8Вт, замер не точный, дешевый прибор не фиксирует пиковую нагрузку
На усилитель пришлось ставить радиатор, тк закипает при большой громкости)

photo_2024-04-10_23-10-39.jpg

На днях почитав ветку, поставил стоковое ё-радио, с удивлением открыл для себя, что на этой прошивке корректно работают станции с битрейдом выше 128, которые икали или молчали на прошивке Алекса (изменение буфера не помогало)
 
  • Лойс +1
Реакции: Hilltrigg3r и MrGzot

Kerrovitarr

★✩✩✩✩✩✩
18 Дек 2020
19
14
@Weep,работать должно
Классическая схема с предусилителем и усилителем.
Единственное есть шанс что pam8403 может хрипеть или тухнуть по питанию , так что рекомендую туда конденсатор воткнуть помощнее. (Сначала попробовать стоит без него естественно)
 

Kargione

✩✩✩✩✩✩✩
26 Мар 2024
4
1
@extrapic,
Добрый день!
сможете крепление esp32 передвинуть на 15мм к центру а то разъем питания мешает. Спасибо
 

Weep

✩✩✩✩✩✩✩
20 Дек 2023
33
4
@maloir,
Чтобы динамики звучали лучше, а то усилитель 6112 не предназначен для динамиков.
 

Weep

✩✩✩✩✩✩✩
20 Дек 2023
33
4
@maloir,
Нет, это уже перегрузка. На динамики источник звука должен быть максимальным. а регулировка общим уровнем громкости (антенкой) уже регулировать максимальную нагрузку на динамики. Т.е. выкрутить усилитель на максимум, а при регулировке антенной, скажем, они уже на +12 могут хрипеть, поэтому придется слушать музыку с настройками громкости звука в диапозоне +1 - +11 , а свше до +21 будет уже избыточная работа динамиков, опять же, смотря какие стоят, у меня на +3,6 ОМ 40мм
 

Weep

✩✩✩✩✩✩✩
20 Дек 2023
33
4
@maloir,
Думаю да. Если только усилитель внутри головы не на максимум ставить
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
Чтобы динамики не хрипели нужно правильно организовать им акустическую нагрузку (объём, закрытый ящик, фазоинвертор...), а также ограничить подаваемую мощность, особенно (для таких маленьких динамиков) низкие частоты.
 

dobuza

✩✩✩✩✩✩✩
24 Янв 2024
20
4
Что на оригинальной прошивке, что на ёрадио. Помехи задолбали. Усилитель PAM8403 с регулятором. Убрал фильтры. Ставил dc-dc. Ставил электролитические кондеры. Короче шум ужасный от усилка. Что не дорогое поставить?
 

MrGzot

✩✩✩✩✩✩✩
14 Май 2019
22
7
@dobuza, чуть выше ссылка на дифференциальный усилитель и схема его подключения
 

Weep

✩✩✩✩✩✩✩
20 Дек 2023
33
4
@dobuza,
Я тоже перепробовал все советы. вот сейчас на усилитель этот надежда))
 

dobuza

✩✩✩✩✩✩✩
24 Янв 2024
20
4
Если поставить дифференциальный усилитель, громкости хватит? Или после него еще что то ставили?
 

x3mEr

★✩✩✩✩✩✩
26 Авг 2019
89
23
Добился отключения сигнала с левого канала от АЦП на 34ый пин ESP32 и, соответственно, "фильтров".
Но, скажу сразу, у меня ничего не поменялось) Вроде бы и не должно - писк не из-за этого.
1) в комплекте с прошивкой Алекса идёт библиотека ESP32-audioI2S. У неё версия 2.1.0. В репозитории самого автора этой библиотеки на гитхабе последняя версия 2.0.0. Надо скачать её.
2) в версии 2.0.0 у класса Audio есть метод getVUlevel(). Чтобы отрисовывать рот, Алекс считывает аналоговый сигнал на ноге 34 (у ESP32 12-битный АЦП, значения сигнала с 0 по 4095). Audio::getVUlevel() выдаёт с 0 по 65535 (uint16_t). И оказалось, что этот метод выдаёт то, что нам нужно. Надо просто перевести его в пределы 12 бит. Но на практике получил глюки с матрицами. Если переводить в uint8_t, то всё отлично. Мне даже показалось, что рот стал плавнее и точнее. Использовать значения аудиобиблиотеки можно двумя способами.
Первый - не особо правильный, я применял его с целью вообще выпилить библиотеку VolAnalyzer. Не получилось. В core0.cpp добавить одну строку и поправить две:
core0.cpp:
mtrx.rect(0, 0, ANALYZ_WIDTH - 1, 7, GFX_CLEAR);                        // это строка 219
uint8_t VUlevel = map(audio.getVUlevel(), 0, 65535, 0, 255); //добавить // это строка 220
switch (data.mode) {                                                    // это строка 221
    case 0:                                                             // это строка 222
        analyz0(VUlevel); // изменить                                   // это строка 223
        break;                                                          // это строка 224
    case 1:                                                             // это строка 225
        analyz1(VUlevel); // изменить                                   // это строка 226
        break;                                                          // это строка 227
}                                                                       // это строка 228
mtrx.update();                                                          // это строка 229
P.S.: ну да, Алекс берёт значения с ноги 34 в типе uint16_t, как я и делал, а потом при обработке уменьшает разрядность побитовым сдвигом, и на отрисовку попадают уже uint8_t данные.

P.S2.: зрачки перестают расширяться при громких моментах и рот должен двигаться не в такт.

Второй способ - добавить строку и исправить один вызов:
core0.cpp:
uint16_t VUlevel = map(audio.getVUlevel(), 0, 65535, 0, 4095);  // строка 209
if (sound.tick(VUlevel) && data.state && !matrix_tmr.state()) { // строка 210
Если в метод sound.tick() ничего не передаётся, считываются значения с пина 34, если передаётся - используюется переданное.

В оригинальной прошивке при отваливании звука, рот всё равно дёргался. Сейчас - нет. Благодаря этому стало понятно, что нет сигнала с ESP32, а я грешил на плату ЦАП. Понять бы почему музыка пропадает, и иногда с временем появлялись глюки на глазах и рте. Чувствую, что что-то с размерами данных. т.к. когда пытался отрисовать большие значения (больше uint8_t), всё рушилось. Сейчас всё ок. Никак не могу прикрутить WiFiManger - точно так же со врменем ползут глаза, рот, музыка пропадает.
 
Изменено:
  • Лойс +1
Реакции: AlexGyver и Kerrovitarr

Weep

✩✩✩✩✩✩✩
20 Дек 2023
33
4
@rv1cj,
Хорошо,но еще ждать недели 2, пока прийдет заказ.

@Kerrovitarr,
Да, если есть возможность, буду признателен.
 

Alexey244

★★✩✩✩✩✩
22 Ноя 2023
28
67
Всем привет! Я опять немного обновил плагин Бендера к Ё-радио.
В этой версии я:
-исправил глюк с цикличной перезагрузкой при отсутствии последней успешной точки wifi;
-изменение яркости сделал на лету, либо с веб интерфейса или с фоторезистора;
-исправил вывод 3х значных номеров станций и значений громкости.

Теперь чуть подробнее, строчки 22,23,24 в файле "bender.ino" закоментированы:
22 строка "#define AMP 14" нужна если у вас (как и у меня) при паузе усилитель отключается мосфетом (при включении на 14пин высокий уровень и низкий уровень при отключениях)

23 строка "#define pin_foto_res 39" нужна если у вас (как и у меня) подключен фоторезистор к 39пину(SN) одной ногой и (+3v) другой, еще этот (пин 39) должен быть подтянут к земле через резистор 10кОм, яркость матриц будет меняется автоматически в зависимости от освещения, но в веб интерфейсе она меняться не будет. Простите что без схемы. Подробнее как подключать можно посмотреть тут - https://kit.alexgyver.ru/tutorials/photoresistor/

24 строка "#define time_EYES 1 "нужна если вам (как и мне) больше нравится вариант отображения времени в глазах, а не во рту с секундами.

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

Прошивать как обычно можно по воздуху, файлы settings.html и myoptions.h оставляем старые.
 

Вложения

rv1cj

★✩✩✩✩✩✩
22 Июн 2023
90
29
@Alexey244, а можно еще добавить что бы время вообще не отображалось, в режиме ожидания глаза сонные, рот выключен. Но что бы выбор в скетче был - время в глазах, во рту, выключено.
 

x3mEr

★✩✩✩✩✩✩
26 Авг 2019
89
23
@x3mEr, ля красота какая, спасибо! Перепишу и выпущу обновку тогда и схему поправлю
О! Пользуясь случаем - ещё раз спасибо за твою деятельность!)

Когда радио пищало, матрицы глючили я в сердцах сгоряча немного позлился на Алекса: и видосики не такие подробные про настройку Ардуино IDE, прошивку, пайку, сборку, и код странный, и вообще колбаса раньше в магазинах вкуснее была... А потом как-то переосмыслил: ведь вместо танков мужики в коде копаются, подростки вместо пива фичи допиливают и я, блин, вместо работы или сна изучаю аудиобиблиотеки))) Проекты Алекса обрастают повторителями, которые совершенствуют их. Гайвер - популяризатор. Алекс: "О! А можно ведь и такое сделать!" Толпа: "Ооо... Как прикольно. А можно ещё и вот так, и вот эту штучку сюда приделать."
 
Изменено:

iponkada2

★✩✩✩✩✩✩
10 Апр 2024
20
11
Подскажите пожалуйста каким пластиком печатать корпус. Может какие секреты, хитрости есть.