专栏名称: EDN电子技术设计
EDN China电子技术设计为电子设计工程师和设计经理人提供前沿深度的电子资讯、设计实例应用方案。
目录
相关文章推荐
广东台今日关注  ·  警惕!得流感出现这些症状,要抓紧去医院 ·  昨天  
开平广播电视台  ·  一家6口, 5人中招,近期高发! ·  昨天  
广东公共DV现场  ·  知名演员因流感并发肺炎去世,为何流感会致命? ·  3 天前  
广东台今日关注  ·  中方:将反制! ·  4 天前  
51好读  ›  专栏  ›  EDN电子技术设计

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

EDN电子技术设计  · 公众号  ·  · 2025-01-22 16:37

正文

这个项目的目标是做一个可以在 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 电源

  • 热缩管(用于固定连接)

  • 隔离电线(用于连接)

步骤

  1. 连接 ESPduino

  • 将 ESPduino 的数字引脚 16 焊接到 LED 矩阵的数据输入端。
  • 将矩阵的 5V 和 GND 线连接到 ESPduino。
  • 添加电源开关

    • 在电源和电路之间安装一个开关。
    • 使用热缩管绝缘所有连接。
  • 测试电路

    • 向 ESPduino 上传一个简单的动画程序。
    • 验证整个矩阵是否按预期响应。
    • 检查是否有松动或错位的连接,并在必要时进行修复。

    故障排除小提示

    • 信号连续性:确认数字引脚 16 的线连接到正确的引脚,并且没有松动。

    第三步:构建 LED 矩阵

    所需材料

    要构建 3x3x12 LED 矩阵,需要以下材料:

    • 108 个 PL9823 RGB LED

    • 带细尖的焊接台

    • 焊接线(优选无铅)

    • 隔离电线和焊接棒(用于连接)

    • 3D 打印的对齐导向器和 8mm 钢杆

    组装指南

    1. 测试 LED
    • 在组装前,测试每个 LED 确保其正常工作。
    • 使用自制测试仪,将每个 LED 连接到 Arduino 并运行测试程序,验证 LED 是否点亮并正确变色。

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

    • 每个 LED 的引脚 2(5V)应连接到公共电源总线。
    • 引脚 3(GND)应连接到地线总线。
    • 首先焊接电源连接:
    • 使用切割好的焊接棒作为电源和地线轨道。
    • 使用钻机和台钳将焊接棒拉直,确保整齐对齐。确保焊接棒是直的,否则矩阵会出现弯曲。
  • 连接信号线

    • 将每个 LED 的 DIN(数字输入)焊接到链中前一个 LED 的 DOUT(数字输出)。
    • 按预定义顺序操作,确保信号连续性。在完成每一层后测试连接,以便及早发现错误。

    1. 逐层组装
    • 从底部开始逐层构建矩阵。在完成一层后,使用小跳线或杆将其与上一层连接。确保在进行下一层之前对每一层进行测试。
    1. 完成
    • 一旦所有 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 螺丝牢固固定在底座上。

    • 配重支架:位于外壳底部,以防止倾倒。

    组装指南

    1. 准备外壳

    • 使用 PLA 或类似材料打印外壳组件。确保所有尺寸准确以便正确对齐。
    • 使用烙铁将黄铜 M3 螺纹嵌件插入指定孔中。12 个嵌件用于固定内部组件(例如,ESPduino 支架、亚克力盖)。底部还有4个额外嵌件,用于固定配重。
  • 固定矩阵

    • 使用 M3 螺丝将 LED 矩阵固定到支架上。确保线缆通过支架中的指定孔整齐布置。
  • 安装 ESPduino

    • 将 ESPduino 附加到其 3D 打印支架上,并将其固定在外壳内。确保 ESPduino 的 USB 和 GPIO 接口与外壳开口对齐,以便访问。
  • 安装 USB-C 接口

    • 使用自攻螺丝将 USB-C 接口安装到指定插槽中。在螺丝上放置耐热垫圈,以防止损坏外壳。
  • 添加开关

    • 将开关固定在分配好的开口中。使用连接器或焊接将开关连接到电源线上。
    1. 制作亚克力盖

    • 调整 MakerCase 上盒子的值,可以在图片中查看这些值。根据所用亚克力板修改厚度,或者使用文末提供的3D打印文件,适用于4mm 厚的亚克力板。可以使用夹具和支架在粘合时固定盖子。
  • 完成外壳







  • 请到「今天看啥」查看全文