
ESP32-S3-BOX-3-JoyStick
简介
项目基于乐鑫的 ESP32-S3-BOX-3 进行开发,旨在创建一个兼顾游戏手柄和航模遥控器的开源项目。本指南将帮助您快速上手ESP32-S3-BOX-3-JoyStick,并提供该项目的详细信息。
简介:项目基于乐鑫的 ESP32-S3-BOX-3 进行开发,旨在创建一个兼顾游戏手柄和航模遥控器的开源项目。本指南将帮助您快速上手ESP32-S3-BOX-3-JoyStick,并提供该项目的详细信息。开源协议
:Public Domain
描述
ESP32-S3-BOX-3-JoyStick
该项目基于乐鑫的 ESP32-S3-BOX-3 和 ESP32-S3-USB-Bridge 进行开发,旨在创建一个兼顾游戏手柄和航模遥控器的开源项目。
本指南将帮助您快速上手ESP32-S3-BOX-3-JoyStick,并提供该项目的所有详细信息。
本指南包括如下内容:
- 项目概述
- 硬件参考
- 应用程序开发
- 相关文档
项目概述
ESP32-S3-BOX-3-JoyStick 硬件系统由 ESP32-S3-BOX-3 开发板、 JoyStick 手柄和 ESP32-S3-USB-Bridge 接收机三部分组成。其中,ESP32-S3-BOX-3 为系统主控,JoyStick 手柄和 ESP32-S3-USB-Bridge 接收机为控制外设,ESP32-S3-BOX-3 开发板和 JoyStick 手柄之间通过 PCI-E 接口进行连接。
ESP32-S3-BOX-3-JoyStick 目前具有“游戏模式”和“RC遥控模式”:
- 游戏模式:
- USB-HID模式:使用Type-C数据线连接电脑,通过 USB-HID 协议控制电脑游戏,可自定义摇杆及按键功能。
- BLE-HID模式:该模式下JoyStick与电脑通过蓝牙进行连接,通过 BLE-HID 协议控制电脑游戏,可自定义摇杆及按键功能。
- NES模拟器模式:该模式下,可在ESP32-S3-BOX-3屏幕上显示NES模拟器中的游戏。
- RC 遥控模式:ESP32-S3-BOX-3-JoyStick 通过 ESP-NOW 无线通信协议与 ESP32-S3-USB-Bridge 等其他乐鑫官方开发板(接收机)进行配对连接,可实现对 RC遥控车、ESP-Drone四旋翼小飞机等航模的无线遥控。
硬件参考
为保证 ESP32-S3-BOX-3-JoyStick 具有较好的握持手感,本项目对 ESP32-S3-BOX-3-JoyStick 的PCB板形进行了优化设计,并为其设计了配套的3D外壳。
以下按照顺时针顺序依次介绍 JoyStick 的主要组件。
主要组件 | 介绍 |
---|---|
PCI-E接口 | 用于连接 ESP32-S3-BOX-3 开发板。 |
IO扩展芯片 | JoyStick 需要检测16个按键(包括2个摇杆按键),每个按键都需要单独使用一个 IO, 而 ESP32-S3-BOX-3 引出的 IO 口数量有限,就需要外加 IO 扩展芯片进行辅助,该项 目使用的IO扩展芯片为 74HC165D,1个芯片可以扩展8个IO,并支持级联,仅需3个 IO 即可完成对16个按键状态的检测。 |
按键 | 用于游戏控制或是控制其他设备(需自行配置),分别为上、下、左、右、X、Y、A、 B、Select、Start、LB、LT、RB、RT、左摇杆按键、右摇杆按键,全键无冲,支持多个 按键同时按下。 |
右摇杆 | 右侧摇杆。 |
电源开关 | 电池供电与充电控制开关,在电池供电和充电时需要置于 ON 档。 |
充电指示灯 | 红灯亮绿灯灭:正在充电,红灯灭绿灯亮:已充满。 |
触摸键 | 利用 ESP32-S3 内置的 Tounch Sensor,可以对人手触摸进行检测,以实现拿起唤醒/ 放下睡眠的功能。 |
左摇杆 | 左侧摇杆。 |
UART接口 | 用于 UART 通信,便于开发者通过 UART 查看系统 LOG,方便调试。 |
充电芯片 | 锂电池充电管理芯片:AP5056。 |
主要组件 | 介绍 |
---|---|
18650锂电池 | 为整个系统供电。 |
USB | 为锂电池充电和提供USB-HID功能。 |
震动马达 | 用于提供震动反馈。 |
应用程序开发
ESP32-S3-BOX-3-JoyStick 共有两个摇杆,每个摇杆(其原理类似于可调电阻,摇杆在不同位置的电阻值不同,利用串联分压原理,通过检测得出的电压值即可推算出摇杆位置)需要使用两路 ADC 进行姿态读取,除此之外,摇杆内部还有一个薄膜按键可供开发者使用。
ESP32-S3-BOX-3-JoyStick 共有 16 个物理按键,每个按键“未按下时电平为高电平,按下为低电平”,由于 ESP32-S3-BOX-3 引出的 IO 口数量有限,因此该项目使用两个 74HC165D 并行转串行芯片,开发者通过三个 IO 口模拟 SPI 通信即可读取到所有的按键状态。
震动马达通过一个三极管(S8050)进行控制,开发者只需将一个 IO 口配置为输出模式,输出高电平马达震动,输出低电平马达不震动。
具体的引脚分配请查看 ESP32-S3-BOX-3-JoyStick 原理图。
相关文档 & 资源
代码:ESP BOX 仓库
3D 打印件:见附件
设计图

BOM


评论