Серия «BUSY Bar»

4

Создаем виджеты для BUSY Bar без кодинга

BUSY Bar — это продвинутый фокус-таймер с функцией блокировки отвлекающих приложений и интеграцией в умный дом. В этом посте мы покажем как, используя HTTP API, можно создавать виджеты для BUSY Bar. Это смогут сделать не только разработчики, но и обычные пользователи.

Далее вы узнаете как:

  • Вывести изображения и текст на экран BUSY Bar.

  • Взаимодействовать с устройством прямо из браузера.

  • Создать виджеты без программирования.

Виджеты, которые мы сделаем в этой статье

Виджеты, которые мы сделаем в этой статье

Прежде чем начать создавать виджеты, давайте познакомимся с HTTP API и с тем, как его использовать.

Один API для всех типов подключения

HTTP API — это протокол для взаимодействия с BUSY Bar, доступный через все 3 поддерживаемые типа подключения:

  • USB Ethernet — при подключении BUSY Bar к ПК, он определяется как сетевой адаптер с виртуальной сетью.

  • Wi-Fi сеть быстрое, беспроводное подключение. BUSY Bar можно разместить где угодно в зоне действия Wi-Fi.

  • Cloud-сервер удаленное управление через интернет с шифрованием и авторизацией по ключу, используя API-токен, выпускаемый в личном кабинете BUSY.

Благодаря использованию одинакового HTTP API во всех трех типах подключения, можно переключаться между ними без переписывания кода.

Как работает HTTP API в BUSY Bar

Как следует из названия, HTTP API основан на протоколе HTTP, который используется для передачи данных в интернете, между браузером и web-сервером. Когда вы вводите URL сайта, ваш браузер отправляет HTTP запрос и сервер возвращает web-страницу в ответе.

Взаимодействие web-браузера и web-сервера по протоколу HTTP

Взаимодействие web-браузера и web-сервера по протоколу HTTP

Взаимодействие с BUSY Bar устроено похожим образом. BUSY Bar выполняет роль HTTP сервера и ожидает запросы, а ПО на ПК выполняет роль HTTP клиента. Этим ПО может быть любая программа, поддерживающая отправку HTTP-запросов, например, система умного дома, приложение или скрипт.

Скрипт или приложение отправляет запрос и BUSY Bar возвращает данные в формате JSON

Скрипт или приложение отправляет запрос и BUSY Bar возвращает данные в формате JSON

Благодаря широкой поддержке HTTP в языках программирования, обращаться к BUSY Bar можно с помощью всего нескольких строк кода. А некоторые простые запросы, такие как запрос общей информации о BUSY Bar, могут быть отправлены прямо из браузера - просто открытием http://10.0.4.20/api/status/system.

Запрос /api/status/system возвращает общую информацию о BUSY Bar

Запрос /api/status/system возвращает общую информацию о BUSY Bar

ℹ️ В случае использования USB-подключения IP-адрес BUSY Bar'а всегда будет 10.0.4.20 — он даже указан на задней крышке устройства. При подключении через Wi‑Fi IP-адрес назначается роутером. В следующих примерах мы будем использовать USB-подключение.

IP-адрес BUSY Bar’а указан на задней крышке устройства

IP-адрес BUSY Bar’а указан на задней крышке устройства

Документация HTTP API прямо на устройстве

Все поддерживаемые HTTP-запросы, их параметры и форматы ответов описаны в документации HTTP API, которая хостится прямо на устройстве. При подключении по USB она доступна по адресу: http://10.0.4.20/docs.

Документация HTTP API, открытая с устройства

Документация HTTP API, открытая с устройства

Открыть документацию HTTP API также можно с главной страницы web-интерфейса BUSY Bar, который доступен по адресу http://10.0.4.20.

Главная страница web-интерфейса BUSY Bar и ссылка на документацию HTTP API на ней

Главная страница web-интерфейса BUSY Bar и ссылка на документацию HTTP API на ней

HTTP-запросы можно тестировать прямо на странице с документацией, выполнив следующее:

  1. Выберите запрос, например: /api/display/draw (вывод текста и картинок на экран).

  2. Нажмите Try it out.

  3. Скорректируйте параметры запроса.

  4. Нажмите кнопку Execute, чтобы отправить запрос на BUSY Bar.

После нажатия Execute браузер отправляет HTTP API-запрос в BUSY Bar, который возвращает ответ, указывающий либо на успешное выполнение (OK), либо на ошибку (Bad Request), если с запросом что-то не так. В случае успеха BUSY Bar выводит на экран «HELLO, WORLD!».

[Видео] При успешном выполнении запроса BUSY Bar выводит на экран строку "HELLO, WORLD!"

Как AI может помочь использовать HTTP API

В сети есть тонны гайдов, обсуждений и примеров кода для работы с HTTP. А еще со всеми этими знаниями умеют работать AI-ассистенты. Поэтому даже без навыков программирования вы можете создавать виджеты для BUSY Bar.

ℹ️ Для продвинутых пользователей мы также предлагаем готовые библиотеки для Python и JavaScript, реализующие наш HTTP API.

Для создания виджета с помощью AI-ассистента (ChatGPT, Gemini, Claude и других) нужно:

  • Объяснить ему, как выводить картинки и текст на экран (1 промпт).

  • Объяснить, что должен делать виджет (1-2 промпта).

  • Попросить устранить недостатки (0-10 промптов).

В результате вы получите скрипт, который запускается на ПК и по HTTP API отправляет UI виджета на подключенный по USB девайс.

Скрипт работает на ПК и отрисовывает виджет на экране BUSY Bar через HTTP API

Скрипт работает на ПК и отрисовывает виджет на экране BUSY Bar через HTTP API

Дальше мы покажем на реальных практических примерах, как можно сделать виджет, не прибегая к программированию. Мы будем использовать ChatGPT. Все сгенерированные AI-скрипты доступны по ссылкам на каждом шаге.

Шаг 0: Учим AI использовать экран BUSY Bar

При создании каждого виджета сначала нужно объяснить AI, как использовать HTTP API, а именно два запроса:

  • /api/assets/upload — для загрузки картинок в память BUSY Bar.

  • /api/display/draw — для вывода текста и ранее загруженных картинок.

Промпт к AI (сделан на основе документации HTTP API):

Тот же самый текст промпта на GitHub

Результат: AI теперь умеет через USB выводить на экран изображения и тексты, а также использовать разные шрифты и цвета текста.

Делаем виджет часов

Для начала, просто для тренировки, сделаем очень простой виджет — часы с датой. Время и дата будут браться с ПК и обновляться на экране BUSY Bar раз в секунду. Время выведем крупным шрифтом — чаще всего увидеть его важнее, чем дату.

Шаг 1: Вывод времени и даты

🤖 Промпт к AI: Выведи на экран текущую дату (мелко) и время (крупно) по центру экрана. Формат даты — день.месяц.год. Время выведи с секундами.

Результат: AI написал скрипт на языке Python. Его нужно сохранить в файл с расширением .py и запустить командой python file.ру (Windows) или python3 file.ру (Linux/macOS).

Скрипт от AI: clock-1.py

Виджет часов. Шаг 1: На экран выведены дата и время (часы не идут)

Виджет часов. Шаг 1: На экран выведены дата и время (часы не идут)

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

Шаг 2: Ход часов, цвета и выравнивание

🤖 Промпт к AI: Сделай, чтобы часы шли и не выключались. Текст сейчас не по центру, сдвинь его вправо на 3 пикселя. Выведи время светло-зеленым.

Скрипт от AI: clock-2.py

Результат:

[Видео] Виджет часов. Шаг 2: Готовый виджет

Мы получили готовый виджет всего за 3 промпта. Единственное замечание — AI выравнивает текст по центру с погрешностью, т.к. символы имеют разную ширину (например, цифр 1 и 5). В следующей версии HTTP API мы добавим выравнивание текста по горизонтали и вертикали, что полностью решит эту проблему.

Делаем погодный виджет

Скрипт, запущенный на ПК, будет получать погоду из открытых источников в интернете и выводить ее на экран BUSY Bar для нескольких городов. Для каждого города скрипт выведет иконку погоды, город и температуру.

Шаг 1: Вывод погоды

🤖 Промпт к AI: Сделай скрипт, выводящий поочередно погоду в 3 городах: Dubai, London, New York с паузой 3 секунды. Погоду бери из открытых источников без необходимости регистрации.

Скрипт от AI: weather-1.py

Результат:

[Видео] Погодный виджет. Шаг 1: Вывод погоды в 3 городах

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

Шаг 2: Улучшение интерфейса

🤖 Промпт к AI: Слева на экран выведи иконку погоды (16×16), пусть скрипт сам их нарисует. Справа выведи: город (мелко) и температуру (крупно).

Скрипт от AI: weather-2.py

Результат:

[Видео] Погодный виджет. Шаг 2: Новое расположение элементов на экране

Уже лучше, но есть еще пара недочетов, которые мы устраним следующими запросами к AI.

Шаг 3: Разбираемся со знаком градуса

🤖 Промпт к AI: Символ градуса не отображается. Девайс точно умеет выводить этот символ шрифтом big.

Скрипт от AI: weather-3.py

Результат:

[Видео] Погодный виджет. Шаг 3: Теперь символ градуса отображается корректно

Почти готово. Смущают только непонятные погодные иконки. Похоже, что это слабая сторона ChatGPT. Почему бы тогда не использовать погодные иконки из эмодзи?

Шаг 4: Делаем красивые иконки

Нужно подготовить иконки для основных погодных явлений (солнечно, облачно, дождь и т.д.). Сами иконки можно взять в открытых источниках — например, существует отличный шрифт Noto Color Emoji 16.0 от компании Google. Изображения всех символов доступны в репозитории на GitHub.

Нам понадобятся картинки:

  • ☀️ sun.png (солнечно) — символ u2600

  • ☁️ cloud.png (облачно) — символ u2601

  • 🌫️ fog.png (туман) — символ u1f32b

  • partly.png (переменная облачность) — символ u1324

  • 🌧️ rain.png (дождь) — символ u1327

  • 🌨️ snow.png (снег) — символ u1328

Эти картинки нужно смасштабировать до 16×16 и сохранить в папке icons, которая должна быть расположена в папке со скриптом. После этого нужно попросить AI доработать скрипт.

🤖 Промпт к AI: Сделай вывод иконок из готовых файлов, которые я положил в папку icons: cloud.png, fog.png, partly.png, rain.png, snow.png, sun.png.

Скрипт от AI: weather-4.py

Результат:

[Видео] Погодный виджет. Шаг 4: Готовый виджет

🚀 Готово! В скрипте можно изменять список городов. Можно оставить только один город и тогда будет отображаться только его погода, обновляясь каждые 3 секунды.

Делаем пинг-монитор

Ping — это способ проверки доступности устройств в сети. Смысл в отправке специального запроса на IP-адрес проверяемого узла и измерении времени от отправки запроса до получения ответа.

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

Индикатор пинга в игре Pokémon UNITE

Индикатор пинга в игре Pokémon UNITE

Шаг 1: Вывод графика пинг

🤖 Промпт к AI: Сделай скрипт, который выводит график пинга игрового сервера по IP. Обновление графика раз в секунду. В верхнем левом углу выведи пинг маленьким шрифтом.

Скрипт от AI: ping-monitor-1.py

AI сгенерировал скрипт, который принимает IP-адрес сервера в качестве параметра. Поэтому адрес нужно указать при запуске скрипта. Например, если адрес сервера — 8.8.8.8, то для мониторинга его доступности команда будет выглядеть так:

python3 ping-monitor-1.ру --server 8.8.8.8.

Результат:

[Видео] Пинг-монитор. Шаг 1: На экран выведен график и текущее значение пинга

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

Шаг 2: Разукрашиваем график

🤖 Промпт к AI: Пусть на графике столбцы, соответствующие 0-20 мс, будут зелеными, 21-50 — желтыми, а больше 50 — красными. Высота шкалы — 100 мс.

Скрипт от AI: ping-monitor-2.py

Результат:

[Видео] Пинг-монитор. Шаг 2: График разукрашивается в соответствии со значением пинга

Супер! Осталась одна маленькая, косметическая, деталь — вывод логотипа игры в левой части экрана.

Шаг 3: Добавляем логотип игры

🤖 Промпт к AI: Давай еще слева от графика выведем логотип игры CS:GO.

AI просит, чтобы файл с логотипом игры назывался csgo.png и лежал в папке со скриптом. Нагуглим подходящую картинку, смасштабируем до 16×16 и сохраним.

Скрипт от AI: ping-monitor-3.py

Результат:

[Видео] Пинг-монитор. Шаг 3: Готовый виджет

🚀 Готово! Всего за несколько шагов, не прибегая к программированию, мы смогли создать наглядный виджет. Его можно использовать не только для мониторинга доступности игрового сервера, но и в целом для мониторинга доступности любых других серверов в LAN или интернете.

