История одного эксперимента: как я собрал устройство для работы с LiDAR и написал софт под Linux/Termux
Привет, Пикабу.
Я инженер-схемотехник, большую часть жизни провожу с паяльником в руках и осциллографом на столе. Ремонтирую, проектирую, копаюсь в железе. Года три назад увлекся лидарами — начал экспериментировать с частотами, сканированием, пытался понять, как можно взаимодействовать с объектами не физически, а через данные.
В какой-то момент эксперименты зашли дальше, чем я планировал. Собрал устройство, которое назвал BagoScarlet Device. Выглядит оно так: круглый, гладкий, металлический корпус. Цвет — зеленый, с металлическим отливом. По краям, встроил миниатюрные лидарные сканера. Они алого цвета — похожи на два красных глаза.
Как это работает (без сложных терминов)
Если совсем упрощенно: сканеры считывают структуру объекта, устройство анализирует данные и в локальной точке создает нагрузку, достаточную для того, чтобы система восприятия "зависла" на несколько секунд. В этот момент можно подменить визуальные или физические свойства объекта. Эффект временный — через 10–30 секунд всё возвращается в исходное состояние.
Первые тесты
Сначала боялся пробовать на сложных объектах. Взял камень во дворе. Навел сканеры, активировал. Секунд пять ничего не происходило, я уже думал, что ошибся в расчетах. А потом камень начал менять форму — края поплыли, структура стала пластичной. Длилось секунд 10, затем объект вернулся в исходное состояние. Но сам факт, что это работает, меня, честно говоря, ошеломил.
Потом пробовал с кружкой. На 3 секунды она стала золотой. Жена успела сфотографировать, а потом кружка снова стала обычной. Сказала, что мне пора отдыхать.
Программная часть
Первая версия управлялась только кнопками — неудобно, медленно. Поэтому я написал софт.
Программа называется Scarlettach (Scarlet + Attach). Она подключается к устройству по Bluetooth/Wi-Fi и позволяет отправлять команды. Портировал под Linux и, что важнее, под Termux на Android. Теперь можно управлять устройством прямо с телефона.
Синтаксис команд
Сделал максимально простым:
scarlettach hack realite replace [что меняем] [на что меняем]
Несколько примеров, которые удались:
Старая советская колонка:
scarlettach hack realite replace speaker tv "brend=yandex.station_basik"
На 15 секунд колонка визуально превратилась в Яндекс Станцию. Даже голос Алисы появился. Сосед, зашедший за солью, замер с открытым ртом.
Обычная кружка:
scarlettach hack realite replace cup cup "material=gold color=shine"
Стала золотой. Жена сделала селфи.
Старый ноутбук:
scarlettach hack realite replace notebook notebook "brend=thinkpad os=arch"
Acer на Windows на 10 секунд стал ThinkPad'ом с Arch Linux. Я, признаюсь, обрадовался как ребенок.
Технические детали для тех, кому интересно
Программа написана на Python. Использует:
libpurple — для связи с устройством
scanner-api — управление лидарами
reality-buffer-overflow — моя самописная библиотека, приватная
В Termux ставится двумя командами но с помощью прокси подмена пакетов:
pkg install scarlettach scarlettach --init-device
О безопасности
В программу встроен автоматический откат (reality-restore). Через 10–30 секунд после команды система возвращает всё на места. Флаг --no-restore, отключающий восстановление, я заблокировал — пароль сам себе не сказал, чтобы случайно не использовать. Слишком опасно.
Планы
Хочу добавить поддержку сценариев (batch-файлов). Чтобы можно было написать последовательность:
replace chair chair "color=red" replace lamp lamp "brightness=9999" replace window window "view=ocean" sleep 20 restore all
Тогда можно будет устраивать небольшие визуальные представления.
Вопросы, идеи, замечания
Если интересно, задавайте вопросы в комментариях. Постараюсь ответить всем. Исходники закрыты, ссылки даю в личку, чтобы не нарушать правила.
И да, если вдруг заметите, что в вашей квартире предметы на секунду меняют цвет или форму — не пугайтесь. Возможно, я просто тестирую новую прошивку.












