搜索代码

ESP32-S3 RGB LED矩阵项目6 - Cible游戏

ESP32-S3 RGB LED矩阵项目6 - Cible游戏

项目6 - 目标游戏(倾斜棋盘击中圆圈)

项目六是这个ESP32-S3 RGB LED矩阵系列中最后一个也是最具互动性的项目。通过使用板载的QMI8658C运动传感器,您可以倾斜板子,在8×8矩阵中移动一个点。一个圆形的“目标区域”位于显示屏的中间。当您的点触碰到圆圈时,颜色会改变,并且(可选)蜂鸣器会发出声响。这创造了一个简单但令人惊讶地有趣的平衡/协调游戏。

所有六个项目在一个YouTube视频中展示(嵌入在本页)。完整的游戏代码会在本文下方自动加载,模块的关联购买链接出现在代码部分下方。

ESP32-S3 RGB LED矩阵模块概述

该模块包括:

  • ESP32-S3微控制器(Wi-Fi + BLE)
  • 8×8 RGB LED 矩阵(64个可寻址的LED)
  • QMI8658C 加速度计用于倾斜和方向感应
  • USB-C电源和编程端口
  • 启动 / 重置按钮
  • 可用GPIO 引脚用于加装例如蜂鸣器或传感器的配件

对于这款游戏,加速度计是必不可少的——它持续报告X/Y倾斜,使得点能够根据棋盘角度平滑移动。该项目的视频部分清楚地展示了当你将模块向左/右/前/后倾斜时,点是如何滑动和反应的。:contentReference[oaicite:0]{index=0}

视频中涵盖的项目(时间戳)

  • 00:00- 介绍
  • 02:01- 安装 ESP32 板
  • 03:32- 安装库
  • 05:32- 项目 1:移动点
  • 11:11- 项目 2:文本滚动
  • 12:59- 项目 3:HTTP 文本
  • 16:41- 项目 4:倾斜点
  • 18:55- 项目5:向上箭头
  • 20:02-项目6:目标游戏(本项目)

此视频部分展示了点运动和圆形检测逻辑的运作,便于理解坐标的行为。:contentReference[oaicite:1]{index=1}

在Arduino IDE中安装ESP32开发板

如果您已经完成了之前的项目,则板安装已完成。否则请按照以下步骤进行:

  1. File > Preferences→ 添加ESP32板的URL。
  2. Tools > Board > Boards Manager…→ 安装 "ESP32"。
  3. 选择ESP32-S3开发板下的Tools > Board.
  4. 在下面选择正确的COM端口Tools > Port.

安装所需库

这个游戏使用:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX
  • QMI8658(运动传感器)

通过以下方式安装它们:

  1. Sketch > Include Library > Manage Libraries…
  2. 搜索:新矩阵→ 安装
  3. 安装依赖项(GFX+NeoPixel)
  4. 搜索并安装QMI8658

目标游戏的玩法

QMI8658C 加速度计提供 X 和 Y 倾斜值。这些值映射到 LED 坐标(两个方向上的 0-7)。您的点根据板子的角度在矩阵上移动。

在显示屏上绘制一个圆圈(或环),作为“目标区域”。当光点与圆圈重叠时,你就赢得了一次“命中”。此时:

  • 目标颜色变化(随机或预定义)
  • 一个可选的蜂鸣器发出嗡嗡声(如果已连接)

由于矩阵较小,圆形是通过简单的半径检查绘制的。游戏持续进行,因此你可以前后倾斜以反复击中圆形。

项目 6 - 代码设置(目标游戏)

下面是位于草图顶部的主要用户可调设置。完整代码已自动包含在本文下方。

矩阵配置


// Matrix configuration
const int MATRIX_PIN    = 14;
const int MATRIX_WIDTH  = 8;
const int MATRIX_HEIGHT = 8;

RGB矩阵是硬连接到GPIO 14 - 请勿更改。

亮度


uint8_t matrixBrightness = 40;   // 0–255

室内使用时,30-60是理想的。

点的颜色


// Dot color (R, G, B)
uint8_t dotRed   = 255;
uint8_t dotGreen = 255;
uint8_t dotBlue  = 255;

这是你通过倾斜棋盘移动的点。

圆圈颜色(随机或固定)


// Circle (target) color
uint8_t circleRed   = 0;
uint8_t circleGreen = 0;
uint8_t circleBlue  = 255;

// If true, choose a new random color each time the dot hits
bool randomCircleColor = true;

设置randomCircleColor = false;如果你想要固定的颜色。

圆的半径


// Target size (radius)
int targetRadius = 3;   // 3 fits well on 8×8 matrix

较大的半径使游戏变得更简单;较小的则使其更困难。

倾斜灵敏度


// Sensitivity of tilt mapping
float tiltScale = 4.0f;   // increase = faster movement across screen

如果点移动得太快或跳动,请减少这个数字。

蜂鸣器设置(可选)


// Buzzer pin (optional)
int buzzerPin = 6;      // connect buzzer + to pin 6, – to GND
bool useBuzzer = true;  // set false to disable sound

如果不连接蜂鸣器,简单设置useBuzzer = false;

摘要

项目 6 结合了之前项目中学到的所有内容:矩阵绘图、加速度计输入、颜色控制、运动平滑和可选的声音。倾斜板子会移动点,击中圆圈会改变其颜色并(可选地)触发蜂鸣声。这是一个在紧凑的 RGB 显示器上演示运动感应的有趣示例。

该文章下方会自动展示完整的“目标游戏”代码。您还可以观看视频的第六部分,了解点是如何移动的以及如何检测击中。如果您想要自己构建游戏,购买ESP32-S3 RGB LED矩阵模块的链接将出现在代码部分下方。

图像

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix-3
ESP32 S3 Matrix displaying rainbow heart 3
ESP32 S3 Matrix displaying rainbow heart 3
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
804-ESP32-S3 RGB LED Matrix Project 6 - Cible game
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

|||您可能需要的东西

资源与参考

文件📁

Fritzing 文件