Скоро Kickstarter

В начале 2026 года мы запустим нашу Kickstarter-кампанию. Оформите предзаказ в нашем магазине чтобы получить доступ к специальной цене для первых заказов когда кампания начнется: https://busy.bar/shop

Подпишитесь на наши X, Instagram и Reddit, чтобы следить за обновлениями BUSY Bar.

Instagram — продукт компании Meta Platforms Inc., признанной экстремистской организацией, деятельность которой запрещена на территории Российской Федерации.

Показать полностью 13 9

Зацените BUSY Bar — устройство для продуктивности

Это современный Pomodoro-таймер с 2 экранами, функцией блокировки приложений и подключением к умному дому.

Есть открытый НТТР АРІ и SDK, позволяющие интегрировать девайс в ваши системы и разрабатывать для него собственные приложения.

В этом посте расскажем про основные фичи BUSY Bar, характеристики и наш опыт разработки.

Мультитул для продуктивности

BUSY Bar — это наша попытка создать большую кнопку «ОТВАЛИТЕ». Достаточно нажать на неё — и благодаря заметному дисплею и интеграции с телефоном и ПК вокруг вас создается тихое пространство, в котором можно наконец спокойно поработать.

Вид сзади: маленький экран позволяет управлять устройством, даже когда оно отвернуто от вас

Вид сзади: маленький экран позволяет управлять устройством, даже когда оно отвернуто от вас

Основные функции BUSY Bar:

  • Продвинутый фокус-таймер — мы прокачали классический Pomodoro таймер. Теперь он блокирует уведомления и не даёт запускать отвлекающие приложения.

  • Личный статус — кастомное визуальное сообщение о том, что вы заняты, с опциональным таймером, показывающим, когда вы освободитесь.

  • Открытое API и интеграция с умным домом — пользователи могут подключить девайс к умному дому, а разработчики — к любым своим системам через HTTP API.

  • Приложения — базовые приложения вроде часов, погоды и счетчика подписчиков уже предустановлены. Мы также готовим SDK, чтобы можно было создавать свои собственные приложения.

Механические элементы управления

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

Механический переключатель режимов работы

Механический переключатель режимов работы

  • 5-позиционный переключатель — переключает режимы работы устройства без необходимости заходить в меню.

  • Режимы BUSY и CUSTOM — это два пользовательских режима, которые можно настроить через мобильное приложение. Например, в одном из режимов можно настроить вывод на экран кастомного статуса “ON AIR” и активацию сцены умного дома — допустим, все лампы сделать красными, пока вы записываете звук в студии.

Кнопка Start/Pause достаточно большая для нажатия вслепую. Колесо прокрутки и кнопка Back позволяют легко перемещаться по меню

Кнопка Start/Pause достаточно большая для нажатия вслепую. Колесо прокрутки и кнопка Back позволяют легко перемещаться по меню

  • Кнопка Start/Pause — большая кнопка старта, вдохновлённая шахматными часами. Нажимается не глядя, мгновенно включая режим BUSY. Потому что когда ты в гиперфокусе, последняя вещь, которой хочется заниматься — это ковыряться в телефоне.

  • Колесо прокрутки — позволяет быстро настроить таймер с помощью вращения и нажатия. Также используется для навигации по меню.

  • Кнопка Back — возвращает назад и отменяет активный статус.

Мы хотели, чтобы можно было управлять, используя только физические элементы управления. Мы старались, чтобы каждая кнопка и переключатель были тактильно приятными и легко различались на ощупь.

Новый Pomodoro таймер

Техника Pomodoro — это простая методика управления временем, когда чередуются 25 минут работы с 5 минутами отдыха — так продолжается, пока задача не будет выполнена.

BUSY Bar — наше переосмысление классического Pomodoro таймера

BUSY Bar — наше переосмысление классического Pomodoro таймера

Мы обожаем технику Pomodoro — ею пользуются многие из нас в офисе. Но использовать классический кухонный таймер для нее не всегда удобно. Что если вам нужно работать дольше, чем позволяет выставить таймер? Как сообщить коллегам, что вы заняты и вас не стоит беспокоить? Как поставить его на паузу, если нужно отойти?

