搜索代码

ESP32-S3 RGB LED矩阵项目4 - 倾斜点

ESP32-S3 RGB LED矩阵项目4 - 倾斜点

项目4 - 倾斜点(通过倾斜ESP32-S3 RGB LED矩阵移动点)

项目 4 引入了内置于 ESP32-S3 RGB LED 矩阵模块中的运动传感器。与自动移动点(如项目 1)或滚动文字(项目 2 和 3)不同,该项目允许您通过倾斜电路板来控制点的位置。点根据模块背面的 QMI8658C 加速度计的实时读取,平稳移动于 8×8 RGB 显示屏上。

该系列中的所有六个项目都在一个YouTube视频中演示。视频嵌入在此页面上,因此您可以看到当板子倾斜时,点如何实时移动。该项目的完整代码会自动加载在文章下方,模块的联属购买链接出现在代码部分下方。

ESP32-S3 RGB LED矩阵模块概述

该项目使用ESP32-S3 RGB LED矩阵模块,包括:

  • ESP32-S3 微控制器带有Wi-Fi和蓝牙
  • 8×8 RGB LED 矩阵(64个可单独控制的LED灯)
  • QMI8658C 加速度计用于倾斜和运动检测的背面
  • USB接口用于编程和电力
  • 启动 / 重置按钮
  • 可用的 GPIO 引脚用于未来扩展

QMI8658C传感器读取X,Y,和Z加速度和方向值,允许点根据板子的倾斜程度向上/下/左/右移动。: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 Library
  • QMI8658(运动传感器)

在库管理器中安装它们:

  1. 打开Sketch > Include Library > Manage Libraries….
  2. 搜索Adafruit NeoMatrix→ 安装。
  3. 允许自动安装Adafruit GFXAdafruit 彩灯.
  4. 搜索QMI8658由其列出的作者 → 安装.:contentReference[oaicite:2]{index=2}

项目4的工作原理

QMI8658C传感器持续提供沿X、Y和Z轴的加速度数据。在这个项目中,我们仅使用X和Y轴来决定:

  • 点在左右(X轴)移动多远
  • 将点向上或向下移动多少 (Y 轴)

传感器值被映射到从 0 到 7 的坐标范围(适用于 8×8 LED 矩阵)。点的位置每秒更新多次,随着模块的倾斜,产生平滑的滑动效果。:contentReference[oaicite:3]{index=3}

项目 4 - 代码设置(倾斜点)

以下是项目代码顶部附近的用户可编辑设置。完整的草图会在文章下方自动显示。

矩阵销和尺寸


// 8×8 RGB matrix configuration
const int MATRIX_PIN    = 14;   // fixed pin for this board
const int MATRIX_WIDTH  = 8;
const int MATRIX_HEIGHT = 8;

离开MATRIX_PIN14它与机载矩阵直接连接。

亮度


// Overall brightness (0–255)
uint8_t matrixBrightness = 40;

如有必要,可以增加亮度,但在近距离观看时避免极端的亮度。

点颜色


// Dot color (R, G, B)
uint8_t dotRed   = 0;
uint8_t dotGreen = 200;   // light green (default)
uint8_t dotBlue  = 0;

更改这些值以创建任意颜色。例如:

  • 红色:(255, 0, 0)
  • 黄色:(255, 255, 0)
  • 白色(255, 255, 255)

运动敏感度

为了防止极端的跳变,加速度计的值通常会被限制或缩放。典型的设置如下:


// How aggressively tilt affects movement
float sensitivity = 4.0f;   // larger = faster movement across screen

如果点移动得太慢 → 增加值。如果点移动得太突然 → 减少值。

更新速度(刷新率)

您可以在更新之间添加小的延迟,以平滑运动:


// Delay between position updates (ms)
int refreshDelayMs = 20;   // lower = smoother and faster response

10-30毫秒之间的数值感觉非常灵敏。

摘要

项目4通过让您用物理动作控制LED矩阵,赋予ESP32-S3内置的QMI8658C加速度计生命。电路板的小幅倾斜使点在相同方向移动,使这个项目成为更高级的“箭头向上”和“靶子游戏”项目的完美跳板。

本文下方自动加载了完整的Tilt Dot草图。为了更好地理解,请观看视频中的倾斜演示,您可以看到点在旋转板子时移动得多么顺畅。在代码部分下方包含了购买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
ESP32 S3 Matrix displaying rainbow heart
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
802-ESP32-S3 RGB LED Matrix Project 4 - Tilt dot
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

|||您可能需要的东西

资源与参考

文件📁

Fritzing 文件