Сегодня я поделюсь с вами несколькими историями о новой колонке. Вы узнаете про одно из самых необычных применений фазоинвертора, про то, как мы достаточно комично сушили фотополимерные модели в домашних условиях. Расскажу, где спрятан сервисный разъём и как работает управление просмотром ТВ через ещё одно новое устройство — Модуль. Будут и другие детали, которые показались нам интересными.
С чего всё начиналось
В марте 2021 года мы впервые раскрыли число проданных колонок с Алисой. На тот момент их было уже более 1,3 миллиона. Существенный вклад в это число внесла Станция Мини. Её без лишней скромности можно назвать самой народной умной колонкой на российском рынке. Компактные габариты, невысокая цена, отзывчивый голосовой помощник, крепкое сообщество пользователей. Поэтому неудивительно, что ещё в начале прошлого года мы приступили к работе над обновлённой версией. И почти сразу оказались на развилке.
Любая разработка начинается с анализа потребностей. Мы видели явный запрос от пользователей Мини — получить более мощный звук. Проблема в том, что такие улучшения заметно влияют и на цену устройства, и на его габариты. Что делать: пойти на небольшие шаги, сохранив прежнюю или близкую к ней цену, или на значительные доработки со всеми вытекающими последствиями? Нам удалось радикально решить эту дилемму — сделать две модели.
В июле мы запустили в продажу Станцию Лайт. Она заняла нишу самых доступных умных колонок с Алисой — с ценой даже ниже, чем у оригинальной Мини. При этом подросла мощность звука (5 Вт вместо 3 Вт) и появилась поддержка частоты 5 ГГц для Wi-Fi-соединения.
Идея двух моделей позволила нам смелее подойти к проекту новой Мини. Мы стали делать устройство, зная, что оно уже не будет самым доступным в линейке, а взамен на возросшую цену мы предложим более дорогие и сложные акустические решения — дающие большую мощность звука и приближенные к старшим моделям. С этого момента и начинаются наши истории.
История про звук
Самое очевидное изменение — новый динамик. В оригинальной Станции Мини использовался трёхваттный динамик диаметром 1,5 дюйма. Мы его подобрали по каталогу доступных компонентов: так проще и быстрее, если нет высоких требований к звуку. А вот для новой Мини приоритеты пересмотрели, поэтому динамик проектировали специально под устройство: вы не найдёте на рынке точную копию. Он стал чуть больше (1,75 дюйма), но мощнее сразу в три раза. Даже магнит для динамика мы взяли более дорогой — неодимовый, а не ферритовый, хотя в подобных бытовых девайсах обычно экономят и не заморачиваются.
Следующий очевидный шаг — более высококлассный усилитель. В новой колонке тот же самый усилитель Hi-Fi-класса, что и в нашем флагмане — Станции Макс, с той разницей, что в Максе трёхполосный звук, поэтому там два таких усилителя.
Для питания устройства используется напряжение 15 вольт — втрое больше, чем в оригинале. Это позволило нам обеспечить оптимальный режим работы усилителя, уменьшить THD и получить запас по выходной мощности. В то же время мы вписались в требования стандарта по электромагнитной совместимости.
И именно чтобы добиться напряжения 15 вольт, мы приняли сложное решение (за которое нас точно будут ругать на Хабре!) — отказались от разъёма USB Type-C в пользу классического DC jack. Type-C без поддержки протокола Power Delivery (PD) не может корректно обеспечить напряжение выше 5 вольт, а добавление PD заметно влияет на цену.
При этом наличие порта Type-C давало бы ложное ощущение совместимости. Люди бы пробовали питать колонку от произвольных блоков питания — большинство из которых PD не поддерживают — и получали непредсказуемые эффекты, для обработки которых пришлось бы усложнить схемотехнику и написать довольно много кода. Так что мы решили не использовать в Мини универсальный с виду порт, который не можем сделать по-настоящему универсальным.
Но вернёмся к звуку. В акустике есть простой принцип: чем больше акустическая камера, тем проще достичь хорошего звука — вот почему качественные аудиоустройства редко бывают компактных размеров. По этой причине и новая Мини стала немного больше — как бы нам ни хотелось, получить заметно более качественный и мощный звук без увеличения размеров не получалось.
Давайте посмотрим на акустическую схему. Динамик установлен в середине Станции и направлен вниз. Выходя из него, звук попадает на акустическую линзу, которая служит дном колонки. Роль линзы в том, чтобы рассеивать идущий вниз из динамика звук горизонтально во все стороны. Качество звука во многом зависит именно от этих компонентов, а не только от динамика. И здесь начинаются не самые очевидные решения. Например, мы поняли, что простая конусообразная форма центральной части линзы хорошо рассеивает звук, но при этом на него негативно влияют воздушные карманы вокруг конуса. По итогам экспериментов получилось не совсем обычная форма — середина уже не конусообразная, а гораздо более пологая: это обеспечивает более свободное прохождение воздуха.
Кроме того, крепления динамика теперь расположены не внутри, а снаружи акустической камеры, чтобы они тоже не влияли на качество звука.
Стенки у основания корпуса — там, где выходит звук, — решётчатые. Отдельной неожиданной задачей для нас стал долгий подбор формы и размера отверстий решётки. Слишком маленькие отверстия мешают прохождению звука и портят общее качество звучания. Слишком большие — приводят к тому, что акустическая ткань, натянутая поверх корпуса устройства, или провисает сразу, или со временем теряет форму под действием потоков воздуха через решётку — в наших aging-тестах мы поймали такой эффект. После множества итераций мы в конце концов нашли ту оптимальную форму решётки, которая показана на изображении.
Одно из часто встречающихся решений для расширения нижней части звукового диапазона (увеличения басовой составляющей, что принципиально важно в таких компактных устройствах) — фазоинвертор. Самый простой и часто применяемый фазоинвертор — это трубка в составе акустической системы, длина и площадь сечения которой подбираются таким образом, чтобы собственная резонансная частота корпуса вместе со встроенным в него фазоинвертором была меньше резонансной частоты динамика. Получается, что мы «подхватываем» хвост низкочастотного диапазона и значительно повышаем общий КПД системы. Идея выглядит просто, но есть тысяча нюансов в её реализации. Например, классическая трубка нам практически не помогала — у неё получалась слишком малая длина, а чем длина больше, тем более низкие частоты можно воспроизвести. Относительно быстро у нас родилась идея кругового фазоинвертора. Грубо говоря — трубки, проложенной вдоль стенок корпуса: один конец выходит внутрь акустической камеры, другой — наружу. Но потом ушло два месяца на расчёты и эксперименты, чтобы подобрать оптимальную длину, сечение, а главное — вписать это в конструкцию устройства вместе с основной платой и платой LED-экрана.
Фазоинвертор без крышки
В дизайне фазоинверторов важна конфигурация входного и выходного отверстий — обратите внимание на придуманную нами форму. Стенки в этих местах не должны содержать стыков, а крепления и другие компоненты потребовалось расположить так, чтобы они даже частично не перекрывали потоки воздуха через трубку. Кстати, у фазоинвертора оказалось ещё одно неожиданно полезное применение — читайте об этом чуть ниже.
Мощный динамик и усилитель, дизайн акустической линзы, решёток и акустической камеры в целом, а также нестандартный фазоинвертор — за счёт этих слагаемых нам удалось поднять качество звука новой Мини, и мы надеемся, что пользователи это заметят.
История про охлаждение
Эта история — снова про габариты корпуса против мощности звука. Да, габариты по сравнению с оригинальной Мини подросли, но совсем незначительно, в то же время звуковая мощность увеличилась в три раза. А чем больше и мощнее динамик, тем сильнее он греется (у любых динамиков очень невысокий КПД превращения подводимой энергии питания в звуковые волны — бóльшая часть этой энергии тратится на тепло). И компоненты платы тоже нагреваются — в усилителе нас спасает его высокоэффективный класс и автовыключение при простое, но при проигрывании музыки 10-15% мощности неизбежно превращаются в тепло. Греется многое: процессор, потому что на нём постоянно «крутится» механизм голосовой активации (чтобы колонка реагировала на слово «Алиса»), модуль Wi-Fi и преобразователи DC-DC, благодаря которым вырабатываются все нужные напряжения и у которых хоть и высокий, но не стопроцентный КПД.
Чтобы не вызывать негативных ощущений, когда пользователь берёт устройство в руки или регулирует громкость сенсорными кнопками, мы добавили металлический радиатор. Хотя, если быть совсем корректным, то это не радиатор, а теплораспределительная пластина — прямого излучения тепла от неё не происходит. Пластина установлена в верхней части колонки: сверху плотно прилегает к плате, а снизу — к фазоинвертору. Причём если она лишь более равномерно распределяет температуру по плате, то наличие фазоинвертора позволяет постепенно отводить тепло. Сначала — на саму трубку, а затем и наружу, поскольку мембрана динамика колеблется вверх-вниз — напомню, что динамик расположен вертикально. При обратном ходе создаваемым разряжением мембрана «выталкивает» воздух наружу через фазоинвертор.
Можете проделать простой эксперимент: когда колонка играет на высокой громкости, поднесите руку к выходу фазоинвертора (где он прячется под тканью, можно посмотреть на схеме выше) и вы ощутите лёгкий поток тёплого воздуха.
История про разработку в пандемию
Начальные стадии разработки новой Станции Мини во многом пришлись на первую волну пандемии весной 2020 года, когда ограничения были наиболее жёсткими — помните, как в Москве нужно было получать пропуска для поездок? Естественно, что большинство сотрудников Яндекса, включая и команду умных устройств, работали из дома. Сломалось межкомандное взаимодействие — одно дело сидеть за соседними столами в офисе, другое — на самоизоляции по домам, ещё и без наработанной привычки удалённых коммуникаций. Но почему это вдвойне проблемно в случае с hardware-разработкой?
Дело в том, что у разных участников команды разные компетенции, и только благодаря командной работе можно быстро продвигаться в разработке.
В нашем случае, поскольку мы сильно завязаны на акустику устройства, проработка начинается со звука — акустический инженер, используя полученные от инженера-конструктора предварительные 3D-модели, придумывает, как заставить будущую колонку звучать максимально хорошо. Это множество расчётов и экспериментов (помните рассказ про фазоинвертор выше?), в результате рождается какой-то вариант внутренней конструкции. Получив его, инженер-конструктор делает первую оптимизацию — смотрит, насколько сложно это производить массово. Вполне может оказаться, что нужно вернуться на шаг назад, потому что придуманная конструкция оказалась слишком сложной: могут быть детали, которые легко напечатать на 3D-принтере, но нереально «пролить» в термопластавтомате на фабрике. Параллельно конструктор работает с инженерами-электронщиками — они совместно стараются решить, как оптимально расположить схемотехнику на платах и скомпоновать их в корпусе, учитывая акустику, охлаждение и потенциальную сложность последующей сборки.
Предположим, проблемы конструкции более-менее решены. В этот момент мы начинаем собирать прототипы целиком, вместе с платами. Соответственно, платы надо паять, а устройства — собирать воедино. Собранный девайс должен начать оживать — для него требуется прошивка, значит, к процессу подключаются программисты. Подробнее об этапах разработки можно почитать в одной из наших предыдущих статей, а ещё подробнее мы описывали процесс в одном из стримов Я.Железа:
Если собрать всё сказанное воедино, станет понятно: разработка — это множество итераций, требующих постоянных обсуждений и взаимодействий внутри команды, «мозговых штурмов» для сложных случаев, а также изготовления и тестирования прототипов.
Чтобы быстро изготавливать прототипы, для сборки печатных плат нужен монтажник и склад компонентов, а для корпусов — 3D-принтер и фрезерный станок. Всё оборудование вместе с деталями всегда находилось в офисе, где к нему был доступ у каждого, а тут пришлось как-то разделить его по участникам разработки. Конечно, любой электронщик в нашей hardware-команде вполне прилично паяет, но если этим заниматься постоянно, то напрашивается аналогия с забиванием гвоздей микроскопом — можно, но очень неэффективно. С монтажом выход был найден: склад компонентов по большей части остался в офисе, а для одного из монтажников выписали спецпропуск, обеспечивающий передвижение по городу и доступ в офис по необходимости.
Но что душой кривить — было больно: с началом пандемии летевший на полном ходу поезд разработки как будто врезался в невидимую стену.
Помогли коллеги из Яндекс Go: мы постоянно стали обмениваться образцами и компонентами, благо московский трафик был в разы свободнее обычного. Как-то водитель такси, забирая в четвёртый раз за день от одного и того же отправителя коробочки и пакетики для развоза, поинтересовался, уж не наркотики ли мы передаём.
Недостаток оборудования (не поставишь же каждому по дорогущему 3D-принтеру с необходимыми аксессуарами!) временами приходилось компенсировать подручными средствами. Например, один из разработчиков вместо «сушилки» сырых, только что напечатанных на SLA-принтере 3D-моделей использовал кастрюлю. Изнутри он обклеил её крышку лентой из ультрафиолетовых светодиодов: модели сушатся не только путём нагрева, но и за счёт специального освещения.
История про сервисный разъём — угадаете, где он спрятан?
Ещё один популярный вариант среди производителей устройств — спрятать дополнительный разъём под незаметной резиновой крышкой где-нибудь на корпусе, например в районе днища. Но чем меньше механических манипуляций требуется для проверки на конвейере, тем эффективнее этот процесс: тестировать лучше финально собранное устройство.
Мы решили, что сервисным разъёмом будет мини-джек 3,5 мм, основное предназначение которого — вывод звука на колонки или наушники. Через него вполне возможно передавать данные, просто он редко используется для передачи чего-либо, кроме звука. Но мы здесь не первопроходцы: скажем, последние iPod shuffle от Apple синхронизировались с компьютером именно через мини-джек.
Небольшие накладные расходы себя оправдали: теперь не нужно ничего отклеивать и приклеивать назад.
История про LED-экран
Спереди у новой Станции Мини, за тканью, есть экран — почти как у Станции Макс. Он выполнен проще, но мы всё равно постарались сделать его визуально интересным. Светодиоды образуют числовое табло, на котором показывается время, температура за окном или таймер — в зависимости от запросов к Алисе. В правом верхнем углу табло есть ещё один круглый светящийся сегмент — знак градуса для показа погоды, который также горит при включённом будильнике.
С одной стороны, в Станции Макс мы уже решали задачу размещения яркого белого экрана за тканью — и подробно рассказывали об этом на Хабре. Дисплей флагманской колонки получил множество позитивных отзывов — как раз потому, что он полюбился пользователям, мы и решили, что обязательно найдём способ добавить что-то похожее в младшую версию.
С другой стороны, адаптация решения под небольшую колонку потребовала усилий. Светодиоды в Станции Мини освещают сегменты табло — это не экран из точек, как в Максе. Ткань тоже другая, с более частыми ячейками: сначала мы попробовали использовать такую же ткань, как в старшей колонке, но на маленьком устройстве она смотрелась как «кольчуга».
Поэтому эксперименты по размещению светодиодов практически начались заново. Мы по-прежнему используем конструкцию собственной разработки: с узким основанием диода и широкой внешней частью, чтобы свечение немного рассеивалось и границы между сегментами чисел были менее заметны. Этому же эффекту способствует рассеивающая плёнка, которая, напомню, расположена под тканью. Но всё зависит от того, насколько глубоко внутрь корпуса поместить экран и какую выбрать толщину рассеивателя. При слишком глубоком расположении картинка смотрелась равномернее, но падала яркость, а плёнка могла вызвать боковую утечку света. Другая по сравнению со Станцией Макс ткань тоже накладывала ограничения: на более частой сетке легче увидеть огрехи изображения, так что нужно было добиться большей чёткости. Кроме того, под тканями разных цветов (а новая Мини, напомню, доступна в четырёх цветах) цифры смотрелись по-разному, при этом конфигурацию дисплея нужно было сделать одинаковой — придумывать разные конфигурации было бы неразумно с точки зрения простоты производства. Мы постарались найти баланс во всех этих вопросах.
У экрана есть ещё один секрет. Хотя Станцию Мини обычно ставят ниже уровня глаз, людям чаще будет казаться, что экран смотрит прямо на них: мы сделали нижние сегменты цифр чуть шире верхних и тем самым немного снизили эффект параллакса.
Табло по-прежнему лишь дополняет голосовые возможности колонки. Для тех, кому отсутствие дисплея в Станции Мини не казалось зазорным и хотелось только более мощного звука, мы подготовили альтернативу — новую версию со всеми улучшениями, но без дисплея. Она на тысячу рублей дешевле версии с экраном.
История про верхнюю панель
Громкость теперь можно менять кнопками — или, как обычно, попросив Алису. Мы добавили кнопки по просьбам владельцев оригинальной Мини и ожидаем, что люди будут довольно часто управлять устройством с их помощью. Во-первых, маленькие колонки обычно ставят в такие места, до которых легко дотянуться рукой, например на кухонный или рабочий стол. Во-вторых, Станцией Мини часто пользуются дети. Ориентируясь на непрерывное (и не обязательно аккуратное) использование кнопок, мы сделали их сенсорными, а заодно и более лаконичными по своей конструкции внутри корпуса. В конце концов, это компактное устройство, в котором каждый миллиметр на счету.
Между кнопками расположен логотип Алисы, но его можно увидеть только во время диалога с помощником. В остальное время, даже если приглядеться, очертания лого на пластике не видны.
Для достижения такого эффекта мы применили технологию In-Mold Labeling (декорирование внутри формы). Изготавливается многослойная плёнка с вырезом, повторяющим очертания логотипа. Эта плёнка помещается в пресс-форму — в неё же под давлением отливается прозрачный пластик. Если получившуюся поверхность не освещать снизу, она кажется однородной. Кстати, под логотипом скрывается ещё одна сенсорная клавиша: Play/Pause. Механическим остался только переключатель Mute на задней стороне, который по-прежнему физически отключает микрофоны.
История про Модуль с Яндекс.ТВ, тандем и стереопару
Вместе с обновлённой Станцией Мини мы выпустили Модуль — он подключается по HDMI к телевизору и позволяет смотреть контент из КиноПоиска и других источников. Оба новых устройства дополняют экосистему, которую мы строим с целью сделать каждый девайс удобнее. Модуль — отличный пример: если он у вас тоже есть и вы настроили режим под названием тандем, то Алиса на Станции Мини сможет, например, включить для вас сериал на большом экране через Модуль. Чтобы описать, как работает тандем, сначала надо рассказать про софтверную часть устройств. Схематично любую колонку Яндекса можно представить так:
Приложение для каждого устройства включает в себя два компонента:
- Девайсо-специфичный код, который в случае Мини отвечает за работу с усилителем, сенсорными кнопками, LED-экраном и так далее.
- IO SDK — одинаковый для всех Станций и Модуля. Именно IO SDK обменивается сигналами с облачной инсталляцией Алисы — куда также можно подключиться из мобильного приложения Яндекс на телефоне:
Модуль устроен похоже:
Операционная система Модуля основана на Android Open Source Project (AOSP). В Модуле больше приложений, например КиноПоиск и лончер (домашний экран телевизора). Компонентом одного из приложений служит тот же самый IO SDK.
Когда вы в мобильном приложении Яндекс настраиваете тандем, бэкенд отправляет в IO SDK Станции и Модуля конфигурационные сигналы о том, что Станция теперь управляет Модулем. Это меняет логику работы колонки: если попросить включить фильм, она уже не ответит, что ей нужен экран. Вместо этого Станция локально найдёт Модуль и отправит ему управляющий сигнал о запуске фильма:
Мой коллега Иван Калинин придумал имя для протокола локального общения между двумя устройствами: GLAGOL. Это рекурсивный акроним: GLAGOL is Lookup And Governance Over LAN («поиск и управление по локальной сети»). Он основан на мультикастном DNS и механизме веб-сокетов. Существуют аналоги GLAGOL, но реализация для Станций и Модуля целиком написана в Яндексе.
Чтобы произвольное устройство не могло таким же образом подключиться к Модулю (и, например, перехватить какие-нибудь персональные данные), IO SDK Модуля авторизовывает клиента и убеждается, что управляющим сигналам от данной колонки можно доверять, что это безопасно.
В ближайшие недели мы откроем для всех ещё одну интересную возможность — объединять две Станции Мини в стереопару. Функция уже доступна, но пока в бета-режиме. Она дополняет технологию мультирум, благодаря которой одну и ту же музыку легко запустить сразу на нескольких устройствах (работает с момента выпуска Станции Макс). Стереопара отличается от мультирума тем, что звук действительно разделяется между колонками на правый и левый каналы, создавая более объёмное звучание. Принцип и технологии здесь те же, что и при общении между Станцией и Модулем в тандеме. Новый режим даже настраивается там же — в приложении Яндекс, только конфигурация немного иная. Например, когда стереопара активна, можно управлять воспроизведением при помощи кнопок на любой колонке. А, скажем, микрофоны работают только на одной из них, чтобы вторая вас не слышала и голосовые команды не дублировались.
История про «чипагеддон», или Как мы научились выживать в условиях постоянного дефицита полупроводников
Безусловно, нашу работу осложнили ограничения весны 2020 года, об этом я писал выше. Но гораздо более серьёзный вызов ждал нас впереди — на Хабре, наверное, нет того, кто не слышал о дефиците на рынке полупроводников, затронувшем практически все отрасли промышленности. С лёгкой руки журналистов появился термин «чипагеддон» (сhipageddon), который очень хорошо характеризует суть явления.
В качестве причин обычно называют изменения в потребительском спросе за последние полтора года, ошибки автопроизводителей в оценке рынка после первой волны ковида, торговую войну США и Китая, концентрацию 70% мирового рынка чипов на Тайване (остров, к тому же, этой весной пострадал от сильнейшей засухи) и принципиальную проблему системы «just in time». Согласно последней, предприятия держали нулевые или минимальные складские запасы комплектующих. Естественно, появляются и конспиративные теории о заговоре компаний с целью увеличения прибыли, куда же без этого. :)
Мы как крупный производитель, потребляющий миллионы чипов в год и работающий напрямую с большинством вендоров компонентов, неожиданно стали сталкиваться с нарастающей волной дефицита. Усилители, модули Wi-Fi, микросхемы конвертеров DC-DC и банальные LDO вдруг начали случайным образом исчезать. О каких-то поставках удавалось передоговориться с производителями, что-то приходилось покупать на спекулятивном рынке по ценам в пять и даже в десять раз выше. Чему-то удавалось найти замены, которые электронщики Яндекса в срочном порядке валидировали. Но в целом ситуация была очень тяжёлой, и наша объединённая московско-шеньчженьская команда закупок компонентов работала на износ и делала невероятные вещи, чтобы спасти ситуацию.
Пришлось перестраивать работу на ходу и разрабатывать ревизии, то есть варианты устройства с альтернативным набором компонентов. Казалось бы, здесь нет ничего сложного, но наш процесс разработки подразумевает тщательное тестирование выбранных деталей. Для более простых, вроде новых DC-DC, это функциональные и aging-тесты; для более сложных, таких как модуль Wi-Fi, это целый пласт работ по проверке, обязательно включающий в себя бета-тестирование внутри команды Яндекса.
В итоге основные сложности были преодолены, но выход новой Мини на рынок, к сожалению, задержался. Зато мы поняли, как перестроить процесс разработки — острота кризиса полупроводников сейчас чуть спала, но он вовсе не думает заканчиваться. Теперь мы гораздо активнее смотрим по сторонам и валидируем существенно больше потенциально подходящих компонентов, а разработку до PVT-стадии ведём в двух ветках (в массовое производство уходит та из них, компоненты для которой оказываются более доступными для поставки). Да, процесс стал ресурсозатратнее, но и мы стали гораздо устойчивее к дефициту.
Хочется верить, что все эти неочевидные со стороны сложности и наши технические решения случились не зря и пользователи заметят, как преобразилась Станция Мини. Ну а если у вас уже есть любая Станция, то рекомендую заглянуть в уютный чат сообщества.
Автор: Леонид Клюев