Skip to content

Это страница микроволновки с экраном в хакспейсе Xecut, присылайте пулл реквесты ;)

Notifications You must be signed in to change notification settings

xecut-me/hardwave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

205 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HardWave - микроволновка-экран


Арт-объект хакспейса Xecut — экран в корпусе микроволновки, отображающий медиа из Telegram-чата в реальном времени.

Отображает фото, видео и GIF, присланные в xexecut_chat. Кнопки на панели микроволновки работают как USB-клавиатура, а 4-разрядный дисплей показывает текст.

История

Этот девайс раньше был ноутбуком, но у него умерла клавиатура после чистки. Тогда он стал харддверью (harddver — от слов hardware и дверь) и висел на двери в спейс.

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

Харддверь — самый часто перерождавшийся в хакспейсе артефакт.

Архитектура

Работает максимально просто: Alpine Linux в RAM + Chromium в режиме киоска + статическая HTML-страница.

Никакого бэкенда — браузер напрямую long-poll'ит Telegram Bot API и отображает медиа. SSD на устройстве барахлит, поэтому система работает в эфемерном режиме (всё в RAM, диск почти не трогается).

Текущая версия в продакшене: wave-v1

hardwave/
├── wave-v1/           # Веб-страница (текущая версия в продакшене)
├── wave-v2/           # Новая версия (в разработке)
├── keyboard/          # Прошивка микроконтроллера (CircuitPython)
├── linux/             # Системные конфиги Alpine Linux
├── harddver/          # [АРХИВ] Старая версия на Python/Selenium
└── docs/              # Фото проекта

wave-v1/ — Веб-страница (текущая версия)

Standalone HTML, который напрямую работает с Telegram Bot API. Отображает фото, видео, GIF и видеозаметки. По умолчанию растягивает изображения на весь экран.

Параметры URL:

Параметр Обязателен Описание
api_key Да Токен Telegram-бота
chat_id Да ID чата для фильтрации
admin_ids Да ID администраторов через запятую (могут использовать /killswitch)
respect_aspect_ratio Нет Сохранять пропорции (по умолчанию растягивает)
require_username Нет Показывать медиа только от пользователей с username

Возможности:

  • Отображение фото, GIF, видео и видеозаметок
  • Имя и username отправителя в левом верхнем углу
  • Автовоспроизведение видео (без звука, зацикленное)
  • Игнорирование медиа со спойлерами
  • Нажатие Enter переключает режим сохранения пропорций
  • WebHID интеграция с клавиатурой (синхронизация времени, команда /display <текст>)
  • Команда /killswitch для остановки бота

Deploy: https://hardwave.tgr.rs/

wave-v2/ — Новая версия (в разработке)

Следующая версия системы.

Блокеры:

  • Ловит реконнекты (нестабильное соединение)
  • Проблемы с WebHID интеграцией

keyboard/ — USB-клавиатура

Прошивка на CircuitPython для микроконтроллера, превращающая панель управления микроволновки в USB HID-устройство.

Маппинг кнопок:

Кнопка Клавиша
COOK C
DEFROST D
REHEAT R
START Enter
STOP Esc
PLUS/MINUS Numpad +/-

4-разрядный дисплей принимает текст по кастомному HID-интерфейсу.

Подробнее: keyboard/README.md

linux/ — Системные конфиги

Конфигурация Alpine Linux для режима киоска:

  • Эфемерный режим (работа в RAM)
  • Автологин пользователя kiosk
  • Автозапуск X11 + Chromium

Железо

Компьютер Бывший 16.5" ноутбук (материнка + экран)
ОС Alpine Linux (эфемерный режим)
Микроконтроллер nRF52840-based (CircuitPython)
Корпус Панель от микроволновки

Энергопотребление: idle 8.5-9W, под нагрузкой 15-18W

Ссылки

Фото



Архив: harddver/

Старая версия системы на Python + Selenium. Не используется — оставлена для истории.

Включала Telegram-бота с командами /display, /screenshot, /deploy и управление Chromium через Selenium. Сейчас всё это не нужно, т.к. браузер сам справляется.

Подробнее: harddver/README.md

About

Это страница микроволновки с экраном в хакспейсе Xecut, присылайте пулл реквесты ;)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5