Помогите реализовать регулятор громкости...
Помогите реализовать регулятор громкости...
Всем привет.
Прошу помощи в создании небольшой программки для STM32F100C8 (т.к. именно их 10 штучек валяются без дела...)
Заодно будет для меня первый опыт в STM_ках... ато как то кроме мигания светиком пока не было времени продвинуться ))) http://radiokot.ru/forum/viewtopic.php? ... 2#p2142502
Если я не в тему в этой ветке со своей просьбой, то ткните носом, куда лучше обратится...
В обчем задача такая...
Нужно соЙстряпать на СТМ-ке 2-х канальный регулятор громкости для слабослышащих...
Делать на переменниках как то не современно, да и переменники быстро сдыхают... а тут на одном кристалле и 2-х кнопочках сразу 2 регулятора для 2-х слабослышащих...
Ставится это будет в общественном месте, там где места для слабослышащих...
Между 2-мя креслами - одна коробочка с 2-мя разъемами для наушников... и с 2-мя кнопочками для каждого слушателя... каждой кнопочкой можно по кругу переключать ступени громкости, думаю 4 уровня хватит (средне, выше среднего, громко, максимально громко)... ну и 2 светика которые будут как то отображать текущий уровень...
Я так понимаю что надо подать входной сигнал на ADC, и в цикле результаты замеров, поделенные на значение уровня для каждого канала - выдавать на 2 канала DAC...
Думаю STM должен потянуть частоту дискредизации в 20кГц... хотя наверное для слабослышащих и 10кГц сойдет... все равно в основном речь будет транслироваться...
Есть кто нибудь кто может накидать кода ???
Если что, у меня KEIL 454
Прошу помощи в создании небольшой программки для STM32F100C8 (т.к. именно их 10 штучек валяются без дела...)
Заодно будет для меня первый опыт в STM_ках... ато как то кроме мигания светиком пока не было времени продвинуться ))) http://radiokot.ru/forum/viewtopic.php? ... 2#p2142502
Если я не в тему в этой ветке со своей просьбой, то ткните носом, куда лучше обратится...
В обчем задача такая...
Нужно соЙстряпать на СТМ-ке 2-х канальный регулятор громкости для слабослышащих...
Делать на переменниках как то не современно, да и переменники быстро сдыхают... а тут на одном кристалле и 2-х кнопочках сразу 2 регулятора для 2-х слабослышащих...
Ставится это будет в общественном месте, там где места для слабослышащих...
Между 2-мя креслами - одна коробочка с 2-мя разъемами для наушников... и с 2-мя кнопочками для каждого слушателя... каждой кнопочкой можно по кругу переключать ступени громкости, думаю 4 уровня хватит (средне, выше среднего, громко, максимально громко)... ну и 2 светика которые будут как то отображать текущий уровень...
Я так понимаю что надо подать входной сигнал на ADC, и в цикле результаты замеров, поделенные на значение уровня для каждого канала - выдавать на 2 канала DAC...
Думаю STM должен потянуть частоту дискредизации в 20кГц... хотя наверное для слабослышащих и 10кГц сойдет... все равно в основном речь будет транслироваться...
Есть кто нибудь кто может накидать кода ???
Если что, у меня KEIL 454
- Реклама
Re: Помогите реализовать регулятор громкости...
Мне кажется это как горло лечить через задницу. АЦП и ЦАП в обычных МК совершенно не подходят для аудио применений, нет конечно можно попробовать, но что получится на выходе? Тем более речь идет о слабослышащих, они и так плохо слышат, а тут им еще звук через такую ерунду пропустили. Тем более это слишком сложно для такой задачи, ну не нравится механический переменник - можно взять цифровой, какие проблемы? Полностью аналоговая цепь с цифровым потенциометром, управляемая любым копеечным пиком с восемью ногами, по моему идеальный вариант.
Если цель сделать не хорошо, а чтобы STM и ЦАП, то чего уж, делай. Читай из АЦП да пиши в ЦАП, скорости должно и для 20 кГц хватить, вот только разрядность у АЦП и ЦАП 12 бит, а эффективная наверное всего 10 бит.
Если цель сделать не хорошо, а чтобы STM и ЦАП, то чего уж, делай. Читай из АЦП да пиши в ЦАП, скорости должно и для 20 кГц хватить, вот только разрядность у АЦП и ЦАП 12 бит, а эффективная наверное всего 10 бит.
Re: Помогите реализовать регулятор громкости...
Сказано конечно сильно... но вот от практики очень далеко )))menzoda писал(а):Мне кажется это как горло лечить через задницу.
А что получится на выходе... помоему очень качественный звук...menzoda писал(а):АЦП и ЦАП в обычных МК совершенно не подходят для аудио применений, нет конечно можно попробовать, но что получится на выходе?
почитал интернеты, хвалят там STM-ный ADC\DAC... на 12 разрядах только младший бит вроде шумит чуть... а так красота...
А факты какие о слишком сложности???menzoda писал(а):Тем более это слишком сложно для такой задачи
Ну это действительно для каких нибудь HiFi направлений... а у меня всего то задача СЧ обрабатывать... да и по цене наверное цифровые потенциометры не самые дешевые... но не в этом дело, просто к меня есть STM_ки и есть конкретная задачка...menzoda писал(а):Полностью аналоговая цепь с цифровым потенциометром, управляемая любым копеечным пиком с восемью ногами, по моему идеальный вариант.
Вот уже и делаю...menzoda писал(а):Если цель сделать не хорошо, а чтобы STM и ЦАП, то чего уж, делай.
Скачал кубика, сижу морокую...
- Вложения
-
- stm.png
- (67.93 КБ) 1371 скачивание
Re: Помогите реализовать регулятор громкости...
Убрал.
Нарушение Правил форума п. 2.4
aen
Нарушение Правил форума п. 2.4
aen
- AVI-crak
- Прорезались зубы
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
- Контактная информация:
Re: Помогите реализовать регулятор громкости...
Если вход - то на весь динамический диапазон ацп, а это всего 12 разрядов. Смысла особого усиливать эти 12 разрядов не наблюдается. Ведь в случае усиления скажем в 1000 - на выходе получаем двухбитный цап, да ещё и с шумом. В случае уменьшения громкости в 1000 раз - тоже двухбитный цап...shads писал(а): Нужно соЙстряпать на СТМ-ке 2-х канальный регулятор громкости для слабослышащих...
- Реклама
Re: Помогите реализовать регулятор громкости...
Верно... но для оцифровки речи это выше крыши...AVI-crak писал(а):Если вход - то на весь динамический диапазон ацп, а это всего 12 разрядов.
Другое дело если бы мы оцифровывали высококач музыку, но таких требований нет...
Чет вас как то шарахает из стороны в сторону )))))AVI-crak писал(а):Смысла особого усиливать эти 12 разрядов не наблюдается. Ведь в случае усиления скажем в 1000 - на выходе получаем двухбитный цап, да ещё и с шумом. В случае уменьшения громкости в 1000 раз - тоже двухбитный цап...
Зачем усиливать в 1000 раз?
У нас нормальный линейный сигнал, который сразу можно подавать на ADC... и на выходе DAC нужен такой же уровень... т.е. ничего усиливать вообще не надо...
Зачем уменьшать в 1000 раз?
Достаточно нескольких градаций громкости, например 100%, 85%, 70%, 55%... т.е. уменьшаем всего в 2 раза... (11 разрядов)
Re: Помогите реализовать регулятор громкости...
аналоговый ключ 2 х (4:1) с фиксированными аттенюаторами.
управлять всё равно от чего , хоть от стмки , раз уж "она есть" .
про ацп цап забыть.
управлять всё равно от чего , хоть от стмки , раз уж "она есть" .
про ацп цап забыть.
Re: Помогите реализовать регулятор громкости...
50 % это не регулировка для слабослышащих .
нужен диапазон как раз 40-60 дБ , на что 12 разядов не хватит .
в телекоме принято 8 разрядов с компрессором - экспандером, в линейной шкале это 10 разрядов .
10 бит ты как раз с ацп и получишь . ЦАП 12 бит - на громкость остается 2 разряда, это 12 дБ регулировки из требуемых 40-ка.
Если подключить телекомовский альфа-кодек - можно диапазон расширить, но тоже недостаточно. При этом экспандер будет частично аналоговый - тоже гемор. Ищи G.711 codec , реализаций полно. Alpha -law ( A-Law) работает быстрее.
можно поробовать ЦАПу добавить разрядности через oversampling , но это точно не для тебя задача.
Pешай в аналоге - там всё элементарно.
нужен диапазон как раз 40-60 дБ , на что 12 разядов не хватит .
в телекоме принято 8 разрядов с компрессором - экспандером, в линейной шкале это 10 разрядов .
10 бит ты как раз с ацп и получишь . ЦАП 12 бит - на громкость остается 2 разряда, это 12 дБ регулировки из требуемых 40-ка.
Если подключить телекомовский альфа-кодек - можно диапазон расширить, но тоже недостаточно. При этом экспандер будет частично аналоговый - тоже гемор. Ищи G.711 codec , реализаций полно. Alpha -law ( A-Law) работает быстрее.
можно поробовать ЦАПу добавить разрядности через oversampling , но это точно не для тебя задача.
Pешай в аналоге - там всё элементарно.
Последний раз редактировалось pixar Вт янв 19, 2016 11:47:54, всего редактировалось 8 раз.
Re: Помогите реализовать регулятор громкости...
100% !!! Чувствительность уха то логарифмическая... А для со слабым слухом... вообще может быть непонятно что... 
"Я не даю готовых решений, я заставляю думать!"(С)
Re: Помогите реализовать регулятор громкости...
можно выдавать через 4 канала ШИМа , с фиксированными аттенюаторами.
включать только один канал , ненужные отключать.
вылезет проблемка с выходным фильтром , но тоже решаемо.
как ни кинь - аналоговый MUX проще всего .
включать только один канал , ненужные отключать.
вылезет проблемка с выходным фильтром , но тоже решаемо.
как ни кинь - аналоговый MUX проще всего .
Re: Помогите реализовать регулятор громкости...
Есть ещё вариант на ШИМ... озвучивать не буду... им ещё на ПИКах пользовались...
"Я не даю готовых решений, я заставляю думать!"(С)
Re: Помогите реализовать регулятор громкости...
Можно конечно и забы(и)ть, но раз они у нас есть, грех ими не воспользоваться...pixar писал(а):аналоговый ключ 2 х (4:1) с фиксированными аттенюаторами. управлять всё равно от чего , хоть от стмки , раз уж "она есть" .
про ацп цап забыть.
Хотя спасибо за вариант, в принципе буду иметь ввиду...
Ну вы ваще куда то в дебри высшей математики ушли )))))pixar писал(а):50 % это не регулировка для слабослышащих. нужен диапазон как раз 40-60 дБ ...........
в телекоме принято 8 разрядов с компрессором - экспандером........... Если подключить телекомовский альфа-кодек.............
можно поробовать ЦАПу добавить разрядности через oversampling ..........
Сейчас человек слушает трансляцию в наушниках на максимальной громкости с выхода микшера и счастлив как никто... а вы про "50 % это не регулировка"
Тоже идея... Но получается что на 2 независимых канала - нужно будет 8 ШИМ выходов... есть ли столько в моем проце???pixar писал(а):можно выдавать через 4 канала ШИМа, с фиксированными аттенюаторами. включать только один канал
Попробую пока так как я изначально задумал, а если уже не получится, буду остальные варианты рассматривать...
Re: Помогите реализовать регулятор громкости...
Человеческое ухо не линейно (грубо - логарифмическая зависимость). Ради эксперемента, возмите аудиофайл pcm-формата, поделите все значения на два и послушайте исходный файл и модифицированный (естественно на одном и том же уровне громкости).shads писал(а): Сейчас человек слушает трансляцию в наушниках на максимальной громкости с выхода микшера и счастлив как никто... а вы про "50 % это не регулировка"
А у слабослышащих все еще хуже может быть - они вообще могут не различить изменение громкости в приведенном выше примере.
Re: Помогите реализовать регулятор громкости...
Ну и что я услышу... что поделенный файл стал звучать громче чем не поделенный ?????viiv писал(а):Человеческое ухо не линейно (грубо - логарифмическая зависимость). Ради эксперемента, возмите аудиофайл pcm-формата, поделите все значения на два и послушайте исходный файл и модифицированный (естественно на одном и том же уровне громкости).
Что вы прицепились к нелинейности... ясный пень что чувствительность уха не линейна... цифры которые я привел выше - привел как пример... реальные границы диапазонов громкости можно будет подобрать на слух...
И что страшного произойдет если они не различат изменения громкости ???viiv писал(а):А у слабослышащих все еще хуже может быть - они вообще могут не различить изменение громкости в приведенном выше примере.
Задача состоит не в том, чтобы слабо слышащий балдел от того что он различает изменения громкости при переключении уровней...
А задача состоит в том, чтобы для совсем глухого человека дать возможность наушникам работать на максимальной мощности...
А для нормально слышащего человека иметь возможность уменьшить мощность до приемлемого комфортного уровня...
В итоге под любой деффект слуха можно будет примерно отрегулировать уровень в наушниках... либо выдав максимум на наушники либо уменьшив громкость до приемлемого комфортного уровня...
Re: Помогите реализовать регулятор громкости...
Ты себя к кому относишь??? Ты вообще слышишь... что тебе другие говорят... или просто тупо пишешь своё???shads писал(а): А задача состоит в том, чтобы для совсем глухого человека дать возможность наушникам работать на максимальной мощности...
А для нормально слышащего человека иметь возможность уменьшить мощность до приемлемого комфортного уровня...
"Я не даю готовых решений, я заставляю думать!"(С)
Re: Помогите реализовать регулятор громкости...
HHIMERA, однозначно, как местное большинство - абыкакработало 
Re: Помогите реализовать регулятор громкости...
shads писал(а): Что вы прицепились к нелинейности... ясный пень что чувствительность уха не линейна... цифры которые я привел выше - привел как пример... реальные границы диапазонов громкости можно будет подобрать на слух...
Для какой категории Вы собираетесь "подобрать на слух"? Или в указанное "общественное место" ходят люди с одинаковой степенью тугоухости? Тогда другое дело, но в этом случае регулятор громкости не нужен.Выделяют 4 степени тугоухости и глухоту:
§ I степень – 26-40 дБ;
§ II степень – 41-55 дБ;
§ III степень – 56-70 дБ;
§ IV степень – 71-90 дБ;
§ Глухота – более 90 дБ.
Диапазон для слабослышащих 64dB!!! Понимаете, что такое 64dB?
Вот на эту цифру и надо ориентироваться. ЦАП Вашего микроконтроллера без внешних регуляторов не позволяет решить задачу (ну или Вы задачу не точно описали). А если есть внешний регулятор, то и АЦП-ЦАП Вашего микроконтроллера не нужен (опять же, исходя из данной Вами задачи).
Re: Помогите реализовать регулятор громкости...
есть такие люди , которые что-то спросят и ловят вполне бесплатный ответ .HHIMERA писал(а):Ты себя к кому относишь??? Ты вообще слышишь... что тебе другие говорят... или просто тупо пишешь своё???
есть такие люди , с которых проще запросить ТЗ под роспись и озвучить цену работы .
Re: Помогите реализовать регулятор громкости...
Спасибо за раскладочку...viiv писал(а):Выделяют 4 степени тугоухости и глухоту:
§ I степень – 26-40 дБ;
§ II степень – 41-55 дБ;
§ III степень – 56-70 дБ;
§ IV степень – 71-90 дБ;
§ Глухота – более 90 дБ.
Именно... я изначально чуть не правильно озвучил свои хотелки...viiv писал(а):или Вы задачу не точно описали
Конечно же я не собираюсь делать озвучку для всех вариантов... обычно это пожилые люди, пользующиес слуховым аппаратом... думаю это III степень максимум...
Да и то, если кому то будет не хватать громкости - это не мои проблемы... тут никаких жестких требований нет...
IV и V степени - это конечно крайности...
Думаю если кому то надеть на уши 90 дБ, то просто башка начнет трещать от тряски))) или все таки существуют звуковые системы для таких степеней?
Последний раз редактировалось shads Ср янв 20, 2016 17:58:23, всего редактировалось 3 раза.
Re: Помогите реализовать регулятор громкости...
А я честно говоря не понимаю тех которые клянчат работу на форуме...pixar писал(а): есть такие люди , с которых проще запросить ТЗ под роспись и озвучить цену работы .
(Хотя не буду отрицать, что возможно ктото на этом и живет...)
Во первых на обычных бытовых "контрактах" (если они и существуют) вряд ли заработаешь на жизнь...
Честно говоря мне смешно, когда какой нибудь студентик просит чтото наваять, а к нему выстраивается очередь из (наверное безработных) программеров... мечтающих сорвать с него, как будто студент завтра на этом проекте заработает сумасшедшие деньги...
Во вторых, серьезные заказчики (на ком действительно можно что то заработать) не станут искать на форуме программистов...
В третьих - если они и ищут на форуме, то там будет такой жесткий отбор желающих, что подойдут только те кандидатуры, которые и так без дела не сидят, и по форумам не шатаются...


