Оглавление:

Светодиодная матрица Game of Life 32 X 32: 8 шагов
Светодиодная матрица Game of Life 32 X 32: 8 шагов

Видео: Светодиодная матрица Game of Life 32 X 32: 8 шагов

Видео: Светодиодная матрица Game of Life 32 X 32: 8 шагов
Видео: DIY 32 * 8 точечно-матричные спектральные часы / полноцветный RGB с голосовой активацией 2024, Июнь
Anonim
Светодиодная матрица Game of Life 32 X 32
Светодиодная матрица Game of Life 32 X 32

Я был вдохновлен Jptrsn's Game of Life 16 x16, но в итоге оказался в четыре раза больше. Я нашел несколько модулей MAX7219 Dot Matrix Module 4-in-1 Display For Arduino на Bangood.com за 3,50 фунта стерлингов. довольно сложно разбить их и использовать в сетке 16x16, как я планировал, поэтому я решил сделать сетку 32x32. Вот тогда все стало сложно, так как вы не можете просто масштабировать код.

Шаг 1: Детали

Я получил свои части от BangGood, но вы можете найти их где угодно. 1. Arduino Nano (~ 2 фунта стерлингов) 2. 4 светодиодных матрицы 1x4 (~ 3,50 фунта стерлингов x 4) или поищите комплекты, которые иногда дешевле 3. Немного проводов 4. Микро-разъем USB (<1 фунт стерлингов) 5. USB источник питания (<5 фунтов стерлингов) 6. Рамка для фотографий Box 6 "x6" / 15 x 15 см (~ 4 фунта стерлингов) из местного ремесленного магазина.

Шаг 2: Инструменты

1. Пистолет для горячего клея.

2. Паяльник

3. Устройства для зачистки проводов

4. Острый нож

Шаг 3: Сборка макета

Сборка макета
Сборка макета

Одна вещь, которую я понял в этот момент, заключается в том, что нано (и, возможно, другие Arduinos) не могут обеспечить достаточно энергии для работы всех 4 матриц без сгорания источника питания! имейте в виду

Когда пришли мои платы, у них были только контакты на входном конце, а выходные контакты были незакреплены в сумке или в одном случае зажаты под дисплеем, закорачивая контакты. Оказывается, для этих дисплеев не годится (6 хороших рабочих купил). Вам нужно будет припаять выходные контакты к двум светодиодным матрицам, если они не подходят к вашей.

Компоновка довольно проста, вы можете последовательно соединить две матрицы вместе, чтобы сформировать две цепи, просто подключив выходные контакты к соответствующим входным контактам. Вы не можете связать их все за один запуск, поскольку библиотека LedControl ограничена 8 дисплеями одновременно.

Затем подключите DataIn к контакту 12, загрузите (или CS) к контакту 11 и Clock (или CLK) к контакту 10, а для другой цепи к контакту 5, 4 и 3. В качестве альтернативы вы можете выбрать любые цифровые контакты, которые вам нравятся, просто не забудьте изменить код, отражающий ваш выбор. Затем добавьте разъем USB на макетную плату. Затем подсоедините контакты v + и заземления к направляющим на макетной плате. Затем вам нужно подключить провода питания от 2 цепей к + ve и заземлению и связать заземление Arduino с землей. Как только мы закончим программирование платы, вы можете связать vin Arduino с v + и никогда больше не подключать Aurdino USB.

Шаг 4: Код

Сначала я думал, что все, что мне нужно сделать, это взять существующий код и масштабировать его до 32x32, но это немного сложнее. 1. Вам понадобится два LedControl, так как каждый может управлять только 8 MAX7219 LedControl lc [2] = {LedControl (12, 10, 11, 8), LedControl (5, 3, 4, 8)}; 2. На Nano не хватает памяти для хранения 2 полных массивов 32x32 байта, чтобы поддерживать состояние платы. (Наконец, все то время, когда я писал код Game of Life на доске во время интервью, окупается.) Итак, мы определяем Board массивы размером 32x4 и сохраняют состояние каждой ячейки как бит в байтах по всему массиву.

Шаг 5: Собираем все вместе

Сначала проверьте код и макет плат, как и ожидалось, используя метод testPattern, чтобы нарисовать диагональный крест на платах. Если это не так, значит, что-то не так с порядком инициализированных плат и / или штифтов. Затем проверьте это с помощью метода планера, который создает планер, который перемещается по экрану. Опять же, если это не сработает, проверьте порядок контактов и т. Д. Наконец, установите для основного метода значение «randomize», установите NUMITR на количество раз, которое он должен повторить перед сбросом.

Шаг 6. Создайте рамку

Подставьте это в рамку
Подставьте это в рамку

Теперь, чтобы поместить все в рамку. Сначала склеиваем горячим клеем матрицы в рамку 32x32. Не забудьте убедиться, что входной конец находится на одной стороне для всех (или измените код поиска в gridToCell, чтобы вторая плата была перевернута). Добавьте розетку и выключатель на линии 5 В и спаяйте все вместе.

Шаг 7: проблемы с фреймами

Оказывается, нужна рама побольше, чем у меня 6х6. Так что мне нужно будет вернуться, чтобы закончить это, когда у меня будет возможность добраться до магазина.

Шаг 8:

Рекомендуемые: