# Test **Repository Path**: gpnu_ros/test ## Basic Information - **Project Name**: Test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-16 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Xbox Series X Controller ESP32 示例 本项目基于 PlatformIO 平台,实现了 ESP32 与 Xbox Series X 手柄的通信交互。 ## 项目简介 该项目主要用于 ESP32 开发板与 Xbox Series X 手柄之间的通信,可解析手柄的按键、摇杆、扳机等输入数据,并支持振动反馈功能。 ## 硬件要求 - ESP32 开发板 - Xbox Series X / Xbox One 手柄 - USB OTG 数据线(支持数据通信) ## 软件依赖 - PlatformIO - Arduino framework - `XboxSeriesXControllerESP32_asukiaaa` 库 ## 项目结构 ``` ├── platformio.ini # PlatformIO 配置文件 ├── src/ │ ├── main.cpp # 主程序入口 │ ├── XboxControllerNotificationParser.cpp # 手柄通知解析器实现 │ ├── XboxControllerNotificationParser.h # 手柄通知解析器头文件 │ ├── XboxSeriesXControllerESP32_asukiaaa.hpp # Xbox 手柄驱动库 │ └── XboxSeriesXHIDReportBuilder_asukiaaa.hpp # HID 报告构建器 ├── include/ # 头文件目录 ├── lib/ # 库目录 └── test/ # 测试目录 ``` ## 功能特性 - 解析 Xbox Series X 手柄的按键输入 - 读取摇杆模拟值 - 读取扳机键程值 - 支持振动反馈功能 - 串口输出调试信息 ## 使用方法 ### 1. 环境配置 确保已安装 PlatformIO,使用以下命令安装依赖: ```bash pio lib install ``` ### 2. 编译上传 ```bash # 编译项目 pio run # 上传到 ESP32 pio run --target upload ``` ### 3. 串口监视器 ```bash pio device monitor ``` ## 核心 API ### XboxControllerNotificationParser 手柄通知数据解析类,提供以下方法: - `update(data, length)` - 更新手柄数据 - `toArr(data, length)` - 转换为数组格式 - `toString()` - 转换为字符串格式 ### 主程序函数 - `setup()` - 初始化配置 - `loop()` - 主循环,处理手柄数据 - `uart_feedback()` - 串口反馈输出 - `demoVibration()` / `demoVibration_2()` - 振动演示 ## 串口输出示例 手柄连接后,串口将输出类似以下格式的数据: ``` Xbox: btn:A pressed | lt:0 | rt:0 | lx:0 | ly:0 | rx:0 | ry:0 ``` ## 注意事项 1. 确保 USB 数据线支持数据通信,部分充电线无法传输数据 2. 首次配对可能需要在手柄上按下配对按钮 3. 根据您的 ESP32 开发板型号可能需要调整 `platformio.ini` 中的配置 ## 许可证 本项目仅供学习交流使用。