树莓派制造木制 LED 显示器,只需几百元,从此过瘾玩游戏
csdh11 2024-12-05 10:26 5 浏览
这个是老外做的,转载至:趣无尽 Cherry
来,首先看看效果:
本期再介绍一个基于 WS2812 的点阵显示屏项目。具有 20×10 像素单元,78×35 厘米的尺寸,刚好可以用来玩俄罗斯方块等复古游戏。
屏幕采用木质贴面,当 LED 关闭时,木贴面可以完全隐藏 LED,装饰效果非常棒。
材料清单
树莓派 Zero W × 1WS2812B 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:5VPIN 6:GNDGPIO18-> LED灯条GPIO11:SPI CLK -> MAX7219 matrix CLKGPIO10:SPI MOSI -> MAX7219 matrix DINGPIO8: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 板上。
完工!
现在可以开心的玩耍啦!
欢迎关注技术阁,发布有趣的科技资讯,分享有料的技术干货。
相关推荐
- 如何开发视频会议App? 视频会议 开发
-
过去两年多时间里,视频会议成为职场工作乃至社会常态,在各类场景中得到广泛应用。例如企业会议、培训赋能、远程咨询、产品发布、远程面试等。本案例中的视频会议app来自开发者实战,采用YonBuilder移...
- GB28181学习笔记6 解析invite命令
-
一、信令流程1.实时信令流程点播流程:上级平台向下级发送INVITE请求,请求实时视频下级平台回复200OK上级平台回复ACK确认关闭视频,上级向下级平台发送BYE请求,请求关闭视频下级平台回复20...
- 音视频基础(网络传输): RTMP封包 mp4封装是什么意思
-
RTMP概念与HTTP(超文本传输协议)同样是一个基于TCP的RealTimeMessagingProtocol(实时消息传输协议)。由AdobeSystems公司为Flash...
- python爬取B站视频弹幕分析并制作词云
-
1.分析网页视频地址:www.bilibili.com/video/BV19E…本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀。这次我选取的是自己唯一的爆款视...
- 实时音视频入门学习:开源工程WebRTC的技术原理和使用浅析
-
本文由ELab技术团队分享,原题“浅谈WebRTC技术原理与应用”,有修订和改动。1、基本介绍...
- 写了一个下载图片和视频的python小工具
-
?谁先掌握了AI,谁就掌握了未来的“权杖”。...
- 用Python爬取B站、腾讯视频、爱奇艺和芒果TV视频弹幕
-
众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕。不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列。通过分析弹幕,我们可以快速洞察广大观众对于视频...
- 「视频参数信息检测」如何用代码实现Mediainfo的视频检测功能
-
说明:mediainfo是一款专业的视频参数信息检测工具,软件能够检测视频文件的格式、画面比例、码率、音频流、声道等一系列视频参数信息。若使用代码检测更灵活,扩展性更强,本文介绍使用python+py...
- Python爬虫大佬的万字长文总结,requests与selenium操作合集
-
requests模块前言:通常我们利用Python写一些WEB程序、webAPI部署在服务端,让客户端request,我们作为服务器端response数据;但也可以反主为客利用Python的reque...
- RTC业务中的视频编解码引擎构建 视频编解码简介
-
文/何鸣...
- 深入剖析ffplay.c(14) 深入剖析案例,促进以案为鉴
-
#ifCONFIG_AVFILTERstaticintconfigure_filtergraph(AVFilterGraph*graph,constchar*filtergraph,...
- 一篇文章教会你利用Python网络爬虫抓取百度贴吧评论区图片和视频
-
【一、项目背景】百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢?今天,小编带大家通过搜索关键字来获取评论区的图片和视频。【二、项目目...
- 程序员用 Python 爬取抖音高颜值美女
-
图书+视频+源代码+答疑群,一本书带你入Python作者|星安果本文经授权转载自AirPython(ID:AirPython)目标场景相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有...
- 一周热门
-
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
IDC机房服务器托管可提供的服务
-
详解PostgreSQL 如何获取当前日期时间
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
流星蝴蝶剑:76邵氏精华版,强化了流星,消失了蝴蝶
-
PhotoShop通道
-
查看 CAD文件,电脑上又没装AutoCAD?这款CAD快速看图工具能帮你
-
WildBit Viewer 6.13 快速的图像查看器,具有幻灯片播放和编辑功能
-
光与灯具的专业术语 你知多少?
-
- 最近发表
- 标签列表
-
- serv-u 破解版 (19)
- huaweiupdateextractor (27)
- thinkphp6下载 (25)
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- sql 日期比较 (26)
- document.appendchild (35)
- 头像打包下载 (61)
- oppoa5专用解锁工具包 (23)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- f12019破解 (20)
- np++ (18)
- 魔兽模型 (18)
- java面试宝典2019pdf (17)
- unity shader入门精要pdf (22)
- word文档批量处理大师破解版 (36)
- pk10牛牛 (22)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- pcm文件下载 (23)
- jemeter官网 (31)
- iteye (18)
- parsevideo (33)