大数跨境
0
0

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

在3x3x12 LED矩阵上玩3D俄罗斯方块 DF创客社区
2025-01-22
1


【点击上方「蓝字」关注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 电源

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

  • 隔离电线(用于连接)

步骤

  1. 连接 ESPduino

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

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

    • 向 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个额外嵌件,用于固定配重。
    2. 固定矩阵

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

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

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

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

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

      • 使用 M3 螺丝将亚克力盖固定到主体上。可以选择在底部安装配重来增强整体的稳定性。

    组装顺序注意事项

    在组装任何组件之前插入黄铜嵌件。首先安装矩阵,然后是 ESPduino。在安装主要组件后再安装 USB-C 接口和开关。确保所有线缆整齐布置,以避免干扰外壳或其他部分。

    附加提示

    在螺丝上使用锁螺胶,防止操作过程中松动。在用亚克力盖密封外壳之前,测试电气连接。为了让整体看起来更美观,可以在组装前打磨并涂漆 3D 打印部件。

    第五步:安装

    软件

    1. 下载并安装 Arduino IDE。

    2. 添加 ESP32 板管理器。

    3. 安装以下库

    通过 Arduino IDE 库管理器:

    • FastLED

    • WiFi

    • Preferences

    • ESPForm 库https://github.com/mobizt/ESPForm

    上传代码

    1. 克隆/下载仓库

    打开终端并运行以下命令克隆仓库:

    git clone https://github.com/18Markus1984/3D-Tetris.git

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

    1. 在 Arduino IDE 中打开项目

    导航到克隆文件夹并打开.ino文件。

    1. 配置 ESP32 板

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

    1. 上传代码

    确保在工具 > 串口下选择了正确的 COM 端口。点击上传按钮,将代码烧录到 ESPduino 上。

    1. 连接到 ESP32 的 Wi-Fi 网络

      • SSID: 3D-Tetris

      • 密码: 12345678

    2. 访问网页界面

      打开网页浏览器访问: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多频段收音机


    “种菜吧!少年”——智能自主室内温室模拟器


    点击阅读👆

    【声明】内容源于网络
    0
    0
    DF创客社区
    我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
    内容 1282
    粉丝 0
    DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
    总阅读2.9k
    粉丝0
    内容1.3k