# ESP32-nrf串口屏遥控器 **Repository Path**: gxu-robotz-rc/Serialscreen_Controller ## Basic Information - **Project Name**: ESP32-nrf串口屏遥控器 - **Description**: 调试很好用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-13 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Serialscreen Controller — R1R2 双摇杆串口屏遥控器 基于 ESP32 的双摇杆遥控器固件,配合 Nextion 串口屏实现数据可视化与交互式校准。 --- ## 硬件组成 | 组件 | 说明 | |------|------| | 主控 | ESP32-DevKit | | 左摇杆 | X 轴 → GPIO 39,Y 轴 → GPIO 36 | | 右摇杆 | X 轴 → GPIO 34,Y 轴 → GPIO 35 | | 串口屏 | Nextion HMI,UART2(RX: GPIO 16,TX: GPIO 17),波特率 115200 | --- ## 功能 ### 1. 摇杆数据采集 - 12-bit ADC,原始值范围 0–4095 - 5 点滑动平均滤波,减少噪声 - 映射为 0–200(100 = 中心),中心附近 ±10 死区防漂移 ### 2. 交互式校准 - 校准数据通过 `Preferences` 库存储于 ESP32 Flash,掉电不丢失 - 8 步校准流程:左右摇杆各轴的最小值、最大值与中心值 - 校准过程中实时显示当前值与已保存值 ### 3. 数据发送协议 **发送包格式(ESP32 → 接收端):** ``` 0xAA 0x55 J1X J1Y J2X J2Y [7字节屏幕指令] CHK 0xEE ``` **接收包格式(串口屏 → ESP32):** ``` 0x91 [7字节指令码] 0xAA ``` **主要指令码:** | 指令码 | 功能 | |--------|------| | `0x01 × 7` | 进入校准模式 | | `0x11 × 7` | 退出校准/测试模式 | | `0x12 × 7` | 进入测试模式 | | `0x02–0x09` | 保存各轴最小/最大值 | | `0x10` | 保存中心值 | ### 4. 运行模式 | 模式 | 更新频率 | 说明 | |------|----------|------| | 正常模式 | 50 Hz | 持续发送摇杆数据包 | | 校准模式 | 5 Hz | 屏幕显示原始值与已存值,可逐步保存 | | 测试模式 | 50 Hz | 屏幕显示映射后的 0–200 值 | --- ## 项目结构 ``` Serialscreen_Controller/ ├── control_r1r2/ # 固件工程(PlatformIO) │ ├── src/ │ │ └── main.cpp # 主程序 │ └── platformio.ini # 构建配置 └── R1R2串口屏/ # HMI 工程资源 ├── cont.HMI # Nextion 屏幕工程文件 ├── 图片/ # UI 图片素材 └── 字库/ # 中文字库(32px 黑体 GB) ``` --- ## 开发环境 - **IDE:** VS Code + PlatformIO 插件 - **平台:** Espressif32(Arduino 框架) - **依赖库:** `Arduino.h`、`Preferences.h`(ESP32 内置) ### 构建与烧录 ```bash # 编译 pio run # 烧录 pio run --target upload # 打开串口监视器 pio device monitor --baud 115200 ``` --- ## 串口屏工程 `R1R2串口屏/cont.HMI` 为 Nextion Editor 工程文件,包含以下显示元素: - `n0`–`n11`:数值显示控件,分别对应各轴原始值、校准限位值与映射值 - 按钮触发对应指令码,控制模式切换与校准步骤 使用 [Nextion Editor](https://nextion.tech/nextion-editor/) 打开并编译后烧录至串口屏。 --- ## 应用场景 适用于需要双模拟量输入、可视化反馈与现场校准的遥控场景,如: - 机器人遥控 - 无人机/RC 飞行器地面站 - 工程机械遥控操作台