【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】

这个项目的目标是做一个可以在 3x3x12 的 LED 矩阵上玩完整功能的 3D 俄罗斯方块游戏。
该项目使用基于 ESP32 的开发板(ESPduino),并集成了网络服务器功能来实现远程控制,用户可以通过web界面进行互动游戏。
GitHub链接:https://github.com/18Markus1984/3D-Tetris
主要特点
-
自定义的 3x3x12 RGB LED 矩阵:由 108 个独立地址的 PL9823 RGB LED 组成。
-
ESP32 微控制器:用于控制 LED 并托管本地网络服务器。
-
响应式网页界面:用于游戏和实时交互。
-
开源软件:使用 C、HTML、CSS 和 JavaScript 编写。
硬件组件
-
ESPduino 控制器:结合了 ESP32 Wi-Fi 芯片和 Arduino 兼容的 GPIO 布局。
-
LED 矩阵:由 108 个 PL9823 RGB LED 组成,采用 3x3x12 格式排列。
-
自定义外壳:使用 3D 打印制作,便于组装和模块化。
-
电源供应:通过 USB-C 接口供电,并带有集成的开关。
软件功能
-
LED 控制:使用 FastLED 库进行高效的矩阵管理。
-
游戏逻辑:实现了俄罗斯方块的基本玩法,包括旋转、碰撞检测和行消除。
-
网页界面:基于 HTML/CSS 的 GUI,通过板载网络服务器托管,支持多语言。
如何工作
LED 矩阵构造
LED 矩阵由 PL9823 驱动器连接而成,每个 LED 都通过映射索引单独寻址,从而实现 3D 坐标的控制。
WEB界面功能
支持多种语言(英语、德语、法语、西班牙语、意大利语),并提供以下功能:
-
绕 X、Y、Z 轴旋转方块。
-
在 XY 平面上移动方块。
-
将方块放入指定位置。
所需组件
所需组件包括:
-
ESPduino(基于 ESP32)
-
开关
-
USB-C 电源
-
热缩管
-
隔离电线
-
108 个 PL9823 RGB LED
-
焊接线(优选无铅)
-
其他辅助材料如钢杆和 3D 打印部件等。
3D打印部件可以在文末下载。
第一步:组装
组装过程分为以下几个关键阶段:
-
焊接电路:连接 ESPduino、LED 矩阵和电源。
-
构建 LED 矩阵:详细步骤来构建和测试 3x3x12 LED 矩阵。
-
组装外壳:指导如何组装 3D 打印的外壳并安全固定组件。
-
安装:配置系统以便首次使用和测试。
请按顺序遵循这些部分,确保顺利组装。
第二步:焊接电路
所需材料
-
ESPduino(基于 ESP32)
-
开关
-
USB-C 电源
-
热缩管(用于固定连接)
-
隔离电线(用于连接)
步骤
-
连接 ESPduino
-
将 ESPduino 的数字引脚 16 焊接到 LED 矩阵的数据输入端。 -
将矩阵的 5V 和 GND 线连接到 ESPduino。 -
添加电源开关
-
在电源和电路之间安装一个开关。 -
使用热缩管绝缘所有连接。 -
测试电路
-
向 ESPduino 上传一个简单的动画程序。 -
验证整个矩阵是否按预期响应。 -
检查是否有松动或错位的连接,并在必要时进行修复。
故障排除小提示
-
信号连续性:确认数字引脚 16 的线连接到正确的引脚,并且没有松动。
第三步:构建 LED 矩阵
所需材料
要构建 3x3x12 LED 矩阵,需要以下材料:
-
108 个 PL9823 RGB LED
-
带细尖的焊接台
-
焊接线(优选无铅)
-
隔离电线和焊接棒(用于连接)
-
3D 打印的对齐导向器和 8mm 钢杆
组装指南
-
测试 LED -
在组装前,测试每个 LED 确保其正常工作。 -
使用自制测试仪,将每个 LED 连接到 Arduino 并运行测试程序,验证 LED 是否点亮并正确变色。

-
准备矩阵框架 -
使用提供的 3D 模型打印对齐导向器。这些导向器确保所有 LED 在焊接时准确定位。 -
将每个 LED 插入导向器,确保引脚一致对齐。
-
焊接 LED
-
每个 LED 的引脚 2(5V)应连接到公共电源总线。 -
引脚 3(GND)应连接到地线总线。 -
首先焊接电源连接: -
使用切割好的焊接棒作为电源和地线轨道。 -
使用钻机和台钳将焊接棒拉直,确保整齐对齐。确保焊接棒是直的,否则矩阵会出现弯曲。 -
连接信号线
-
将每个 LED 的 DIN(数字输入)焊接到链中前一个 LED 的 DOUT(数字输出)。 -
按预定义顺序操作,确保信号连续性。在完成每一层后测试连接,以便及早发现错误。

-
逐层组装 -
从底部开始逐层构建矩阵。在完成一层后,使用小跳线或杆将其与上一层连接。确保在进行下一层之前对每一层进行测试。
-
完成
-
一旦所有 12 层完成,将矩阵固定到其 3D 打印的底座上。 -
焊接最终的电源、地线和数据线连接到 ESPduino。 -
使用热缩管或电工胶带固定所有连接以增强耐用性。
故障排除小提示
-
不亮的 LED:仔细检查连接,有必要的话单独测试每个 LED。
-
信号问题:确保正确对齐并避免线交叉。可以使用万用表测试连续性。
-
结构完整性:如果有必要的话,可以用额外支撑加固矩阵,防止摇晃。
-
拉直焊接棒:确保焊接棒正确拉直,以免矩阵出现弯曲。
工具与参考资料
有关焊接技术和矩阵组装的更多指导,请参考:
-
FastLED 库文档,用于编程和故障排除 LEDs:
https://fastled.io/docs -
GreatScott 的视频教程“制作简单 5x5x5 RGB LED 立方体”来获取灵感:
https://www.youtube.com/watch?v=R-arZ31-zJo
第四步:组装外壳
所需材料
-
3D 打印组件(提供 NX12 格式的 CAD 文件)。
-
带 M3 螺纹的黄铜嵌件(共计 16 个)。
-
用于组装的 M3 螺丝。
-
用于外壳的亚克力板。
-
用于 USB-C 接口的自攻螺丝。
-
耐热垫圈(可选,用于保护螺丝点)。
-
配重(可选,用于增加稳定性)。
设计概述
外壳在 NX12 中设计,紧凑且易于 3D 打印,与打印床的接触最小。它包括:
-
矩阵支架:在焊接和组装过程中支撑 LED 矩阵。预先对齐的孔确保矩阵线缆正确定向。
-
主体:包含 ESPduino 安装、USB-C 接口和开关的插槽。
-
亚克力盖:通过 M3 螺丝牢固固定在底座上。
-
配重支架:位于外壳底部,以防止倾倒。
组装指南
-
准备外壳
-
使用 PLA 或类似材料打印外壳组件。确保所有尺寸准确以便正确对齐。 -
使用烙铁将黄铜 M3 螺纹嵌件插入指定孔中。12 个嵌件用于固定内部组件(例如,ESPduino 支架、亚克力盖)。底部还有4个额外嵌件,用于固定配重。 -
固定矩阵
-
使用 M3 螺丝将 LED 矩阵固定到支架上。确保线缆通过支架中的指定孔整齐布置。 -
安装 ESPduino
-
将 ESPduino 附加到其 3D 打印支架上,并将其固定在外壳内。确保 ESPduino 的 USB 和 GPIO 接口与外壳开口对齐,以便访问。 -
安装 USB-C 接口
-
使用自攻螺丝将 USB-C 接口安装到指定插槽中。在螺丝上放置耐热垫圈,以防止损坏外壳。 -
添加开关
-
将开关固定在分配好的开口中。使用连接器或焊接将开关连接到电源线上。
-
制作亚克力盖
-
调整 MakerCase 上盒子的值,可以在图片中查看这些值。根据所用亚克力板修改厚度,或者使用文末提供的3D打印文件,适用于4mm 厚的亚克力板。可以使用夹具和支架在粘合时固定盖子。 -
完成外壳
-
使用 M3 螺丝将亚克力盖固定到主体上。可以选择在底部安装配重来增强整体的稳定性。
组装顺序注意事项
在组装任何组件之前插入黄铜嵌件。首先安装矩阵,然后是 ESPduino。在安装主要组件后再安装 USB-C 接口和开关。确保所有线缆整齐布置,以避免干扰外壳或其他部分。
附加提示
在螺丝上使用锁螺胶,防止操作过程中松动。在用亚克力盖密封外壳之前,测试电气连接。为了让整体看起来更美观,可以在组装前打磨并涂漆 3D 打印部件。
第五步:安装
软件
-
下载并安装 Arduino IDE。
-
添加 ESP32 板管理器。
-
安装以下库
通过 Arduino IDE 库管理器:
-
FastLED
-
WiFi
-
Preferences
-
ESPForm 库
https://github.com/mobizt/ESPForm
上传代码
-
克隆/下载仓库
打开终端并运行以下命令克隆仓库:
git clone https://github.com/18Markus1984/3D-Tetris.git
如果不知道如何使用命令行窗口,也可以手动访问 GitHub 仓库并将完整项目下载为 ZIP 文件。
-
在 Arduino IDE 中打开项目
导航到克隆文件夹并打开.ino文件。
-
配置 ESP32 板
转到工具 > 板并选择 ESP32 开发模块。在工具 > PSRAM 下启用 PSRAM。
-
上传代码
确保在工具 > 串口下选择了正确的 COM 端口。点击上传按钮,将代码烧录到 ESPduino 上。
-
连接到 ESP32 的 Wi-Fi 网络
-
SSID: 3D-Tetris
-
密码: 12345678
-
访问网页界面
打开网页浏览器访问:
http://192.168.4.1
现在你就可以通过开始玩 3D 俄罗斯方块游戏了!

第六步:未来改进
虽然该项目达到了初始目标,但仍有几个地方可以进一步改进:
-
减少输入延迟:优化系统以提供更流畅、更灵敏的游戏体验。
-
增强矩阵稳定性:加固矩阵结构,减少运输过程中的晃动。
-
添加电池支持:实现电池供电,使系统便携化。
-
优化碰撞检测和旋转算法:完善软件以消除边缘情况错误,确保无缝的游戏体验。
原文地址:https://www.instructables.com/3D-Tetris-on-a-3x3x12-LED-Matrix/
项目作者:Max Siebenschläfer
译文首发于:DF创客社区
转载请注明来源信息
硬件军火库

长按扫码了解详情👆

DFRobot官方品牌店 https://dfrobot.taobao.com/
DFRobot官方旗舰店 https://dfrobot.jd.com/
3D打印文件等可以点击左下角“阅读原文”到DF创客社区论坛下载!
大家有什么想说的,欢迎在下方留言!
往期项目回顾
13岁的小创客自制了一只基于Arduino的机械臂
用FireBeetle ESP32和MQ135传感器自制一个便携式空气质量检测仪
树莓派 500详细测评:到底升级了啥?
自制一台Si4825-A10多频段收音机
“种菜吧!少年”——智能自主室内温室模拟器
点击阅读👆

