Bright Brains
209 subscribers
337 photos
276 videos
3 files
46 links
PCB дизайн и программирование, 3д печать, световые устройства, промышленные роботы, вычислительный дизайн, генеративная графика
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный кейс с LumaLab

Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер, развернул S3-совместимое хранилище, добавил сертификат для https — возможно, часть шагов была излишней, но теперь система работает идеально.

В процессе понял, что подобные задачи решаю уже на автомате. Интерактивные приложения, работа с API, кастомные решения для бизнеса и индустрии развлечений — если у вас есть идея, но нет технического решения, можем обсудить.
🔥6
Bright Brains
Интересный кейс с LumaLab Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер…
This media is not supported in your browser
VIEW IN TELEGRAM
Придумал на мой взгляд интересную схему для работы с LumaLab.

При генерации можно указать callback. Простыми словами, сервер при генерации будет сообщать о ходе выполнения работ по указанной ссылке (будет делать POST запросы по https). Так вот тело запроса, JSON с состоянием мой сервер автоматически складывает в S3 хранилище, где с этими состояниями удобно работать, если они потребуются при отображении, но в то же время происходит публикация через MQTT, что обеспечивает observable паттерн — я просто подписываюсь на процесс генерации и когда он будет закончен я узнаю об этом сразу. Кстати, когда видишь процесс генерации в прямом эфире — сервер сообщает о ходе генерации, а не только о результате — оказывается, это очень быстро происходит.
🔥2
Bright Brains
Интересный кейс с LumaLab Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер…
Инсайт с ComfyUI

Есть доступ к мощному серверу, но хочется генерировать изображения на планшете дома? Или нужен доступ к API ComfyUI? Просто создайте SSH-туннель! Это проще, чем VPN, и безопаснее — SSH есть на любом сервере, а подключение по ключам минимизирует риски. Теперь ваш сервер может работать где угодно, а доступ к ComfyUI будет возможен по доменному имени вроде myserver.com со всего мира. Там полно технических деталей, но в целом за пару вечеров разобраться можно.

Почему это удобно? Настроить проект с высокими требованиями к мощности можно практически на любом устройстве, главное — интернет и поддержка websocket. С телефона в метро или на ESP32. Мощный сервер может тихо работать в серверной, пока вы настраиваете пайплайн. А ещё, можно рендерить на нескольких машинах одновременно — эффективно и просто.
3
This media is not supported in your browser
VIEW IN TELEGRAM
Удивительно, что в электронные сигареты теперь встраивают полноценный микроконтроллер, зарядку и... экран! В принципе, должно быть несложно хакнуть и перепрошить, посмотрю на досуге.
🔥4🆒2
Bright Brains
От плат стойкий запах белого чая
На фото успешный и популярный продукт у медиа-артистов по всему миру — прибор для управления лазерами по стандарту ILDA. Лазер в таком случае управляется с помощью гальванометров. Идея простая — положительное напряжение поворачивает зеркало в одну сторону, а отрицательное в другую. Это похоже на обычный звуковой динамик, кроме того, что в первом случае движение поворотное, а во втором — колебательное. Более того, в драйверах гальванометров часто используются обычные усилители звука.

Прибор устроен относительно просто. Отрицательное напряжение формируется с помощью зарядного насоса (charge pump), то есть отдельного блока питания просто нет — напряжение берется с USB и инвертируется. Это дешево и отлично работает с низкими токами (хотя у меня были проблемы с точностью луча, что связано с таким дизайном). Отклонение лазера XY формируется с помощью 16 битного DAC, выход которого уже преобразуется операционными усилителями в необходимые уровни ±5В. Интересно, что для экономии цвет лазера формируется встроенными в STM32H7 12 битными DAC. Такое решение значительно удешевляет конструкцию, используя развитую переферию микроконтроллера.

Интересно, что по сути это довольно замысловатый ЦАП с 5 каналами. Я всегда задавался вопросом – а что если все таки использовать 32 битные звуковые ЦАП, как это делает, например, Robert Henke в своих шоу?
31🔥1🤔1
Пожалуй, это самый nerdy stuff, который я делал. Если программирование вам не интересно — пропустите это пост, позже выложу что-нибудь красивое.

Я начал вспоминать, что вообще-то умею писать на Rust, экспериментируя с ним на железе, Взял чип, который использовал ранее в своих миниатюрных устройствах. Это классный чип: Cortex-M0, бодрый 12-битный АЦП на мегасэмпл, периферия, цена — 60 центов. Задача — "помигать" светодиодом прошивкой на Rust, увидеть это на осциллографе.

Взял официальный SVD (system view description, выпускают вместе с arm-чипом), пропустил через svd2rust, далее пришлось помучаться и переписать иницализацию тактирования из CMSIS на Rust, для прошивки использовал probe-rs. Прошиться получилось не сразу, но в какой-то момент прошивка скомпилиролась и залилась! Это было удивительно само по себе. Отладив тактирование, оказалось, прошивка исполняется и не падает, но пины вообще ни в какую не поднимаются.

Кручу даташит не первую неделю, уже начинаю в себе сомневаться, как в друг чатгпт выдает: "А может SVD говно с ошибкой и там промахнулись со смещением? Запиши напрямую в память". Клацаю предложенный write_volatile, обходя кривой адрес — и вдруг осциллограф оживает) вау!

Какой вывод? Значительно углубив понимание arm чипов и в целом лучше поняв как устроена инфраструктура вокруг STM и ESP на Rust, убедился, что Rust и экзотическое железо совместимы и такое сочетание интересно. Это было сложно, но только в первый раз, хоть SVD файл и требует исправления. Китайские микроконтроллеры дешевы, устойчивы к проблемам рынка и открывают интересные возможности при правильном подходе. При этом Rust дает качественно иной опыт программирования на микроконтроллерах, что мне очень нравится.
👍32
2🔥2