这个项目的目标是做一个可以在 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界面功能
支持多种语言(英语、德语、法语、西班牙语、意大利语),并提供以下功能:
所需组件
所需组件包括:
3D打印部件可以在文末下载。
第一步:组装
组装过程分为以下几个关键阶段:
-
焊接电路:连接 ESPduino、LED 矩阵和电源。
-
构建 LED 矩阵:详细步骤来构建和测试 3x3x12 LED 矩阵。
-
组装外壳:指导如何组装 3D 打印的外壳并安全固定组件。
-
请按顺序遵循这些部分,确保顺利组装。
第二步:焊接电路
所需材料
步骤
-
-
将 ESPduino 的数字引脚 16 焊接到 LED 矩阵的数据输入端。
-
将矩阵的 5V 和 GND 线连接到 ESPduino。
故障排除小提示
-
信号连续性:确认数字引脚 16 的线连接到正确的引脚,并且没有松动。
第三步:构建 LED 矩阵
所需材料
要构建 3x3x12 LED 矩阵,需要以下材料:
组装指南
-
-
-
使用自制测试仪,将每个 LED 连接到 Arduino 并运行测试程序,验证 LED 是否点亮并正确变色。
-
-
使用提供的 3D 模型打印对齐导向器。这些导向器确保所有 LED 在焊接时准确定位。
-
-
-
每个 LED 的引脚 2(5V)应连接到公共电源总线。
-
-
-
-
使用钻机和台钳将焊接棒拉直,确保整齐对齐。确保焊接棒是直的,否则矩阵会出现弯曲。
-
将每个 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 文件)。
-
-
-
-
-
-
设计概述
外壳在 NX12 中设计,紧凑且易于 3D 打印,与打印床的接触最小。它包括:
-
矩阵支架:在焊接和组装过程中支撑 LED 矩阵。预先对齐的孔确保矩阵线缆正确定向。
-
主体:包含 ESPduino 安装、USB-C 接口和开关的插槽。
-
-
组装指南
-
-
使用 PLA 或类似材料打印外壳组件。确保所有尺寸准确以便正确对齐。
-
使用烙铁将黄铜 M3 螺纹嵌件插入指定孔中。12 个嵌件用于固定内部组件(例如,ESPduino 支架、亚克力盖)。底部还有4个额外嵌件,用于固定配重。
-
使用 M3 螺丝将 LED 矩阵固定到支架上。确保线缆通过支架中的指定孔整齐布置。
-
将 ESPduino 附加到其 3D 打印支架上,并将其固定在外壳内。确保 ESPduino 的 USB 和 GPIO 接口与外壳开口对齐,以便访问。
-
使用自攻螺丝将 USB-C 接口安装到指定插槽中。在螺丝上放置耐热垫圈,以防止损坏外壳。
-
将开关固定在分配好的开口中。使用连接器或焊接将开关连接到电源线上。
-
-
调整 MakerCase 上盒子的值,可以在图片中查看这些值。根据所用亚克力板修改厚度,或者使用文末提供的3D打印文件,适用于4mm 厚的亚克力板。可以使用夹具和支架在粘合时固定盖子。