Жизнь Конвея на 289 физических кнопках и светодиодах

Инженер Томаш Клосовски («Coredump») собрал физическое воплощение классического клеточного автомата Джона Конвея. Проект включает матрицу 17×17 из механических переключателей NKK JB15LPF-JF (289 кнопок) с интегрированными светодиодами, управляемую микроконтроллером Microchip AVR128DA64. Каждую клетку можно включить нажатием кнопки, и симуляция развивается по стандартным правилам Жизни (клетка выживает при двух-трех соседях, мертвая рождается при ровно трех). Скорость эволюции регулируется аналоговым потенциометром от нуля до десяти итераций в секунду.
Печатная плата использует строчно-столбцовую адресацию: 17 выводов MCU коммутируют активную строку на землю, еще 17 подают напряжение на колонны. На перекрестиях зажигаются светодиоды, каждый получает около 150 мА при полной строке (общее потребление 2.5 А). Для коммутации токов, которые сам микроконтроллер не потянул бы, добавлены полевые транзисторы n- и p-канальные. Время отклика диодов требует более высокую частоту развертки, чем стоковая яркость, поэтому LED-ы горят короткими импульсами.
Ключевые факты
- Матрица 17×17 = 289 переключателей, каждый стоит около $3
- Микроконтроллер AVR128DA64, 34 GPIO для коммутации строк-столбцов, 1 ADC для потенциометра
- Каждый светодиод получает 150 мА при скважности 1/17, полная строка = 2.5 А
- Строчная адресация с диодным фотовыпрямлением для чтения нажатий кнопок
- Встроенный watchdog-таймер (15 мс) защищает от зависания во время перерисовки экрана
Ред. Классика жанра: переложить математическую игру на железо, потом потратить в 10 раз больше, чем планировал.
Почему это важно
Клеточные автоматы демонстрируют, как простые локальные правила порождают сложное глобальное поведение. «Жизнь» Конвея показывает возможность самоорганизации, паттерны осцилляции, неподвижные фигуры, движущиеся объекты. Это модель, которая фундаментальна для понимания систем в физике, биологии, информатике. Воплощение на реальном железе переводит абстракцию из компьютера в осязаемую реальность, где можно потрогать каждый переключатель и увидеть эволюцию в реальном времени без экрана.
Ред. Квантовый скачок вверх: сделать интерактивное воплощение математического объекта, когда просто запустить симуляцию проще и дешевле.
Кому это важно
Разработчики встроенных систем найдут здесь практический пример работы с матричной адресацией, импульсным ШИМ, синхронизацией логики и вывода, обработкой пользовательского ввода с одновременной перерисовкой дисплея. Электронщики увидят, как правильно коммутировать токи, которые микроконтроллер не может обеспечить напрямую (применение MOSFET-ов, правильная развертка по времени для яркости). Любители обучения через практику получат полный рабочий пример с исходным кодом и файлами PCB. Те, кто любит тактильное взаимодействие, оценят идею интерактивного физического устройства вместо сенсорного экрана.
Ред. Это не учебное пособие, это чужой любимый проект. Ценность в деталях: как он избежал ошибок, какие компромиссы выбрал, какие утечки выскочили.
Как это применить
Если вы проектируете дисплей на микроконтроллере, позаимствуйте идею строчной адресации и диодов для снижения числа выводов. Если вам нужна интерактивность (нажатия кнопок) одновременно с быстрой визуализацией, разделите логику игры и вывод: обновляйте состояние в режиме «выключено все» (imperceptible blackout), чтобы избежать артефактов. Используйте watchdog-таймер, если код может зависнуть (встроенный в АВР). Аналоговый потенциометр, подключенный к АЦП, сразу добавляет удобное управление скоростью без необходимости программирования. Исходный код и файлы PCB опубликованы, можно адаптировать под свою матрицу размером.
Ред. Рецепт работает: 1) строчная адресация; 2) разделение логики и отвода; 3) внешние транзисторы; 4) watchdog; 5) готовый код.
Можно ли доверять
Источник это персональный блог авто́ра (Томаш Клосовски), известного контрибьютора в области безопасности и embedded-систем. Статья содержит подробные технические описания, схемы, фотографии подключенного устройства в действии, видео, ссылку на исходный код на GitHub. Цифры (напряжения, токи, частоты, размеры компонентов) приводятся конкретные, проверяемые. Никаких хайпа или необоснованных выводов. Тон уважительный к техническим реальностям (стоимость, тепловыделение, время на реализацию).
Ред. Инженер, который честно потратил $30 вместо запланированных $3 на переключатели, вызывает доверие.
Риски и подводные камни
Механические переключатели дорогие: $3 за штуку, это основная статья бюджета. Если снизить стоимость, например используя дешевые кнопки + отдельные LED + 3D-печать кейкапов, время на механическую сборку взлетит. Сенсорный экран был бы функциональнее, но лишит проект тактильности. Контроль тока через переключатель требует тщательной расчета: 150 мА на светодиод при скважности 1/17 означает импульсные пики 2.5 А на всю строку, что может убить LED из-за теплового перегрева, если частота развертки недостаточна. Любая ошибка в прошивке во время перерисовки дисплея может застопить MCU с горящей строкой, повредив диоды. Поэтому защита через watchdog критична. Разработка требует практического опыта в работе с MCU, паяльником, трассировкой PCB.
Ред. Если код зависнет с полной строкой на максимальном токе, диоды сгорят. Этот риск учтен через watchdog, остальной код должен быть безопасен относительно падения напряжения.