查看: 1563|回复: 14

[项目] 用树莓派做一个木制LED游戏显示器

[复制链接]
202002287511..png

▲  完整演示视频文末观看

该项目利用一个基于WS2812的20x10像素的LED显示屏,尺寸为78x35厘米,实现可以轻松地安装在客厅中玩复古游戏。
该矩阵屏的第一个版本建于2016年,并由许多其他人重建。这次经验被用来总结所有改进,以构建新版本的矩阵屏,并将其现在带入教学网站。


主要的新功能是Raspberry Pi Zero的更新,而不是使用Pi A和Arduino,并用蓝牙游戏手柄代替了以前的大型控制器。此外,软件也得到了改进,包括模拟器,即使您无法访问矩阵硬件,该模拟器也可以使您在计算机上开发代码。


该LED矩阵屏的一个特殊功能是特殊的木质贴面,当LED禁用时,它可以遮盖住LED。这极大地提高了非技术人员的接受度;-)

当然,如果您所在的国家/地区没有这种特殊的贴面,您还可以使用其他诸如丙烯酸树脂之类的扩散材料来隐藏LED。


耗材:
  • Raspberry Pi Zero W(如果经过一些调整,其他型号也可以使用)
  • 200 LED / ss(30 LED /m的WS2812B LED灯带)
  • 带有MAX7219的SPI LED矩阵显示器 *4
  • 电缆线
  • 蓝牙游戏手柄
  • 电源5V,至少5A
  • 用于激光切割的MDF木材
  • 木质贴面或丙烯酸扩散板
  • 电容,电阻
  • 一些螺丝



步骤1:激光切割

202002278079..png

矩阵屏的基础结构由MDF木材制成,厚度为3mm,并通过激光切割机切割。如果您没有激光切割机,可以寻求在线服务或者与当地的创客空间联系,比如上海的创客朋友可以找蘑菇云创客空间。

或者也可以使用纸板或其他较轻的材料,但是附件的材料设计为3mm的厚度,因此较薄或较厚的材料需要重新设计文件。设计是在Fusion 360中完成的。


大多数零件只是通过滑动就位而保持在一起,只有某些零件(如外框)应使用木胶将其粘合在一起。在涂任何胶水之前,请确保您之前的步骤是正确的。此外,还必须粘贴木质贴面,但这是确保一切正常之后的最后一步。


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

文件文末下载。


步骤2:安装LED
202002273421..png

202002271462..png

202002273480..png



LED灯条是标准的30 LED / m WS2812灯条,可在亚马逊,eBay或世界各地的其他在线商店购买,国内用户可以在DF官方商城购买。通常,这也是最便宜的可寻址LED灯带。

如果要使用其他LED,则必须确保30个LED/米的距离以适合矩阵图案。激光切割段具有较小的切割区域,以适合10厘米的LED宽度。该LED灯带的背面带有双面胶带,因此您可以在精确定位后直接将它们直接粘贴到MDF上。在使用胶带之前,请检查每条灯带的正确方向(DIN-DOUT方向)。


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


步骤3:组装
202002271330..png

202002279476..png

202002271812..png

202002274658..png


202002273719..png

202002276223..png

202002275970..png

202002274556..png

202002273289..png


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




步骤4:焊接
202002274189..png

202002273329..png


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



步骤5:安装SPI显示

202002276743..png



为了显示游戏成绩和文字,使用了基于LED驱动器MAX7219的LED矩阵屏显示器。它通过SPI(串行外围接口)连接到Raspberry Pi。四个8x8显示器组合成一个32x8像素点矩阵显示器。您可以在网上购买这种8x8像素显示器,也可以购买32x8像素组合显示器。

同样,您有不同的颜色选择;在这种情况下,使用红色显示。因为SPI就像移位寄存器一样工作,所以通过将第一个矩阵的数据连接到第二个矩阵的数据输入,依次将这些显示器串联在一起,依此类推,从显示器的右侧开始。


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

显示屏的接线在步骤7中显示。



步骤6:安装树莓派

202002273750..png

202002275530..png

202002274195..png



在此安装中,使用了Raspberry Pi Zero。您也可以使用任何其他Raspberry Pi型号,但是较新的型号具有集成的WiFi和蓝牙,可以轻松连接到无线游戏手柄并简化编程。

您可以使用至少两个螺钉和小的垫片将Pi固定到背板上,以固定Pi。


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

  • PIN 2:5V
  • PIN 6:GND
  • GPIO18-> LED灯条
  • GPIO11:SPI CLK -> MAX7219 matrix CLK
  • GPIO10:SPI MOSI -> MAX7219 matrix DIN
  • GPIO8:SPI CS -> MAX7219 matrix CS



步骤7:接线和电源
202002273730..png

202002275509..png


202002273806..png

202002276516..png


202002274863..png




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

为了方便矩阵屏的开/关切换,在电源插头和矩阵屏电路之间增加了一个开关。但是,由于Raspberry Pi不喜欢硬关闭,因此软件中有一个关闭选项,可以在切换矩阵屏之前通过Gamepad安全关闭Pi。

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

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

要将背板与PI和矩阵显示器固定在一起,可以使用一些小木块将它们的边缘固定,也可以使用螺钉将背板固定到位。


步骤8:设定树莓派


202002273092..png



1.下载最新的Raspian lite版镜像


2.复制到SD卡,8GB就足够了。

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

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

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

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>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)或例如Putty(Windows),启动到Pi的SSH连接。插入Pi的IP而不是192.168.xy

ssh pi@192.168.x.y

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

sudo apt-get update

sudo apt-get upgrade


10.安装pip和设置tool

sudo apt-get install python3-pip

sudo pip3 install --upgrade setuptool


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

sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixels

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 /Enable

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代码,测试和模拟器
202002275587..png

202002278786..png


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

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


该代码具有一个选项,可以使用pygame在Pi之外的模拟模式下运行,以模拟矩阵屏。这对开发新功能非常有帮助,而无需直接访问矩阵屏硬件。而且调试也容易得多。您必须设置PI常数才能激活仿真模式(第15行):

PI=False

在此模拟模式下,还可以使用键盘代替蓝牙游戏手柄。按钮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命令。打开控制台窗口,切换到包含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

并在出口0之前添加以下行:

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





步骤10:最终测试和贴面



202002277583..png



在胶合板粘贴在正面顶部之前,应先测试矩阵屏以确保所有LED都在工作。在胶合单板之前,修复某些东西要容易得多。


用过的木质贴面是一种特殊的枫木贴面纸,称为Microwood,单面覆盖有纸,厚度为0.1毫米。可以使用标准的无水纸胶将纸面直接粘合在mdf上。




步骤11:完工!!!





▲ 完整视频演示

202002275347..png

玩得开心,享受游戏!

项目来源:https://www.instructables.com/id/Wooden-LED-Gaming-Display-Powered-by-Raspberry-Pi-/





激光切割.zip

82.51 KB, 下载次数: 19

laai  初级技师

发表于 2020-2-27 18:25:55

非常棒。如果能用ESP32或UNO实现,成本可以降不少
回复

使用道具 举报

rzyzzxw  版主

发表于 2020-2-27 19:29:09

特别棒的。
回复

使用道具 举报

红通通  初级技师

发表于 2020-2-28 11:27:53

这种大型的LED简直太酷了!
回复

使用道具 举报

春秋大仙  初级技师

发表于 2020-2-28 12:07:53

酷炫酷炫!!
回复

使用道具 举报

gray6666  高级技匠

发表于 2020-2-28 13:09:57

酷。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

digi_cow  中级技匠

发表于 2020-2-28 14:56:44

亮骚到飞起
回复

使用道具 举报

shangwe4416  初级技匠

发表于 2020-3-1 08:59:15

大神门都有3D打印机、雕刻机、激光雕刻机,购置这个那个的模块勉强跟得上,这让我感到坑又大了些
回复

使用道具 举报

想成为蟑螂恶霸  见习技师

发表于 2020-3-3 11:42:20

好厉害啊 感觉人与人的差距真的是.....
回复

使用道具 举报

RRoy  高级技师
 楼主|

发表于 2020-3-3 16:12:47

视频补上了,大家可以看下效果!
回复

使用道具 举报

TuTu  见习技师

发表于 2020-3-4 09:53:11

哇这个也太酷了
回复

使用道具 举报

DFHk-0ykaN8  见习技师

发表于 2020-3-5 10:29:30

已经学习了楼主,感谢发帖。
回复

使用道具 举报

rzegkly  版主

发表于 2020-3-6 19:58:32

666
回复

使用道具 举报

代码应该敲的东  初级技师

发表于 2020-3-19 09:21:07

哇,这个酷炫
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail