
圣诞ESP32蓝牙遥控器
简介
圣诞涂装的ESP32-S3蓝牙遥控。板载了两个自定义按键和一个自定义LED灯,支持USB-OTG和USB UART,电池供电。通过两个按键实现USB键盘, 控制视频播放。女朋友终于可以愉快的刷抖音了。
简介:圣诞涂装的ESP32-S3蓝牙遥控。板载了两个自定义按键和一个自定义LED灯,支持USB-OTG和USB UART,电池供电。通过两个按键实现USB键盘, 控制视频播放。女朋友终于可以愉快的刷抖音了。开源协议
:GPL 3.0
描述
设计背景
ESP32-S3 是一块高性能的双核处理器, 支持蓝牙的WIIF等,这个项目的设计背景是基于ESP32-S3设计出来一块ESP32-S3的核心板同时预留了两个按键用于实现蓝牙USB功能,从而使其可以控制符合支持HID协议的设备,比如说电脑,或者ipad等。(目前测试支持控制电脑和ipad的箭头上和下)。
主要物料如下
- ESP32-S3-Wroom-1 N4
- CH340 (非必选,因为ESP32-S3 具有USB-serial的功能)
- LD1117
- 按键若干
- 肖特基二极管 * 2
模块电路详解
LDO降压电路
由于ESP32-S3的工作电压在3.3v所以这里使用了一颗来自友顺电子的LD1117,实际上LD1117的电路比AMS1117要省物料的多, LD1117并不要求要钽电容来滤波,而是直接使用两个贴片电容即可,为官方推荐电路。
按键电路
按键电路这里,每一个按键都加了一个100NF的电容用来给按键消抖,但是实际测试起来发现效果并不是很理想。在实际的代码中还是需要延时30MS来消抖。在下一个版本中考虑会更换电容的容量。
串口转换和自动下载电路
、
这个电路使用了一颗来自沁恒的CH340C结合两个三极管来实现了ESP32-S3的自动下载。 第一次画这个板子没有什么经验,在焊接完成之后才发现ESP32-S3带有usb-serial,所以这一块电路可以完全的被省略掉。 直接把typec接到ESP32-S3的usb相关pin上就好。
USB-OTG电路(有问题,下文已经修复)
原理图上的这部分电路即为USB-Serial的正确电路, 由于我画板子的时候把IO19 和 IO20搞颠倒了(没有颠倒,下文已经勘误),因此我手头焊接好的板子不能直接使用USB-Serial。 但是上述的电路图我已经修改为正确的,如果有CH340也可以不使用这部分电路。
用户LED和自定义LED
晶振电路
晶振电路为可选电路, 一般不需要。
效果展示
开发板正面照
开发板背面照
问题勘误
在上面的原理图中USB-serial的功能不可用, 因为上述加了C8和C9两个电容, 现在把它去除掉之后可以不需要CH340芯片,直接烧录代码到ESP32, 顺序没有颠倒, 原理图已经修复所有的问题, 功能已经测试无误.
正确的USB-OTG原理图(移除了两个电容)
蓝牙键盘程序核心代码分析
项目是采用ESP-idf基于esp-idf的ble-hid-demo构建的. 主要为创建了一个task来获按键的状态然后通过蓝牙发送数据到电脑从而实现蓝牙键盘的功能.
设计图

BOM


评论