2025-1-22 15:04:44 只看该作者
333浏览
查看: 333|回复: 0
打印 上一主题 下一主题

[ESP8266/ESP32] 在3x3x12 LED矩阵上玩3D俄罗斯方块

[复制链接]
本帖最后由 RRoy 于 2025-1-22 15:04 编辑


在3x3x12 LED矩阵上玩3D俄罗斯方块图1

在3x3x12 LED矩阵上玩3D俄罗斯方块图2

这个项目的目标是做一个可以在 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界面功能
在3x3x12 LED矩阵上玩3D俄罗斯方块图3

支持多种语言(英语、德语、法语、西班牙语、意大利语),并提供以下功能:
  • 绕 X、Y、Z 轴旋转方块。
  • 在 XY 平面上移动方块。
  • 将方块放入指定位置。
所需组件
在3x3x12 LED矩阵上玩3D俄罗斯方块图4

在3x3x12 LED矩阵上玩3D俄罗斯方块图5

所需组件包括:
  • ESPduino(基于 ESP32)
  • 开关
  • USB-C 电源
  • 热缩管
  • 隔离电线
  • 108 个 PL9823 RGB LED
  • 焊接线(优选无铅)
  • 其他辅助材料如钢杆和 3D 打印部件等。

3D打印部件可以在文末下载。

在3x3x12 LED矩阵上玩3D俄罗斯方块图6
第一步:组装
组装过程分为以下几个关键阶段:
  • 焊接电路:连接 ESPduino、LED 矩阵和电源。
  • 构建 LED 矩阵:详细步骤来构建和测试 3x3x12 LED 矩阵。
  • 组装外壳:指导如何组装 3D 打印的外壳并安全固定组件。
  • 安装:配置系统以便首次使用和测试。

请按顺序遵循这些部分,确保顺利组装。
第二步:焊接电路
在3x3x12 LED矩阵上玩3D俄罗斯方块图7
所需材料
  • ESPduino(基于 ESP32)
  • 开关
  • USB-C 电源
  • 热缩管(用于固定连接)
  • 隔离电线(用于连接)
步骤
  • 连接 ESPduino
    • 将 ESPduino 的数字引脚 16 焊接到 LED 矩阵的数据输入端。
    • 将矩阵的 5V 和 GND 线连接到 ESPduino。
  • 添加电源开关
    • 在电源和电路之间安装一个开关。
    • 使用热缩管绝缘所有连接。
  • 测试电路
    • 向 ESPduino 上传一个简单的动画程序。
    • 验证整个矩阵是否按预期响应。
    • 检查是否有松动或错位的连接,并在必要时进行修复。
故障排除小提示
  • 信号连续性:确认数字引脚 16 的线连接到正确的引脚,并且没有松动。
第三步:构建 LED 矩阵所需材料
要构建 3x3x12 LED 矩阵,需要以下材料:
  • 108 个 PL9823 RGB LED
  • 带细尖的焊接台
  • 焊接线(优选无铅)
  • 隔离电线和焊接棒(用于连接)
  • 3D 打印的对齐导向器和 8mm 钢杆
组装指南
在3x3x12 LED矩阵上玩3D俄罗斯方块图8
  • 测试 LED
    • 在组装前,测试每个 LED 确保其正常工作。
    • 使用自制测试仪,将每个 LED 连接到 Arduino 并运行测试程序,验证 LED 是否点亮并正确变色。

在3x3x12 LED矩阵上玩3D俄罗斯方块图9

  • 准备矩阵框架
    • 使用提供的 3D 模型打印对齐导向器。这些导向器确保所有 LED 在焊接时准确定位。
    • 将每个 LED 插入导向器,确保引脚一致对齐。

在3x3x12 LED矩阵上玩3D俄罗斯方块图10
  • 焊接 LED
    • 每个 LED 的引脚 2(5V)应连接到公共电源总线。
    • 引脚 3(GND)应连接到地线总线。
    • 首先焊接电源连接:
    • 使用切割好的焊接棒作为电源和地线轨道。
    • 使用钻机和台钳将焊接棒拉直,确保整齐对齐。确保焊接棒是直的,否则矩阵会出现弯曲。
  • 连接信号线
    • 将每个 LED 的 DIN(数字输入)焊接到链中前一个 LED 的 DOUT(数字输出)。
    • 按预定义顺序操作,确保信号连续性。在完成每一层后测试连接,以便及早发现错误。

在3x3x12 LED矩阵上玩3D俄罗斯方块图11

  • 逐层组装
    • 从底部开始逐层构建矩阵。在完成一层后,使用小跳线或杆将其与上一层连接。确保在进行下一层之前对每一层进行测试。

在3x3x12 LED矩阵上玩3D俄罗斯方块图12
  • 完成

在3x3x12 LED矩阵上玩3D俄罗斯方块图13
  • 一旦所有 12 层完成,将矩阵固定到其 3D 打印的底座上。
  • 焊接最终的电源、地线和数据线连接到 ESPduino。
  • 使用热缩管或电工胶带固定所有连接以增强耐用性。
故障排除小提示
  • 不亮的 LED:仔细检查连接,有必要的话单独测试每个 LED。
  • 信号问题:确保正确对齐并避免线交叉。可以使用万用表测试连续性。
  • 结构完整性:如果有必要的话,可以用额外支撑加固矩阵,防止摇晃。
  • 拉直焊接棒:确保焊接棒正确拉直,以免矩阵出现弯曲。
工具与参考资料
有关焊接技术和矩阵组装的更多指导,请参考:
第四步:组装外壳
在3x3x12 LED矩阵上玩3D俄罗斯方块图14
所需材料
  • 3D 打印组件(提供 NX12 格式的 CAD 文件)。
  • 带 M3 螺纹的黄铜嵌件(共计 16 个)。
  • 用于组装的 M3 螺丝。
  • 用于外壳的亚克力板。
  • 用于 USB-C 接口的自攻螺丝。
  • 耐热垫圈(可选,用于保护螺丝点)。
  • 配重(可选,用于增加稳定性)。
设计概述
外壳在 NX12 中设计,紧凑且易于 3D 打印,与打印床的接触最小。它包括:
  • 矩阵支架:在焊接和组装过程中支撑 LED 矩阵。预先对齐的孔确保矩阵线缆正确定向。
  • 主体:包含 ESPduino 安装、USB-C 接口和开关的插槽。
  • 亚克力盖:通过 M3 螺丝牢固固定在底座上。
  • 配重支架:位于外壳底部,以防止倾倒。
组装指南
在3x3x12 LED矩阵上玩3D俄罗斯方块图15
  • 准备外壳
    • 使用 PLA 或类似材料打印外壳组件。确保所有尺寸准确以便正确对齐。
    • 使用烙铁将黄铜 M3 螺纹嵌件插入指定孔中。12 个嵌件用于固定内部组件(例如,ESPduino 支架、亚克力盖)。底部还有4个额外嵌件,用于固定配重。
  • 固定矩阵
    • 使用 M3 螺丝将 LED 矩阵固定到支架上。确保线缆通过支架中的指定孔整齐布置。
  • 安装 ESPduino
    • 将 ESPduino 附加到其 3D 打印支架上,并将其固定在外壳内。确保 ESPduino 的 USB 和 GPIO 接口与外壳开口对齐,以便访问。
  • 安装 USB-C 接口
    • 使用自攻螺丝将 USB-C 接口安装到指定插槽中。在螺丝上放置耐热垫圈,以防止损坏外壳。
  • 添加开关
    • 将开关固定在分配好的开口中。使用连接器或焊接将开关连接到电源线上。

在3x3x12 LED矩阵上玩3D俄罗斯方块图16

在3x3x12 LED矩阵上玩3D俄罗斯方块图17
  • 制作亚克力盖
    • 调整 MakerCase 上盒子的值,可以在图片中查看这些值。根据所用亚克力板修改厚度,或者使用文末提供的3D打印文件,适用于4mm 厚的亚克力板。可以使用夹具和支架在粘合时固定盖子。
  • 完成外壳
    • 使用 M3 螺丝将亚克力盖固定到主体上。可以选择在底部安装配重来增强整体的稳定性。
组装顺序注意事项
在组装任何组件之前插入黄铜嵌件。首先安装矩阵,然后是 ESPduino。在安装主要组件后再安装 USB-C 接口和开关。确保所有线缆整齐布置,以避免干扰外壳或其他部分。
附加提示
在螺丝上使用锁螺胶,防止操作过程中松动。在用亚克力盖密封外壳之前,测试电气连接。为了让整体看起来更美观,可以在组装前打磨并涂漆 3D 打印部件。
第五步:安装软件
  • 下载并安装 Arduino IDE。
  • 添加 ESP32 板管理器。
  • 安装以下库

通过 Arduino IDE 库管理器:

在3x3x12 LED矩阵上玩3D俄罗斯方块图18
上传代码
  • 克隆/下载仓库

打开终端并运行以下命令克隆仓库:
git clone https://github.com/18Markus1984/3D-Tetris.git

如果不知道如何使用命令行窗口,也可以手动访问 GitHub 仓库并将完整项目下载为 ZIP 文件。

在3x3x12 LED矩阵上玩3D俄罗斯方块图19
  • 在 Arduino IDE 中打开项目

导航到克隆文件夹并打开.ino文件。
  • 配置 ESP32 板

转到工具 > 板并选择 ESP32 开发模块。在工具 > PSRAM 下启用 PSRAM。
  • 上传代码

确保在工具 > 串口下选择了正确的 COM 端口。点击上传按钮,将代码烧录到 ESPduino 上。
  • 连接到 ESP32 的 Wi-Fi 网络
    • SSID: 3D-Tetris
    • 密码: 12345678
  • 访问网页界面

    打开网页浏览器访问:http://192.168.4.1

现在你就可以通过开始玩 3D 俄罗斯方块游戏了!

在3x3x12 LED矩阵上玩3D俄罗斯方块图20

第六步:未来改进
在3x3x12 LED矩阵上玩3D俄罗斯方块图21

在3x3x12 LED矩阵上玩3D俄罗斯方块图22

虽然该项目达到了初始目标,但仍有几个地方可以进一步改进:
  • 减少输入延迟:优化系统以提供更流畅、更灵敏的游戏体验。
  • 增强矩阵稳定性:加固矩阵结构,减少运输过程中的晃动。
  • 添加电池支持:实现电池供电,使系统便携化。
  • 优化碰撞检测和旋转算法:完善软件以消除边缘情况错误,确保无缝的游戏体验。

原文地址:https://www.instructables.com/3D-Tetris-on-a-3x3x12-LED-Matrix/

项目作者:Max Siebenschläfer

译文首发于:DF创客社区

转载请注明来源信息

3D-Tetris.zip

431.58 KB, 下载次数: 1

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail