Pull to refresh
17
0
Send message

Как работает кнопка Mute на Яндекс Станции. Подробный разбор логики и схем

Level of difficultyMedium
Reading time7 min
Views42K

Привет! На связи Геннадий «Крэйл» Круглов из команды, которая разрабатывает аппаратную часть Яндекс Станций. С кем-то из читателей Хабра мы уже могли познакомиться в рамках мероприятий Я.Железа, где делимся опытом разработки устройств.  

Последние несколько лет мы с командой вынашивали идею публичного рассказа об устройстве отдельной взятой части наших умных колонок — кнопки Mute. Эта тема вызывает живой интерес, поскольку напрямую касается приватности. Мы часто говорили о том, что Mute отключает микрофоны физически, но как именно это происходит — не рассказывали. В итоге вопросы копились, но руки, как это обычно бывает, до статьи не доходили. Пожалуй, вернём сегодня этот должок. 

В этом посте мы расскажем о нашем основном решении для кнопки Mute. Вы увидите, что у процессора устройства нет физической возможности управлять питанием микрофонов, а значит, обойти кнопку программным способом невозможно. Мы опубликуем схемы и расскажем, как они работают. Сначала на языке, который поймут коллеги-инженеры. В конце — резюмируем простыми словами для всех. Надеюсь, будет интересно и полезно. 

Читать далее
Total votes 92: ↑88 and ↓4+108
Comments195

In RISC-V Rust

Level of difficultyMedium
Reading time16 min
Views10K

Превращаем простой пример распознавания нот из лабораторных работ Школы синтеза цифровых схем в Enterprise. Используем компилятор Rust для RISC-V микроконтроллера YRV-Plus.

Читать далее
Total votes 48: ↑48 and ↓0+48
Comments12

BLoC паттерн на простом примере

Reading time3 min
Views50K

И еще раз про BLoC на классическом примере счетчика Flutter.


Читая некоторые статьи про реактивное программирование и используя BLoC паттерн в приложениях я понимал, что чего-то не догоняю. Как обычно на все не хватает времени, но вот, выдался свободный час и силы есть — решено, напишу простейшее приложение на Flutter с паттерном BLoC.


Под катом анимашка приложения и пояснения почему я его написал его именно так. Очень интересно мнение сообщества.


image

Читать дальше →
Total votes 9: ↑7 and ↓2+11
Comments23

Про Flutter, кратко: Основы

Reading time12 min
Views337K

Про Flutter, кратко: Основы


После доклада Юры Лучанинова, я решил для себя попробовать Flutter. Чтобы мозг размять, и чтобы было о чем похоливарить с мужиками на кухне. Дело пошло. Я начал смотреть, потом читать, потом писать. И вроде все получается, приложения запускаются, и то что объясняют — понятно, все просто. Но не без “но” — объясняют не все. А поскольку платформа, ЯП, подходы и даже предметная область для меня новые, то подобное вызывает раздражение, ведь у тебя “не запускается”, а ты даже не знаешь что гуглить: Dart/Flutter/Window/Screen/Route/Widget?


Перечитывать всю документацию Dart, Flutter и его виджетов конечно же не хотелось, ведь времени у меня не много, и мне лишь хотелось присмотреться к Flutter. Вот было бы здорово, если бы был небольшой гайд, в котором описано все нужное, но не больше, для понимая и написания не слишком сложных приложений на Flutter!

Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments53

Современный С++ в разработке девайсов

Level of difficultyMedium
Reading time12 min
Views17K

Привет, Хабр.

Меня зовут Андрей Белобров. Я тимлид одной из команд, разрабатывающих приложения для умных девайсов Сбера.

На прошедшей недавно конференции Салют, OS DevConf! я выступил с докладом, в котором рассказал, как мы с командой разрабатываем приложения на С++ для умных устройств с виртуальным ассистентом. А также о том, как инструменты статического и динамического анализа помогают поддерживать единый стиль и высокое качество кода в проекте.

Во время доклада меня попросили подробнее описать детали нашего подхода в статье, поэтому рад поделиться с вами расширенной текстовой версией.

Все наши устройства должны уметь взаимодействовать c виртуальным ассистентом, проигрывать музыку, обновлять прошивку, выполнять аутентификацию пользователя и т.д.. Такая функциональность реализована в едином для всех платформ приложении, работающем в пользовательском режиме на каждом из наших устройств, будь то умная колонка, ТВ-приставка или умный телевизор.

Язык С++ позволяет писать эффективный и переносимый между различными платформами код, поэтому выбор языка программирования для нашего приложения был очевиден. При этом язык известен своей сложностью и возможностью выполнить одну и ту же задачу несколькими способами.
Чтобы успешно разрабатывать большой проект на языке C++, необходимо хорошо настроить процесс разработки в команде (а это несколько десятков инженеров). Также можно значительно осовременить разработку на C++ за счет использования подходящих инструментов статического и динамического анализа, и правильной интеграции их в процесс разработки.

Читать далее
Total votes 23: ↑20 and ↓3+22
Comments36

Туториал: Создание простейшей 2D игры на андроид

Reading time10 min
Views155K
Этот туториал предназначен в первую очередь для новичков в разработке под андроид, но может быть будет полезен и более опытным разработчикам. Тут рассказано как создать простейшую 2D игру на анроиде без использования каких-либо игровых движков. Для этого я использовал Android Studio, но можно использовать любую другую соответствующее настроенную среду разработки.

Шаг 1. Придумываем идею игры
Для примера возьмём довольно простую идею:

Внизу экрана — космический корабль. Он может двигаться влево и вправо по нажатию соответствующих кнопок. Сверху вертикально вниз движутся астероиды. Они появляются по всей ширине экрана и двигаются с разной скоростью. Корабль должен уворачиваться от метеоритов как можно дольше. Если метеорит попадает в него — игра окончена.


Читать дальше →
Total votes 33: ↑23 and ↓10+13
Comments8

Размышления о 18 годах работы в Google

Level of difficultyEasy
Reading time6 min
Views60K

Деградация культуры Google в конце концов станет необратимой, потому что люди, которые нужны вам в качестве морального компаса - это те же самые люди, которые не приходят в организацию без этого самого морального компаса.

Читать далее
Total votes 100: ↑98 and ↓2+126
Comments126

USB на регистрах: составные устройства

Reading time13 min
Views8.7K


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device


Вот мы познакомились со всеми базовыми типами конечных точек, пришло время разработать какое-нибудь полезное устройство. Для примера пусть это будет программатор-отладчик STM-ок, работающий через стандартный UART bootloader.

Читать дальше →
Total votes 31: ↑29 and ↓2+39
Comments8

6-шаговая коммутация BLDC моторов

Level of difficultyMedium
Reading time19 min
Views19K

В нашем проекте контроллера сервоприводов применяется чип семейства Renesas Synergy S5D9. Чип содержит периферийный блок специально предназначенный для 6-шагового управления. Попробую показать как этот блок применить для управления BLDC мотором и какие грабли разложены на пути.

Читать далее
Total votes 23: ↑22 and ↓1+26
Comments20

Пройти LeetCode за год: экскурсия по сайту и roadmap [обновлено 30.11.2023]

Level of difficultyEasy
Reading time23 min
Views104K

С наступающим наступившим вновь наступающим, Хабр.

Новый год – точка, после которой все мы собираемся что-то начать, чем-то заняться, в чём-то поднатореть. Сегодня я расскажу об одном из таких вариантов – что можно начать и как к этому подойти.

Конечно, про литкод все слышали и, казалось бы, о чём тут рассказывать? Ну задачник, перед техсобесами можно открыть на день-два. Но для того рассказать и стоит, дабы чуть разбавить это мнение.

С сайтом несколько больно знакомиться, он отпугивает вездесущими приписками "premium", пользуясь славой ресурса для техсобесов продвигает функционал вроде списков компаний, где встречался вопрос n и симуляции интервью в компанию m, да и сам не особо стремится рассказать о себе, потому в нём зачастую и видно голый задачник с одной страницей "problems".

За всем этим теряется важный пункт – а можно ли использовать сайт не для механического зазубривания популярных вопрос-ответов, а для изучения/закрепления алгоритмов и структур данных? Можно. Но подход к этому нужно формировать самостоятельно.

🏆
Total votes 37: ↑36 and ↓1+44
Comments30

Простая схема на оптроне создает «ламповый» звук

Level of difficultyEasy
Reading time2 min
Views18K

Текст, приведенный ниже, строго говоря не является переводом, а представляет собой оригинал статьи, написанной автором для российского тематического издания. Сначала статья была предложена последовательно сначала одному, а затем второму российскому изданию. В ответ тишина. Тогда статья была предложена журналу "Радиолоцман", который довольно быстро сообщил, что статья их не устраивает - типа маленькая.

Тогда я написал в Electronic Design News, который довольно быстро принял статью к рассмотрению и через некоторое время опубликовал ее. Теперь собственно статья.

Эта простая схема основана на схеме, показанной на рис. 2 в моей статье (1). Известно, что главной особенностью ламповых усилителей является наличие небольших искажений. В этих искажениях преобладает вторая гармоника. Некоторые оптроны имеют проходную характеристику, близкую к проходной характеристике лампы, например, типа EL34.

Простая схема с оптроном типа TLP621 показана на рис. 1.

Читать далее
Total votes 48: ↑47 and ↓1+59
Comments93

Ламповое звучание: о пользе второй гармоники

Reading time4 min
Views19K

Около десяти лет назад меня попросили о ремонте английского лампового усилителя - временами у него пропадал звук. Лампы оказались целы, видимых повреждений нет, все режимы в норме. Дефект обнаружился в переменном резисторе регулятора громкости и его замена решила проблему. К тому времени я уже был наслышан о феномене “теплого лампового” звучания и поэтому измерил все параметры усилителя по его спецификации. Представил работу владельцу усилителя и на некоторое время забыл об этом, так как у меня была основная задача улучшить качество звучания звуковой программы, получаемой по цифровому каналу.

Читать далее
Total votes 80: ↑80 and ↓0+80
Comments44

Дампер картриджей для Денди/Famicom

Level of difficultyHard
Reading time20 min
Views21K
Восемь лет назад я уже писал статью о том, как я делал простенький дампер (устройство для чтения картриджей) для Денди/Famicom. Думаю, пора рассказать о том, как этот проект преобразился спустя эти годы вместе с ростом моих скиллов.


Читать дальше →
Total votes 166: ↑166 and ↓0+166
Comments15

6. Устойчивость систем автоматического регулирования. 6.5. Частотный критерий Найквиста

Level of difficultyMedium
Reading time11 min
Views12K

Продолжаем разбиратся теорией автоматического управления, по лекциям Олега Степановаича Козлова, "Управление в технических системах". Сейчас у нас будет годограф Найквиста.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments0

Превращаем DSLogic U2Basic (PANGO) в DSLogic Plus

Reading time2 min
Views6.1K

В данной статье расскажу как модифицировать DSLogic U2Basic (PANGO) в DSLogic Plus.

Данная статья является обновлением статей - Превращаем DSLogic Basic в DSLogic Plus и Превращаем DSLogic U2Basic в DSLogic Plus

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments5

FizzBuzz по-сениорски

Reading time7 min
Views116K

- Добрый день, я на интервью на позицию старшего разработчика.

- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.

Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно.

Читать далее
Total votes 295: ↑288 and ↓7+369
Comments306

Взрывная FoodTech-инновация в Кыргызстане: автоматизация доставки в сельском магазине

Reading time4 min
Views7.1K

Привет! Меня зовут Максим Павлов, я управляющий партнёр KTS.

Этой осенью я и другие основатели KTS оказались в кыргызском пансионате с ближайшим продуктовым магазином в двух километрах. Нам быстро надоело тратить час на дорогу за чипсами: в статье рассказываю, как всего за пару дней мы создали местный сервис доставки.

Читать далее
Total votes 30: ↑25 and ↓5+23
Comments20

Гальваническое покрытие 3D-печатных моделей

Reading time11 min
Views18K

Картинка youtube-канал Jason Welsh

С распространением трёхмерной печати множество любителей получили уникальные возможности, которые, однако, ограничены свойствами самого материала – пластиковой основы. В одной из прошлых статей мы рассказывали об интересном способе изготовления металлических отливок из 3D-печатных моделей, используя плавление металлов в обычной домашней микроволновке.

Однако не всегда требуется изготовление сверхмонолитных металлических деталей сложными способами, так как существует гораздо более простой вариант…

Читать дальше →
Total votes 54: ↑52 and ↓2+70
Comments33

Почему уходят из 1С?

Reading time29 min
Views144K

Скромная "ответочка" на статью про то, что 1С-ники гораздо умнее коллег из других ЯП.

Как IT специалист, знакомый с теми и другими, постараюсь оппонировать утверждениям из оригинальной статьи.

Читать далее
Total votes 127: ↑120 and ↓7+133
Comments532

Быстрая разработка для микроконтроллеров в Simulink на примере полифункционального зарядника

Reading time12 min
Views10K

Полифункциональный зарядник - хорошая платформа чтобы показать преимущество гибридной графической нотации перед текстовой нотацией С/С++ . Для этого используется MATLAB Simulink под Windows. Метод разработки напоминает SIL (software-in-the-loop), но модель выполняется на ПК в реальном времени и при взаимодействии с реальным железом.

Читать далее
Total votes 20: ↑19 and ↓1+26
Comments17
1

Information

Rating
Does not participate
Registered
Activity