Всё началось с лени.
А точнее, с Веги 50у-122с, доставшейся в наследство вместе с акустикой Электроника 25ас-033. И вначале всё было хорошо. А потом, споткнувшись за провод, был убит ноут. После этого, в Веге появился BT модуль, а сама Вега научилась включаться по подключению устройств к этому модулю.
Время шло и качества стало мало. Тогда был проведён Веге первый апгрейд. Потом второй. Потом акустике. Потом… Потом пришло понимание что надо делать что-то качественно новое. Ну а когда Вега стала хрипеть и замаячила перспектива полной перепайки всех электролитов…
И началось строительство…
Кому лень читать технические подробности и хочется просто посмотреть как это работает — можно прокрутить в конец, там сокращённая видео версия для моего канала.
Это не рассказ про то, как спаять такое. Это не инструкция: не будет схем, не будет описания настройки итд.
Это будет рассказ, про идеи и технологии, которые я применяю в своих устройствах.
Идеи, которые я воплотил сам, и которые, может, захотите воплотить вы.
Итак.
Базовая идея. Хочу усилитель. Но не хочу путаться в проводах. Это и не удобно и не столь качественно как хотелось бы. Нужно некое беспроводное решение.
Вторая идея. Я не хочу куда-то там бегать и тыкать кнопочки. Особенно если я хочу послушать релаксирующую музыку перед сном. Да, я ленивая скотина, я хочу лечь на диван, нажать кнопку питания ноутбука и что б всё включилось и заиграло само. А когда я буду засыпать и ноут выключится скриптом — выключилось вслед за ним.
Третья идея. Таймеры. Иначе говоря — на выходных я ноут на ночь не выключаю. А это значит, что если реализовано просто включение питания по блютусу, то так всю ночь и будет включён усилитель. Как-то не круто, учитывая что во-первых снашиваются фильтрующие конденсаторы. А во-вторых, оно банально греется и пожирает электричество.
Идея четвёртая. Хочу индикатор. Большой. Красивый. Индикатор. И тут я нашёл ИН-33, на радостях аж написав предыдущую статью. Но не сказать что он большой, поэтому была найдена хитрость с плёночкой от монитора, которая визуально «раздваивает» шкалу.
В итоге, по обдумыванию всех идей, я пришёл к тому, что надо делать новый усилитель и с нуля.
Был заказан блютус модуль с apt-x:
Были заказаны готовые усилители AB класса:
Был куплен у деда шикарный ТОР на 200 Вт всего за 1000 руб. с готовыми отводами 2х26в и 2х12в. А вот остальное уже делал сам.
Корпус.
Корпус делался 300х300мм, низ — дюралюминиевая пластина толщиной 5мм на неё крепится П образно согнутый уголок 50*100*5мм, к которому и крепятся транзисторы через силиконовые прокладки и комплекта, а сверху всё стягивается болтами и планкой 20*6мм
Лицевая панель — минеральное стекло. Стекло бралось с фото рамки за 300 руб и подрезалось в нужный размер обычным стеклорезом.
Затем заказывалась шелкография. Причём, рекомендую не кроить на краске и таки сделать с краской по стеклу. Иначе оно рано или поздно отслоится и будет жаль.
Причём, рекомендую именно шелкографию, потому что прямая печать фигня. Поясню:
Прямая печать на просвет (другой проект)
А вот шелкография на просвет:
Отверстие под регулятор громкости просто сверлится сверлом по стеклу.
Причём, если делаете это в первый раз, рекомендую таки потренироваться. Это не так быстро и просто как кажется.
Затем сенсоры. На стекло наклеивался белый двойной скотч. Затем бралась медная фольга, с одной стороны заклеивалась скотчем, с другой ЛУТом наносился рисунок и травилось «насквозь».
Получалось вот так:
Затем фольга снималась, всё отмывалось и получалось:
Это готовые заготовки для сенсоров. К ним паялись отводы и вся конструкция лепилась на лицевую панель.
Важно точное совмещение. Потому что всё должно работать на просвет.
Далее индикатор. Для «расширения» шкалы применялась призматическая подложка от матрицы монитора. А что б она точно легла, клеилась суперклеем. Клея не жалеть!
Важно выгнать все пузыри и накладывать плёнку много шире самого индикатора, иначе клей перетечёт на обратную сторону и всё испортит.
Ну и надо учитывать, что «раздваивает» эта плёнка только в одной плоскости, так что важно выдержать строгую горизонтальность призм плёнки.
На этом, если всё подсветить изнутри, получится как-то так:
Но вот сделать ровную подсветку символов не так просто, как может показаться.
Дело в том, что если просто взять светодиод и начать светить, то свет засвечивает и часть иконки. Смотрится некрасиво. Причём, если в полутьме ещё может казаться что всё не плохо, то в полной темноте будет масса косяков засветки. Раздражало.
Выход такой:
Бралась фольга, скручивалась в конус:
Затем разогревался термоклей. Утюг мне для этого дюже понравился, хотя жена не разделяла моей радости…
Затем заливалось и обрезалось по размеру подсвечиваемой иконки, с обратной стороны сверлилось углубление под светодиод.
Ну и приклеивалось. Я клеил суперклеем. Но потом подумалось, что лучше б просто разогреть клей конуса и прям на него и приклеить.
А небольшие пробелы между фольгой конуса и фольгой иконки, заклеивались замазкой и закрашивались. Замазка — что б краска не затекла между светофильтром и сенсором. После установки светодиодов иконок — и они с торца закрашивались. Только так я смог полностью избавиться от сторонних заветов.
По схеме.
Начну с блоков питания. Их 2.
Первый — силовой блок питания, не стабилизирован по напряжению. Собран по схеме с 2-мя отдельными диодными мостами, в каждом плече по 33в постоянки и 3х10 000 мкФ блок электролитов, зашунтированных 0.33мкФ плёнкой и 1мкФ керамикой. Так же, и сами обмотки трансформатора зашунтированы 1мкф керамикой.
Силовая разводка: от трансформатора до мостов 2.5мм^2, от мостов до блоков конденсаторов — 4мм^2, от конденсаторных блоков до план усилителей 6мм^2.
Второй — дежурный. Плату блютус модуля надо постоянно питать, что б к ней всегда можно было подключиться. Ну а что б понимать что к усилителю подключились и включить основное питание — питать надо и плату контроллера. Поэтому, дежурный блок маломощный и импульсный. Взята просто зарядка от асуса еее. Причём, аналоговая часть, а именно блютус модуль, запитан через дополнительный линейный стабилизатор.
Платы усилителей тоже пришлось полностью перепропаивать. Одна плата была ещё ничего, но вот вторая спаяна была просто похабно. + дополнительно пролудил силовые дорожки.
В качестве центрального «мозга» был выбран STM32. В принципе, я мог бы использовать и ардуину на AVRке, но у мег во-первых мало ног, а во-вторых всего один АЦП, из-за чего плохо работает индикатор. Дело в том, что пока оцифровываем один канал — звук меняется в обоих, и к моменту оцифровки второго, разница уже достаточно велика. Это бросается в глаза и этого хотелось избежать. Поэтому и STM32.
Схема индикатора мало чем отличается от схемы из предыдущей статьи (кстати, похоже никто так и не заметил ошибку в схеме, ну да ладно).
Управление.
Нужны были сенсорные клавиши. Порывшись в статьях про сенсорику для STM32, нашёл несколько вариантов, от которых был не в восторге.
Во-первых я ничего не понял )))
Во-вторых, мне надо было 5 кнопок. Да ещё и что б работало оно через 3-х мм минеральное стекло.
В итоге, пришлось вкурить в принцип, немного поэкспериментировать и получил следующий код:
//Чуствительность
#define SenseMinLevel 100
//Пины
#define ButZ GPIOA, GPIO_Pin_10
#define BtnOn GPIOB, GPIO_Pin_15
#define BtnOff GPIOA, GPIO_Pin_8
#define BtnAuto GPIOA, GPIO_Pin_9
#define BtnBT GPIOA, GPIO_Pin_3
#define BtnRCA GPIOA, GPIO_Pin_2
//Значение автокалиброки
volatile uint16_t CalibrateTimeB1 = 0;
volatile uint16_t CalibrateTimeB2 = 0;
volatile uint16_t CalibrateTimeB3 = 0;
volatile uint16_t CalibrateTimeB4 = 0;
volatile uint16_t CalibrateTimeB5 = 0;
//Возвращает код нажатой кнопки
uint8_t SenseButton(void)
{
uint16_t m;
uint16_t b1 = 0; uint16_t b2 = 0; uint16_t b3 = 0; uint16_t b4 = 0; uint16_t b5 = 0;
for (m = 0; m < 21; m++)
{
b1 += scan_sense_pin(BtnOff);
b2 += scan_sense_pin(BtnOn);
b3 += scan_sense_pin(BtnAuto);
b4 += scan_sense_pin(BtnBT);
b5 += scan_sense_pin(BtnRCA);
}
if (CalibrateTimeB1 == 0)
{
CalibrateTimeB1 = b1;
CalibrateTimeB2 = b2;
CalibrateTimeB3 = b3;
CalibrateTimeB4 = b4;
CalibrateTimeB5 = b5;
}
else
{
if (b1 > CalibrateTimeB1) b1 -= CalibrateTimeB1; else b1 = 0;
if (b2 > CalibrateTimeB2) b2 -= CalibrateTimeB2; else b2 = 0;
if (b3 > CalibrateTimeB3) b3 -= CalibrateTimeB3; else b3 = 0;
if (b4 > CalibrateTimeB4) b4 -= CalibrateTimeB4; else b4 = 0;
if (b5 > CalibrateTimeB5) b5 -= CalibrateTimeB5; else b5 = 0;
}
//Сравнение с калибровочными уровнями
if (b1 > SenseMinLevel || b2 > SenseMinLevel || b3 > SenseMinLevel || b4 > SenseMinLevel || b5 > SenseMinLevel)
{
if (b1 > b2 && b1 > b3 && b1 > b4 && b1 > b5)
return 1;
if (b2 > b1 && b2 > b3 && b2 > b4 && b2 > b5)
return 2;
if (b3 > b1 && b3 > b2 && b3 > b4 && b3 > b5)
return 3;
if (b4 > b1 && b4 > b3 && b4 > b2 && b4 > b5)
return 4;
if (b5 > b1 && b5 > b3 && b5 > b4 && b5 > b2)
return 5;
}
return 0;
}
uint16_t scan_sense_pin(GPIO_TypeDef* port, uint16_t pin)
{
uint16_t ret = 0;
GPIO_ResetBits(ButZ);
delay_t(1800);
GPIO_SetBits(ButZ);
while (!GPIO_ReadInputDataBit(port, pin) && ret < 500)
{
ret++;
}
GPIO_ResetBits(ButZ);
return ret;
}
void delay_t(uint32_t ms) {
// nCount=(RCC_Clocks.HCLK_Frequency/1000)*ms;
// for (; nCount!=0; nCount--);
for (; ms!=0; ms--);
}
Где — ButZ — затравочный пин, в режиме GPIO_Mode_Out_PP, остальные — считывающие в режиме GPIO_Mode_IN_FLOATING
Идея проста. Все считывающие сенсоры подключены к затравочному пину через резистор на 3МОм. Далее даём единицу на затравочный пин и смотрим — как долго будет заряжаться до логической единицы пин сенсора. Если дольше калибровочного времени — значит заряжать приходится и палец, к сенсору прислонённый. А значит — есть прикосновение к сенсору.
Режимы работы
Их три.
Первый — Просто выключено. И всё.
Второй режим — постоянного включения. В этом случае усилитель всегда работает. Правда, в случае простоя без звука, через минуту выключается индикатор уровня.
Третий — «А». А вот это — главный режим, автоматический. Если выбран блютус вход, то усилитель включается и выключается по подключению источника звука. Но если устройство подключилось и не играет — через 15 минут усилитель перейдёт в режим ожидания звука. И, конечно, если звука нет в течении минуты — выключается индикатор уровня.
Причём, не важно, какой аудио вход используется — будь то блютус или внешний RCA вход.
В общем-то остальное всё стандартно. Ручка громкости просто переменный резистор. Просто потому что основной регулятор громкости предполагается на ноутбуке и к усилителю для этого никто ходить не будет.
Результат — красиво. И не плохо звучит!
Видео:
Автор: Skiffrusspb