Мы переосмыслили классический Pomodoro таймер под современные реалии работы из дома или в офисе. Большой основной экран показывает коллегам (либо родным), через сколько вы освободитесь, а маленький задний экран дублирует ту же информацию для вас. Или вы можете повернуть основной экран к себе чтобы использовать девайс в качестве персонального Pomodoro таймера.

[Видео] BUSY Bar в качестве интервального Pomodoro таймера — 25 минут работы и 5 минут отдыха

Блокировщик уведомлений

Мы постоянно отвлекаемся на уведомления в телефоне, а вручную включать и выключать режим блокировки уведомлений — неудобно и раздражает.

BUSY Bar может автоматически блокировать уведомления, работая в связке с приложением BUSY App на телефоне. В режиме фокуса на экране будет только таймер отсчёта, а уведомления подождут, пока вы не завершите работу. Также блокируются все приложения — открыть их можно будет только после завершения работы.

[Видео] BUSY Bar в связке с приложением автоматически блокирует уведомления в режиме ЗАНЯТ

BUSY Bar может блокировать уведомления на всех ваших устройствах одновременно: на телефоне, часах и компьютере. Всё, что нужно — это подключить их к вашему аккаунту в BUSY App.

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

[Видео] BUSY Bar может активировать ваши индивидуальные сценарии для сфокусированной работы

Автоматический статус ON CALL

Бывает, сидишь молча на созвоне, никого не трогаешь, а коллеги то и дело подходят со своими вопросами. И вам нужно как-то дать им понять: «Я на звонке, блин, не сейчас! Я занят!» BUSY Bar может автоматически отобразить подходящий статус, как только начнётся звонок, чтобы вас не отвлекали.

BUSY Bar автоматически меняет статус, когда начинается звонок на компьютере

BUSY Bar автоматически меняет статус, когда начинается звонок на компьютере

Когда работаешь из дома, тоже хочется, чтобы никто не мешал во время важного звонка. Обычно приходится заранее предупреждать: «Я буду занят в ближайший час, пожалуйста, не отвлекай меня». Но теперь достаточно просто повесить BUSY Bar на дверь — и включить нужный статус в приложении на телефоне или компьютере.

Активируется когда вы на звонке

Приложение BUSY App для macOS и Windows 11 может отслеживать использование микрофона и автоматически включать статус ON CALL на BUSY Bar. Это работает с любой программой, использующей микрофон: Zoom, Slack, Google Meet, Discord и т.д. Все работает само, ничего настраивать в этих приложениях не нужно.

[Видео] При включении микрофона BUSY App может удаленно активировать нужный статус на BUSY Bar через Wi‑Fi

⚠️ Версия BUSY App для компьютеров пока на ранней стадии разработки и финальный набор функций еще не подтверждён. В будущем мы хотим добавить автоматические статусы под любые сценарии: например, если открыто окно Photoshop или Word — BUSY Bar сможет показывать “DO NOT DISTURB” или любой другой пользовательский статус.

Интеграция с умным домом и SDK для разработчиков

Мы добавили поддержку умного дома в BUSY Bar, чтобы вы могли использовать его в сценариях автоматизации. Например, когда вы заняты, музыка автоматически ставится на паузу, освещение настраивается под ваши предпочтения, а входная дверь блокируется — все, чтобы создать пространство, оптимизированное для продуктивной работы.

Интеграция в системы умного дома позволяет BUSY Bar управлять вашими умными устройствами: лампами, аудиоустройствами, замками

Интеграция в системы умного дома позволяет BUSY Bar управлять вашими умными устройствами: лампами, аудиоустройствами, замками

Есть несколько способов подключить BUSY Bar к умному дому:

  • Протокол Matter — для хабов от брендов вроде Apple и Google.

  • Открытый HTTP API — для разработки собственных интеграций.

  • Home Assistant — для интеграции с вашим локальным сервером умного дома.

Протокол Matter

Мы официально присоединились к Connectivity Standards Alliance, чтобы добавить поддержку протокола Matter в BUSY Bar. Matter — это современный стандарт для умного дома, разработанный такими компаниями, как Apple, Google, Amazon и др. Его цель — обеспечить совместимость между устройствами умного дома разных производителей.

BUSY Bar можно подключить к любому хабу умного дома с поддержкой Matter — без дополнительных плагинов и сложной настройки. Просто отсканируйте QR-код на экране BUSY Bar, чтобы подключить устройство к вашей Wi‑Fi сети и экосистеме умного дома. Matter работает по локальной сети (LAN), поэтому автоматизации отрабатывают быстро и не зависят от наличия подключения к интернету.

