Оглавление:

Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: 11 шагов (с изображениями)
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: 11 шагов (с изображениями)

Видео: Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: 11 шагов (с изображениями)

Видео: Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: 11 шагов (с изображениями)
Видео: DIY: Аркадный автомат своими руками 2024, Июнь
Anonim
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero

В рамках этого проекта реализуется светодиодный дисплей на основе WS2812 с разрешением 20x10 пикселей и размером 78x35 см, который можно легко установить в гостиной, чтобы играть в ретро-игры. Первая версия этой матрицы была построена в 2016 году и перестроена многими другими людьми. Этот опыт был использован для обобщения всех улучшений для создания новой версии матрицы и размещения ее на сайте Instructables.com. Основные новые функции - это обновление Raspberry Pi Zero вместо Pi A плюс Arduino и замена предыдущего большого контроллера на геймпад Bluetooth. Также было улучшено программное обеспечение, включая симулятор, который позволяет вам разрабатывать код на компьютере, даже если у вас нет доступа к аппаратному обеспечению матрицы.

Особенностью этой светодиодной матрицы является специальный деревянный шпон, которым покрывают светодиоды и скрывают их, когда светодиоды отключены. Это значительно увеличивает приемлемость для нетехнических людей;-) Конечно, если этот специальный шпон недоступен в вашей стране, вы также можете использовать другой рассеивающий материал, например акрил, чтобы скрыть светодиоды. Также в будущем планируется предоставить некоторые ключевые части, чтобы упростить восстановление проекта.

Запасы:

  • Raspberry Pi Zero W (с некоторыми адаптациями все остальные модели также будут работать)
  • 200 светодиодов / с (светодиодные ленты WS2812B с 30 светодиодами / м)
  • 4-кратный светодиодный матричный дисплей SPI с MAX7219
  • Кабели
  • Bluetooth-геймпад (например, от Pimoroni)
  • Блок питания 5В не менее 5А
  • Древесина МДФ для лазерной резки
  • Деревянный шпон или диффузионная акриловая плита
  • Конденсатор, резистор
  • Некоторые винты

Шаг 1: лазерная резка

Лазерная резка
Лазерная резка
Лазерная резка
Лазерная резка
Лазерная резка
Лазерная резка

Основание матрицы выполнено из дерева МДФ толщиной 3 мм и вырезано лазерным резаком. Если у вас нет лазерного резака, вы можете использовать онлайн-сервис, например ponoko.com или formulor.de, или связаться с ближайшим fablab / makerspace в вашей среде. Также можно использовать картон или другие более легкие материалы, но прикрепленные файлы рассчитаны на толщину 3 мм, поэтому более тонкие или более толстые материалы требуют изменения дизайна файлов. Дизайн был выполнен в Fusion 360. Большинство частей скрепляется простым сдвигом на место, только некоторые части, такие как внешние границы, должны быть склеены с помощью столярного клея. Перед нанесением клея убедитесь, что ваша матрица полностью исправна! Также необходимо наклеить деревянный шпон, но это последний шаг после того, как вы убедитесь, что все работает.

На правой (нижней) стороне объединительной платы есть вырезанный сегмент, чтобы прикрепить электронные компоненты к матрице и по-прежнему иметь доступ к этим компонентам, когда облицовка наклеена.

Шаг 2: Установите светодиоды

Установить светодиоды
Установить светодиоды
Установить светодиоды
Установить светодиоды
Установить светодиоды
Установить светодиоды

Светодиодные полосы представляют собой стандартные полосы WS2812 30 светодиодов / м, которые можно купить на Amazon, eBay или в других интернет-магазинах по всему миру. Обычно это также самая дешевая из доступных адресных светодиодных лент. Если вы хотите использовать другие светодиоды, вы должны обеспечить расстояние 30 светодиодов / м для соответствия шаблону матрицы. Сегменты, вырезанные лазером, имеют небольшие вырезанные области, соответствующие ширине светодиода 10 см. Эти светодиодные ленты имеют двустороннюю ленту на обратной стороне, поэтому вы можете просто приклеить их непосредственно к МДФ после точного позиционирования. Перед использованием ленты проверьте правильность ориентации каждой полосы (направление DIN-DOUT).

Схема подключения - зигзагообразная, поэтому в конце к матрице имеется только один входной контакт, а длина кабеля должна быть как можно короче. Чтобы правильно распределить мощность и уменьшить количество кабелей в верхней части матрицы, каждая светодиодная полоса подключена к 5V и GND в нижней части матрицы. Вы можете использовать одиночные провода или прототипы печатных плат для распределения линии 5V и GND.

Шаг 3: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Разнесенный вид помогает определить правильные детали для сборки. Просто следуйте пошаговым инструкциям по установке. Объединительная плата имеет поперечные конструкции для удержания длинных боковых стенок и некоторых коротких стенок. Если у вас возникли проблемы с установкой деталей, исправьте их наждачной бумагой.

Шаг 4: пайка

Пайка
Пайка
Пайка
Пайка

Есть разные способы спаять вместе силовые линии для разных полос. Либо вы можете использовать одиночные провода, либо какую-то общую рейку из меди, чтобы припаять разные провода. В этом случае части прототипа печатной платы использовались для направления силовых шин к полосам. У полосок WS2812B уже есть отдельные кабели питания, которые можно использовать для подключения шины питания к входу первой полосы (слева на картинке).

Шаг 5: Установите SPI Display

Установить SPI Display
Установить SPI Display

Для отображения результатов игры и текста используется светодиодный матричный дисплей на базе драйвера светодиодов MAX7219. Он подключен через SPI (последовательный периферийный интерфейс) к Raspberry Pi. Четыре дисплея 8x8 объединены в матричный дисплей 32x8 пикселей. Вы можете купить эти дисплеи 8x8 пикселей, например, для на eBay также доступны комбинированные дисплеи 32x8 пикселей. Также у вас есть разные варианты цвета; в этом случае использовались красные дисплеи. Поскольку SPI работает как регистр сдвига, дисплеи подключаются друг к другу последовательно путем соединения данных из первой матрицы с данными из второй и так далее, начиная с правой стороны дисплея.

Этот дисплей доступен для чтения только снаружи, если он расположен непосредственно за слоем фанеры. В противном случае видно только красное пятно. Таким образом, вы должны установить его поверх вырезанного сегмента объединительной платы на расстоянии 30 мм между поверхностью объединительной платы и поверхностью матрицы. Я использовал некоторые оставшиеся деревянные детали и винты, чтобы приспособить недостающие 19 мм между объединительной платой и печатными платами, но вы также можете использовать любые внешние прокладки.

Подключение дисплея показано на шаге 7.

Шаг 6: установите Pi

Установить Pi
Установить Pi
Установить Pi
Установить Pi
Установить Pi
Установить Pi

В этой установке используется Raspberry Pi Zero. Вы также можете использовать любую другую модель Raspberry Pi, но более новые модели со встроенным Wi-Fi и Bluetooth позволяют легко подключаться к беспроводным геймпадам и упростить программирование. Вы можете закрепить Pi, используя как минимум два винта и небольшие прокладки, чтобы прикрутить его к объединительной плате.

Для Raspberry Pi Zero W используются следующие контакты:

  • PIN 2: 5 В
  • ПИН 6: GND
  • GPIO18 -> светодиодные ленты
  • GPIO11: SPI CLK -> MAX7219 матрица CLK
  • GPIO10: SPI MOSI -> MAX7219 матрица DIN
  • GPIO8: SPI CS -> MAX7219 матрица CS

Некоторые люди сообщали о проблемах с использованием GPIO18 для светодиодов. В этом случае используйте GPIO21. Если это так, вам нужно изменить код в строке 21 на pixel_pin = board. D21.

Полоса WS2812B используется здесь вне ее спецификации. Обычно для этого требуется логический уровень 5 В на DIN, но Pi обеспечивает только 3,3 В. Даже если это работает в большинстве случаев, вам следует проверить это с помощью своей полоски. Если это не работает, вы можете добавить преобразователь уровня, такой как 74HCT245, или любой другой преобразователь 3V3 в 5V между Pi и полосой.

Шаг 7: Электропроводка и источник питания

Электропроводка и источник питания
Электропроводка и источник питания
Электропроводка и источник питания
Электропроводка и источник питания
Электропроводка и источник питания
Электропроводка и источник питания

Электромонтаж выполняется по схеме разводки. Источник питания - источник постоянного тока 5 В.

Для легкого включения / выключения матрицы между вилкой питания и цепями матрицы добавлен переключатель. Тем не менее, поскольку Raspberry Pi не любит жесткого выключения, в программном обеспечении есть опция выключения, чтобы безопасно выключить Pi через геймпад перед переключением матрицы.

Вывод DIN светодиодной ленты подключен через резистор к Pi, также добавлен большой конденсатор (4700 мкФ) для буферизации источника питания. Пожалуйста, ознакомьтесь с Ибергидом Adafruit для Neopixels для получения более подробной информации.

Светодиоды потребляют максимальный ток 60 мА на светодиод, поэтому возможен максимальный ток 200x60 мА = 12 А !!! Если уменьшить яркость и не использовать все светодиоды в полностью белом цвете, это скорее теоретическое значение, но оно зависит от кода, при котором достигается максимальный ток. Поэтому очень важно выбрать достаточно большой блок питания. Для большинства приложений достаточно источника питания 5 В / 5 А (25 Вт).

Чтобы закрепить объединительную плату с дисплеем Pi и Matrix, можно использовать небольшие кусочки дерева, чтобы втиснуть их в края, а также использовать винты, чтобы удерживать объединительную панель на месте.

Шаг 8: настройка Pi

Настройка Pi
Настройка Pi

1. Загрузите последний образ Raspbian lite с raspberrypi.org

2. Скопируйте его на SD-карту, достаточно 8Гб. Вы можете использовать, например, etcher для этого.

3. Перед загрузкой Pi с SD-картой подготовьте доступ к Wi-Fi и ssh.

4. Вставьте SD-карту в любой компьютер, загрузочная папка должна быть доступна

5. Скопируйте следующие строки в файл wpa_supplicant.conf (сгенерируйте его, если он не существует) и измените параметры в зависимости от вашего Wi-Fi и региона.

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev

country = US update_config = 1 network = {ssid = "Домашний Wi-Fi" psk = "mypassword" key_mgmt = WPA-PSK}

6. Добавьте пустой файл с именем ssh (без расширения) для загрузки, чтобы разрешить доступ по ssh.

7. Теперь вставьте SD-карту в Raspberry Pi и загрузите его. Проверьте свой Wi-Fi роутер, чтобы узнать IP-адрес Pi.

8. запустите SSH-соединение с Pi с помощью терминала (Linux, Mac) или, например, Шпатлевать винду. Вставьте IP-адрес Pi вместо 192.168.x.y

ssh [email protected]

9. Обновите Pi (требуется время!)

sudo apt-get update

sudo apt-get upgrade

10. Установите pip and setup tool.

sudo apt-get install python3-pip

sudo pip3 install --upgrade setuptools

11. Установите драйвер Neopixel, ws281x lib, pygame и libsdl.

sudo pip3 установить rpi_ws281x adafruit-circuitpython-neopixel

sudo pip3 установить pygame sudo apt-get install libsdl1.2-dev sudo pip3 install --upgrade luma.led_matrix

12. Включите SPI, вызвав raps-config, перейдите к пункту 5 Interfacing Options / P4 SPI / Enable.

sudo raspi-config

13. Добавьте Bluetooth-геймпад.

sudo bluetoothctl

[bluetooth] # агент на [bluetooth] # сопоставляемый на [bluetooth] # сканирование на [bluetooth] # пара aa: bb: cc: dd: ee: ff [bluetooth] # trust aa: bb: cc: dd: ee: ff [bluetooth] # подключить aa: bb: cc: dd: ee: ff [bluetooth] # выйти

где aa: bb: cc: dd: ee: ff - это MAC-адрес вашего bluetooth-геймпада. Этот адрес должен отображаться после вызова команды «сканирование включено». Убедитесь, что ваш контроллер Bluetooth готов к сопряжению, пожалуйста, проверьте руководство контроллера, как это сделать.

14. Теперь вы можете подключиться к себе через Pi, пароль по умолчанию - raspberry (пользователи Windows могут использовать Putty):

ssh [email protected]

Шаг 9: код Python, тест и симулятор

Код Python, тест и симулятор
Код Python, тест и симулятор
Код Python, тест и симулятор
Код Python, тест и симулятор
Код Python, тест и симулятор
Код Python, тест и симулятор

Код доступен на Github. games_pi_only.py и все файлы bmp необходимы.

git clone href = https://github.com/makeTVee/ledmatrix/tree/master/python/pi_only

Код имеет возможность работать в режиме симуляции вне Pi с использованием pygame для имитации матрицы. Это очень полезно для разработки новых функций без прямого доступа к аппаратному обеспечению матрицы. Также намного проще отладка. Вы должны установить константу PI, чтобы активировать режим моделирования (строка 15):

PI = ложь

В этом режиме моделирования вместо геймпада Bluetooth используется клавиатура. Кнопки 1, 2, 3, 4 отображаются на A, B, X, Y геймпада, клавиши со стрелками для направлений, «s» для начала и «x» для выбора. Вы можете использовать стандартный редактор плюс консоль или некоторые интегрированные IDE, такие как Micosoft Visual Studio Code или Jetbrain PyCharm, для разработки на вашем ПК.

Если вы используете матрицу и Raspberry Pi, вам необходимо определить:

PI = True

Чтобы скопировать код на Raspberry Pi, вы можете использовать команду scp (Windows WinSCP). Откройте окно консоли, переключитесь в папку, содержащую файлы Github, и вызовите

scp games_pi_only [email protected]: / home / pi

scp *.bmp [email protected]: / home / pi

затем подключитесь к Pi через ssh (пользователи Windows могут использовать Putty):

ssh [email protected]

после успешного входа в систему вы можете запустить код Python, вызвав:

sudo python3 games_pi_only.py

Если код работает правильно, вы можете включить автозапуск, вызвав:

sudo nano /etc/rc.local

и добавьте следующую строку перед выходом 0:

/ usr / bin / nice -n -20 python3 /home/pi/games_pi_only.py &

Сохранить (Ctrl + O) и выйти (Ctrl + X)

Шаг 10: заключительный тест и облицовка

Заключительный тест и облицовка
Заключительный тест и облицовка
Заключительный тест и облицовка
Заключительный тест и облицовка
Заключительный тест и облицовка
Заключительный тест и облицовка

Прежде чем наклеить шпон на лицевую часть, необходимо проверить матрицу, чтобы убедиться, что все светодиоды работают. Намного проще что-то исправить до того, как наклеят шпон.

Используемый деревянный шпон представляет собой специальную бумагу из кленового шпона под названием Microwood, которая с одной стороны покрыта бумагой и имеет толщину 0,1 мм. Бумажную сторону можно приклеить непосредственно к МДФ с помощью стандартного безводного клея для бумаги.

Шаг 11: результат

Результат
Результат
Результат
Результат

Получайте удовольствие и наслаждайтесь игрой!

Конкурс Raspberry Pi 2020
Конкурс Raspberry Pi 2020
Конкурс Raspberry Pi 2020
Конкурс Raspberry Pi 2020

Главный приз конкурса Raspberry Pi 2020

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