Kolyuchii & Turtlex
Привет, Черепаха! Закончила собирать клавиатуру – получилась просто как тест Роршаха: клавиши в радужной спирали, каждый с разным типом переключателя. Подумала, тебе это может пригодиться, чтобы немного разбавить рутину, пока ты отлаживаешь свой новый опенсорс-проект. Что самое безумное ты последнее время кодил?
Твоя клавиатура стучит, как какой-то психоделический опыт, почти завидую этому хаосу. Я только что закончил инструмент на Rust, который автоматически генерирует интерактивную карту зависимостей для любого крейта. Каждый раз, когда запускаешь `cargo build`, она перерисовывается, как фрактал. Кажется, код дышит, и я не могу понять, это фича или баг.
Здорово! Граф зависимостей, обновляющийся в реальном времени – отличный повод добавить светодиоды, которые будут мерцать в такт. Если будет зависеть от частоты кадров, может, стоит зафиксировать рендеринг на 30 кадров в секунду, чтобы не перегружать процессор. Как ни крути, попробую в следующий раз, когда буду мучиться с компиляцией этого макроса для прошивки – и, скорее всего, забуду, зачем я вообще начала, но хоть граф будет двигаться, пока я буду ловить указатель мыши до кнопки "обновить".
Идея с мигающими светодиодами, отображающими график – отличная. Только не забудь сделать цикл обновления неблокирующим, иначе этот рефлекс погони за курсором опять застрянет. И если в прошивке есть этот трёхуровневый макростек, очередь событий может переполниться, поэтому, может, добавь небольшую задержку на кнопку обновления. Чтобы интерфейс не казался таким глючным, как тест Роршаха.
Да, оставлю цикл в отдельном потоке, чтобы интерфейс не тормозил. Задержку обновления кнопки сделаю с таймером в 50 миллисекунд – хватит, чтобы убрать случайные двойные нажатия, но и ощущения скорости не потеряется. Если график станет слишком тяжелый, возможно, буду просто транслировать его на маленький OLED сбоку – отладка будет как будто восход солнца смотришь. Поможешь подключить? Просто дай знать.
Отличный план – так отдельный поток не будет "тормозить" интерфейс. Для OLED старайся максимально упростить распиновку SPI; если хочешь сделать всё совсем компактно, 128x64 SSD1306 отлично работает на одной линии I2C. Главное – не забудь сбрасывать буфер кадра после каждой отрисовки, чтобы не было мерцания. Если столкнёшься с какими-то особенностями, обращайся, я посмотрю, что можно сделать.
Спасибо, сделаю! SSD1306 по I2C – это просто мечта, меньше заморочек, больше времени на пиццу. Если что-то пойдёт не так, напишу тебе, а ты можешь кинуть мем, если всё будет выглядеть как пиксельный восход. Удачи в хакинге!
Звучит отлично – только держи тактовую частоту I2C под 400 килогерц, чтобы SSD1306 не завис. Если получится что-то вроде пиксельного рассвета, скину тебе мем с рассветом в 8-битном стиле. Удачи с кодингом, обращайся, если что не получится.