百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

树莓派制造木制 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主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀。这次我选取的是自己唯一的爆款视...

IMX8基于FlexSPI、PCIe与FPGA的高速通信开发详解

前言...

实时音视频入门学习:开源工程WebRTC的技术原理和使用浅析

本文由ELab技术团队分享,原题“浅谈WebRTC技术原理与应用”,有修订和改动。1、基本介绍...

当YOLOv5遇见OpenVINO yolov5 opencv

...

写了一个下载图片和视频的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)目标场景相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有...