Интеграция с Home Assistant

Мы также планируем добавить нативную интеграцию BUSY Bar с Home Assistant — популярной open-source системой умного дома, поддерживающей огромное количество устройств от разных производителей.

С такой интеграцией можно будет выводить кастомные анимации, воспроизводить собственные звуки и настраивать реакцию BUSY Bar на события в вашей системе умного дома. Это дает больше гибкости по сравнению с интеграцией через Matter.

Открытый HTTP API

Подключенный через USB к роутеру BUSY Bar выводит на экран скорость порта WAN

Подключенный через USB к роутеру BUSY Bar выводит на экран скорость порта WAN

С помощью HTTP API вы сможете создавать собственные интеграции. Это гибкий набор интерфейсов для взаимодействия с BUSY Bar по локальной сети, через USB или через облако.

Мы также предоставим библиотеки, реализующие HTTP API, чтобы вы легко могли интегрировать BUSY Bar в свои приложения на JavaScript, Go или Python.

Способы подключения к BUSY Bar

Варианты подключения BUSY Bar:

  • USB Ethernet — при подключении к ПК по USB девайс определяется как виртуальный сетевой адаптер, эмулируя локальную сеть с вашим компьютером. Через эту сеть доступны веб-интерфейс и HTTP API.

  • Wi‑Fi сеть — подключите BUSY Bar к домашнему или офисному Wi‑Fi, чтобы управлять устройством через веб-интерфейс или HTTP API. Также через Wi‑Fi работает интеграция с системами умного дома.

  • Облачный сервер — добавьте устройство в свой аккаунт BUSY App, и оно автоматически подключится к нашему облаку. Это дает возможность управлять BUSY Bar удаленно из любой точки мира с помощью HTTP API. Вы также можете сконфигурировать BUSY Bar для подключения к вашему собственному серверу по протоколу MQTT — никакого vendor-lock.

SDK для разработки приложений

Через открытое API можно управлять BUSY Bar удаленно и интегрировать в свои программы

Через открытое API можно управлять BUSY Bar удаленно и интегрировать в свои программы

Мы работаем над SDK и библиотеками, которые позволят разработчикам создавать собственные приложения для BUSY Bar. Этот SDK еще в работе, мы расскажем о нем детально немного позже.

Технические характеристики

  • Основной дисплей — полноцветная светодиодная матрица с разрешением 72×16 пикселей, шагом пикселя 2,2 мм и динамическим изменением частоты обновления вплоть до 60 Гц для плавности анимаций.

  • Датчик освещенности — для адаптивной регулировки яркости, чтобы устройством было комфортно пользоваться как при дневном свете, так и в полной темноте.

  • Задний OLED-дисплей — 1,5-дюймовый дисплей с разрешением 160×80 пикселей и поддержкой 16 уровней серого. Его яркость тоже регулируется автоматически в зависимости от окружающего освещения.

  • 2 микроконтроллера — основной микроконтроллер (STM32U5M) управляет всем устройством в целом. Wireless микроконтроллер (Silicon Labs SiWG917) отвечает за беспроводную связь (Wi-Fi 6, Bluetooth 5.4).

  • 8 ГБ eMMC памяти — здесь хранятся ассеты для интерфейса BUSY Bar, обеспечивающие плавность UI и 2D-эффектов.

  • Встроенный аккумулятор формата 18650 — аккумулятор емкостью 3250 мАч обеспечивает автономную работу устройства на протяжении всего рабочего дня без необходимости подзарядки.

  • Порт USB Type-C — для подключения к ПК в качестве виртуального LAN-адаптера и зарядки. При подключении к зарядному устройству с Power Delivery (PD) устройство заряжается мощностью до 15 Вт менее чем за час.

Как происходит разработка и прозводство

Разработка аппаратной части BUSY Bar почти завершена, и сейчас мы сосредоточены на прошивке и подготовке к полномасштабному производству. Также мы разрабатываем BUSY App, веб-сервисы и интеграцию с умным домом.

Далее мы покажем Development Kit и Developer Board, а также поделимся интересными подробностями с производства.

Development Kit

