当前位置:首页 > 物联网 > 大鱼机器人
[导读]本期再介绍一个基于 WS2812 的点阵显示屏项目。具有 20×10 像素单元,78×35 厘米的尺寸,刚好可以用来玩俄罗斯方块等复古游戏。屏幕采用木质贴面,当 LED 关闭时,木贴面可以完全隐藏 LED,装饰效果非常棒。

MAKER:maketvee/译:趣无尽 
本期再介绍一个基于 WS2812 的点阵显示屏项目。具有 20×10 像素单元,78×35 厘米的尺寸,刚好可以用来玩俄罗斯方块等复古游戏。
屏幕采用木质贴面,当 LED 关闭时,木贴面可以完全隐藏 LED,装饰效果非常棒。


材料清单

树莓派 Zero W × 1
WS2812B LED(30 LED/m) × 200
带有 MAX7219 的 SPI LED 点阵显示器 × 4
电线 × 若干
蓝牙游戏手柄 × 1
电源5V 5A × 1
激光切割的 MDF 板 × 若干
木质贴面或扩散板 × 若干
电容 × 1
电阻 × 1
螺丝 × 若干

制作外框

点阵屏的框架由 MDF 木材制成,厚度为 3mm,并通过激光切割机切割。

大多数零件只是通过嵌入固定,只有某些零件(如外框)应使用木胶将其粘合在一起。

在涂任何胶水之前,请确保之前的步骤是正确的。此外,还必须粘贴木质贴面,但这是确保一切正常之后的最后一步。

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

激光切割文件请在项目文件库中下载。
https://make.quwj.com/project/209

安装 LED

LED 灯条是标准的 30 LED/m WS2812 灯条。

激光切割段具有较小的切割区域,以适合 10cm 的 LED 宽度。该 LED 灯带的背面带有双面胶带,因此可以在精确定位后直接将它们直接粘贴到 MDF 上。

在使用胶带之前,请检查每条灯带的正确方向( DIN-DOUT 方向)。

接线方式为锯齿形,因此在最后,点阵屏只有一个输入引脚,电缆长度应尽可能短。

为了正确分配电源并减少点阵屏顶部的布线,每个 LED 灯条都连接到点阵屏底部的 5V 和 GND。可以使用单线或原型 PCB 来分配 5V 和 GND 线。

组装





只需按照分步安装图片进行操作即可。背板具有交叉结构,以固定长侧壁和一些短侧壁。如果在安装部件时遇到问题,请使用砂纸打磨处理。

焊接


有多种方法可以将不同灯带的电源线焊接在一起。可以使用单根电线或某种铜制共轨来焊接不同的电线。

在这种情况下,使用原型 PCB 块将电源轨引导到灯带。WS2812B 灯带已经有单独的电源电缆,可以使用它们将电源轨连接到第一个灯带输入(图片的左侧)。

安装 SPI 显示

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

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

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

显示屏的接线将在下面的步骤中进行讲解。

安装树莓派

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

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


对于树莓派 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

接线和电源

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


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

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

每个 LED 消耗的最大电流为 60mA,因此最大电流为 200x60mA = 12A 是可以的。通过降低亮度并且不使用所有全白 LED,这虽然是一个理论值,但取决于达到最大电流的代码。

因此,选择足够大的电源非常重要。对于大多数应用,具有 5V/5A(25W)的电源就足够了。

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

配置树莓派

1、下载最新的 Raspian Lite 版镜像并安装,参考教程:
https://shumeipai.nxez.com/2013/09/07/how-to-install-and-activate-raspberry-pi.html

2、配置网络,参考教程:
https://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

3、在 boot 分区下添加一个名为 ssh(没有任何扩展名)的空文件以启动以启用 ssh 访问。

4、将 SD 卡插入树莓派并启动它。

5、运行下面的命令安装软件和依赖。

sudo apt-get install python3-pip
sudo pip3 install --upgrade setuptool

6、安装 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

7、通过调用 raps-config 启用 SPI,导航至 5 接口选项 /P4 SPI/Enable

sudo raspi-config

8、添加蓝牙游戏手柄

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”命令后,会显示该地址。确保蓝牙控制器已准备好配对,请检查控制器手册以了解如何进行配对。

9、现在,可以通过以下方式连接到树莓派,默认密码是 raspberry(Windows 用户可以使用 Putty):

ssh pi@192.168.x.y


Python 代码,测试和模拟器



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

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

该代码具有一个选项,可以使用 pygame 在树莓派之外的模拟模式下运行,以模拟点阵屏。这对开发新功能非常有帮助,而无需直接访问点阵屏硬件。

而且调试也容易得多。必须设置PI常数才能激活仿真模式(第 15 行):

PI=False

在此模拟模式下,还可以使用键盘代替蓝牙游戏手柄。按钮 1、2、3、4 分别映射到游戏手柄的 A,B,X,Y,方向箭头键,“s”表示开始,“x”表示选择。可以使用标准编辑器以及控制台,也可以使用某些集成的 IDE(例如 Micosoft Visual Studio Code 或 Jetbrain PyCharm)在 PC 上进行开发

如果使用矩阵和树莓派,则必须定义:

PI=True

要将代码复制到树莓派,可以用 scp 命令。打开控制台窗口,切换到包含 Github 文件的文件夹并运行:

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

然后通过 ssh 连接到树莓派(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 &

测试和贴面

在将胶合板粘贴在正面顶部之前,应先测试点阵屏以确保所有 LED 都能正常工作。


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

完工!


现在可以开心的玩耍啦!

本项目文件库地址:
http://make.quwj.com/project/209

via instructables.com/id/Wooden-LED-Gaming-Display-Powered-by-Raspberry-Pi-/

-END-

往期好文合集

【开源项目】特斯拉+树莓派实现车牌识别检测系统
看完这篇文章,还不会做平衡小车,你来打我。
机器人是如何群居生活的?

  最 后  
 

若觉得文章不错,转发分享,也是我们继续更新的动力。

5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等

在公众号内回复「更多资源」,即可免费获取,期待你的关注~

长按识别图中二维码关注

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