由 Raspberry Pi Zero 提供支持的木制 LED 游戏显示器

ChangeCode
转载
发布时间: 2025-06-14 15:10:56 | 阅读数 0收藏数 0评论数 0
封面
该项目实现了一个基于 WS20 像素 WS2812 的 LED 显示屏,尺寸为 78x35 厘米,可以轻松安装在客厅玩复古游戏。该矩阵的第一个版本建于 2016 年,并由许多其他人重建。此经验用于总结所有改进,以构建新版本的矩阵,并将其引入 instructables.com。

准备工作:

材料:

  1. Raspberry Pi Zero W(经过一些调整,所有其他型号也可以使用)
  2. 200 LED/s(WS2812B 个 LED 灯条,30 LED/m)
  3. 4 个 SPI LED 矩阵显示器,带 MAX7219
  4. 电缆
  5. 蓝牙游戏手柄
  6. 电源 5V,至少 5A
  7. 用于激光切割的 MDF 木材
  8. 木质单板或扩散亚克力板
  9. 电容器、电阻器
  10. 一些螺丝
1

激光切割

矩阵的底座结构由厚度为 3 毫米的 MDF 木材制成,并由激光切割机切割。如果您没有激光切割机,您可以使用 ponoko.comformulor.de 等在线服务,或者联系您环境中的下一个 fablab/创客空间。也可以使用纸板或其他较轻的材料,但所附文件的设计厚度为 3 毫米,因此更薄或更厚的材料需要重新设计文件。设计是在 Fusion 360 中完成的。 大多数部件只需将它们滑入到位即可固定在一起,只有一些部件(如外边框)应使用木胶粘合在一起。在涂抹任何胶水之前,请确保您的基质完全正常工作!此外,还必须粘上木饰面,但这是确保一切正常后的最后一步。

在背板的右侧(下)侧,有一个切口段用于将电子元件固定到矩阵上,并且在胶合单板时仍然可以接触到这些元件。

DXF
border_short.dxf
4.55KB
DXF
short_sid_bottom.dxf
159.54KB
DXF
long_side_border.dxf
175.03KB
DXF
short_side.dxf
180.29KB
DXF
short_sid_nose.dxf
180.25KB
DXF
all_parts.dxf
43.53KB
DXF
border_long.dxf
4.14KB
DXF
backplane.dxf
230.40KB
DXF
long_side.dxf
172.89KB
2

安装 LED

LED 灯条是标准的 30 LED/m WS2812 灯条,可在亚马逊、eBay 或世界各地的其他在线商店购买。这通常也是最便宜的可寻址 LED 灯条。如果您想使用其他 LED,则必须确保 30 LED/m 的距离适合矩阵图案。激光切割的段具有较小的切口区域,以适应 10 cm 的 LED 宽度。这款 LED 灯条背面有双面胶带,因此您可以在精确定位后将它们直接粘在 MDF 上。在使用胶带之前,请检查每个条带的正确方向(DIN-DOUT 方向)。

布线模式是锯齿形的,因此在最后,矩阵只有一个输入引脚,电缆长度尽可能短。为了适当分配功率并减少矩阵顶部的布线,每个 LED 灯条都连接到矩阵底部的 5V 和 GND。您可以使用单线或原型 PCB 来分配 5V 和 GND 线。

3

组装

分解视图有助于识别装配的正确件。只需按照分步安装图片进行作即可。背板具有交叉结构,用于固定长侧壁和一些短壁。如果您在安装部件时遇到问题,请使用砂纸修复它。

4

焊接

有多种方法可以将不同条纹的电源线焊接在一起。您可以使用单根电线或某种铜制共轨来焊接不同的电线。在这种情况下,使用原型 PCB 将电源轨引导到条带。WS2812B条已经有单独的电源线,您可以使用它们将电源轨连接到第一个条带输入(图片左侧)。

5

安装 SPI Display

为了显示游戏分数和文本,使用了基于 LED 驱动器MAX7219的 LED 矩阵显示。它通过 SPI(串行外设接口)连接到 Raspberry Pi。四个 8x8 显示器组合成一个 32x8 像素的点阵显示器。您可以在 eBay 等位置购买这种 8x8 像素的显示器,也有组合的 32x8 像素显示器可供选择。此外,您还有其他颜色选项;在这种情况下,使用了红色显示器。因为 SPI 的工作原理类似于移位寄存器,所以通过将第一个矩阵的数据连接到第二个矩阵的数据,以此类推,从显示器的右侧开始,将显示器串行连接在一起。

如果此显示直接放置在单板层后面,则只能从外部读取。否则,则只有红色模糊可见。因此,您必须将其安装在背板开孔段的顶部,背板表面与矩阵表面之间的距离为 30mm。我使用了一些剩余的木片和螺钉来调整背板和 PCB 之间缺失的 19 毫米,但您也可以使用任何外部类型的垫片。

显示屏的接线如步骤 7 所示。

6

安装树莓派

在此安装中,使用了 Raspberry Pi Zero。您也可以使用任何其他 Raspberry Pi 型号,但具有集成 WiFi 和蓝牙的较新型号可让您轻松连接到无线游戏手柄并简化编程。 您可以通过至少使用两个螺钉和小垫片将 Pi 拧到背板来固定 Pi。

对于 Raspberry Pi Zero W,使用以下引脚:

  1. 引脚 2:5V
  2. 引脚 6:接地
  3. GPIO18 -> LED 灯条
  4. GPIO11:SPI CLK -> MAX7219 矩阵 CLK
  5. GPIO10:SPI MOSI > MAX7219 矩阵 DIN
  6. GPIO8:SPI CS -> MAX7219 矩阵 CS

有些人报告了将 GPIO18 用于 LED 的问题。在这种情况下,请使用 GPIO21。如果是这样,您必须将第 21 行中的代码更改为 pixel_pin = board。第 21 页。

WS2812B条在其规格之外使用。通常它需要在 DIN 上具有 5V 的逻辑电平,但 Pi 仅提供 3,3V。即使这在大多数情况下有效,您也应该用您的试纸进行测试。如果它不起作用,您可以在 Pi 和条带之间添加一个电平转换器,如 74HCT245 或任何其他 3V3 到 5V 转换器。

7

接线和电源

根据布线方案进行布线。电源为 5V 直流电源。

为了轻松打开/关闭矩阵,在电源插头和矩阵电路之间添加了一个开关。尽管如此,由于 Raspberry Pi 不喜欢硬关闭,因此软件中有一个关机选项,可以在切换矩阵之前通过 Gamepad 安全地关闭 Pi。

LED 灯条 DIN 引脚通过电阻器连接到 Pi,还添加了一个大电容器 (4700uF) 以缓冲电源。有关更多详细信息,请查看 Adafruit Überguide for Neopixels

每个 LED 的最大电流为 60mA,因此最大电流为 200x60mA = 12A!!通过降低亮度并且不使用所有全白 LED,这更像是一个理论值,但这取决于达到最大电流的代码。所以选择足够大的电源非常重要。对于大多数应用,5V/5A (25W) 的电源就足够了。

要使用 Pi 和 Matrix 显示器固定背板,可以使用一些小木头在边缘擦洗它们,也可以使用螺钉将背板固定到位。

8

设置 Pi

1. 从 raspberrypi.org 下载最新的 Raspbian lite 映像

2. 复制到 SD 卡,8GB 就足够了。您可以使用 例如 etcher 来执行此作。

3. 使用 SD 卡启动 Pi 之前,请准备 WIFI 和 ssh 访问

4. 将 SD 卡插入任何计算机,应可以访问启动文件夹

5. 将以下行复制到文件 wpa_supplicant.conf 中(如果不存在,请生成它)并根据您的 Wifi 和区域更改参数

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=US
update_config=1
network={
ssid="Home Wifi"
psk="mypassword"
key_mgmt=WPA-PSK
}

6. 添加一个名为 ssh 的空文件(不带任何扩展名)以启用 ssh 访问

7. 现在将 SD 卡插入 Raspberry Pi 并启动它。检查您的 wifi 路由器以获取 Pi 的 IP 地址

8. 使用终端(Linux、Mac)或 Windows 上的 Putty 等启动与 Pi 的 SSH 连接。插入 Pi 的 IP 而不是 192.168.x.y

ssh pi@192.168.x.y

9. 更新 Pi(需要一些时间!

sudo apt-get update

sudo apt-get upgrade

10. 安装 pip 并设置工具

sudo apt-get install python3-pip

sudo pip3 install --upgrade setuptools

11. 安装 Neopixel 驱动程序、ws281x lib、pygame 和 libsdl

sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel

sudo pip3 install pygame

sudo apt-get install libsdl1.2-dev

sudo pip3 install --upgrade luma.led_matrix

12. 调用 raps-config 启用 SPI,导航到 5 个接口选项 / P4 SPI / 启用

sudo raspi-config

13. 添加蓝牙游戏手柄

sudo bluetoothctl
[bluetooth]# agent on
[bluetooth]# pairable on
[bluetooth]# scan on
[bluetooth]# pair aa:bb:cc:dd:ee:ff
[bluetooth]# trust aa:bb:cc:dd:ee:ff
[bluetooth]# connect aa:bb:cc:dd:ee:ff
[bluetooth]# quit

其中 aa:bb:cc:dd:ee:ff 是您的蓝牙游戏手柄的 MAC 外观。此地址应在调用 “scan on” 命令后显示。确保您的蓝牙控制器已准备好配对,请查看控制器的手册如何执行此作。

14. 您现在可以通过以下方式连接到您的 Pi,默认密码为 raspberry(Windows 用户可能会使用 Putty):

ssh pi@192.168.x.y
9

Python 代码、测试和模拟器

代码可在 Github 上找到。games_pi_only.py 和所有 bmp 文件都是必需的。

git clone <a href="http://href=">href="https://github.com/makeTVee/ledmatrix/tree/master/python/pi_only</a>

该代码可以选择在 Pi 外部以模拟模式运行,使用 pygame 来模拟矩阵。这对于在不直接访问 matrix 硬件的情况下开发新功能非常有帮助。此外,调试也容易得多。您必须设置 PI 常数才能激活仿真模式(第 15 行):

PI=False

在此模拟模式下,使用 Keyboard 而不是 Bluetooth 游戏手柄。按钮 1、2、3、4 映射到游戏手柄的 A、B、X、Y,箭头键用于方向,“s”用于开始,“x”用于选择。您可以使用标准编辑器和控制台或一些集成的 IDE(如 Micosoft Visual Studio Code 或 Jetbrain PyCharm)在您的 PC 上进行开发。

如果使用矩阵和 Raspberry Pi,则必须定义:

PI=True

要将代码复制到 Raspberry Pi,您可以使用 scp 命令 (Windows WinSCP)。打开控制台窗口,切换到包含 Github 文件的文件夹,然后调用

scp games_pi_only pi@192.168.x.y:/home/pi
scp *.bmp pi@192.168.x.y:/home/pi

然后通过 ssh 连接到 Pi(Windows 用户可以使用 Putty):

ssh pi@192.168.x.y

成功登录后,您可以通过调用以下命令来启动 Python 代码:

sudo python3 games_pi_only.py

如果代码运行正确,您可以通过调用以下命令来启用自动启动:

sudo nano /etc/rc.local

并在 exit 0 之前添加以下行:

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

保存 (Ctrl+O) 和退出 (Ctrl+X)

10

最终测试和单板

在将单板涂在正面顶部之前,应测试矩阵以确保所有 LED 都正常工作。在贴上单板之前修复一些东西要容易得多。

用过的木单板是一种称为 Microwood 的特殊枫木单板纸,它的单面覆盖有纸,厚度为 0,1 毫米。纸面可以使用标准的无水纸胶直接粘在 MDF 上。

11

结果

玩得开心,享受游戏!

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载