Нашим embedded-программистам и электронщикам нужен полный доступ к компонентам внутри BUSY Bar, включая все три печатные платы:

  • Плата управления (Control board) — содержит все элементы управления и индикаторы статуса.

  • Основная плата (Main board) — на ней находятся оба микроконтроллера, eMMC память, аудиотракт и схема зарядки.

  • Плата дисплея (Display board) — содержит RGB-матрицу, драйверы для управления ею и датчик освещенности.

Чтобы облегчить отладку, мы напечатали на 3D-принтере специальный стенд, на котором все три платы соединяются между собой гибкими шлейфами (FFC). Такой стенд обеспечивает лёгкий доступ к обеим сторонам всех плат, упрощая тестирование и поиск неисправностей.

[Видео] Development Kit позволяет видеть одновременно оба экрана

Developer Board

UI-дизайнеры и тестировщики могут прошивать BUSY Bar по USB, но embedded-разработчикам нужен доступ к отладочным SWD-интерфейсам и UART обоих микроконтроллеров. Мы сделали специальную плату (Developer Board), которая подключается к плате управления, имеет разъём для подключения отладчиков, кнопки для сброса обоих микроконтроллеров и перевода wireless микроконтроллера в режим BOOT.

Мы спроектировали плату Developer Board так, чтобы ее можно было подключать даже к собранному устройству: достаточно снять внешнюю часть кнопки Start/Pause и прикрутить Developer Board на ее место. Электрическое соединение с платой управления обеспечивается через подпружиненные контакты (pogo pins).

Подключение отладочной платы (Developer Board) к собранному BUSY Bar

Подключение отладочной платы (Developer Board) к собранному BUSY Bar

Подготовка к производству

Сейчас мы на этапе Engineering Validation Testing (EVT) — это означает, что на фабрике выпущена небольшая тестовая партия устройств, и мы сосредоточены на их проверке и доработке.

Корпуса устройства в этой партии имеют немного другой цвет и гладкую поверхность (текстура придается на более поздних этапах химическим травлением литьевой формы). Финальная версия будет максимально приближена к иллюстрациям и видео.

Тестовая партия устройств на производственной линии

Тестовая партия устройств на производственной линии

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

Устройство из тестовой партии без текстуры на корпусе и с заметными следами по линии разъема формы (parting line)

Устройство из тестовой партии без текстуры на корпусе и с заметными следами по линии разъема формы (parting line)

Мы стремимся сделать линии разъема формы максимально незаметными за счет точной настройки параметров литья, включая давление и температуру впрыска. Пресс-форма корпуса BUSY Bar состоит из шести частей, которые должны быть идеально подогнаны друг к другу и пластик должен подаваться с оптимальными параметрами, чтобы итоговая деталь получилась качественной.

Для двухцветных деталей мы используем двухкомпонентное литье под давлением (two-shot injection molding). В одну и ту же форму последовательно впрыскиваются пластики двух разных цветов. Это более надежный и долговечный способ получить двухцветные детали, чем любые виды окрашивания.

Два разных пластика объединяются в одной детали с помощью двухкомпонентного литья под давлением

Два разных пластика объединяются в одной детали с помощью двухкомпонентного литья под давлением

Для задней крышки с надписями мы используем технологию нанесения этикетки в пресс-форме (in-mold labeling) — в форму помещается черная этикетка с заранее напечатанным текстом, которую затем заливают под давлением прозрачным пластиком. Получается цельная деталь с надписями — текст не сотрется т.к. он защищён пластиком.

Задняя крышка состоит из заранее напечатанной этикетки, залитой прозрачным пластиком

Задняя крышка состоит из заранее напечатанной этикетки, залитой прозрачным пластиком

Тестирование на фабрике

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

[Видео] Испытательный стенд выполняет автоматизированную проверку энкодера, кнопок, переключателей и светодиодов

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

[Видео] Стенд для тестирования надежности проводит стресс-тесты электромеханических компонентов

Подписаться на обновления

Мы готовимся к запуску производства и проводим тщательное тестирование перед релизом BUSY Bar. Также мы готовим краудфандинговую кампанию.

Подписаться на обновления на сайте проекта: https://busy.bar (нажмите кнопку "купить")

Сайт мобильного приложения https://busy.app

Подпишитесь на наши X (Twitter), Instagram и Reddit, чтобы следить за обновлениями BUSY Bar.

Instagram — продукт компании Meta Platforms Inc., признанной экстремистской организацией, деятельность которой запрещена на территории Российской Федерации.

Показать полностью 17 7
Отличная работа, все прочитано!