版本协议

Public Domain

标签
标准版
#第八届立创电赛#USB游戏手柄转蓝牙手柄

创建时间:1年前

9506 0

视频

描述

<div class="document"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">注:* 为必填项</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="color: #0093e6;">请在报名阶段填写 ↓</span></strong></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 1、项目功能介绍</h3> <hr class="horizontal-splitline normal-bold-2"> <p>这是一个能够将USB 手柄转为蓝牙手柄的设备。这样,你可以将有线的 USB 手柄变为无线的手柄进行游戏。</p> <p> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*2、项目属性</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #95a5a6;"><span style="font-size: 14px;">原创首次公开</span></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 3、开源协议</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">Public Domain</p> <p style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="color: #0093e6;">请在竞赛阶段填写 ↓</span></strong></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*4、硬件部分</h3> <hr class="horizontal-splitline normal-bold-2"> <p>这次带来的方案是 ESP32 C3 配合 CH9350实现的。其中 ESP32 C3负责蓝牙,CH9350负责USB数据的解析。CH9350是 WCH (就是出品 Ch340 的那个公司)推出的USB键盘鼠标转串口通讯控制芯片。就是说USB 键盘鼠标连接到这个芯片之后,数据会转化为串口输出。关于这个芯片的功能介绍如下:</p> <ul> <li>支持12Mbps全速USB传输和1.5Mbps低速USB传输,兼容USB V2.0。</li> <li>上位机端USB端口符合标准HID类协议,不需要额外安装驱动程序,支持内置HID类设备驱动的Windows、Linux、macOS等操作系统。</li> <li>同一芯片可配置为上位机模式和下位机模式,分别连接USB-Host主机和USB键盘、鼠标。</li> <li>支持USB键盘鼠标在BIOS界面使用,支持多媒体功能键,支持不同分辨率USB鼠标。</li> <li>支持各种品牌的USB键盘鼠标、USB无线键盘鼠标、USB转PS2线等。</li> <li>上位机端和下位机端支持热插拔。</li> <li>提供发送状态引脚,支持485通讯。</li> <li>串口支持115200/57600/38400串口通信波特率。</li> <li>内置晶振和上电复位电路,外围电路简单。</li> <li>支持5V、3.3V电源电压。</li> <li>提供LQFP-48无铅封装,兼容RoHS。</li> </ul> <p>这次的方案优点是:成本比较低,体积比较小,容易DIY焊接(ESP32 C3 是我用过的最容易焊接的ESP32芯片)。能够同时支持2个USB设备,就是说你可以同时使用2个USB手柄,同时转化为蓝牙给主机使用。</p> <p>首先进行电路的设计。</p> <p>1.      主控 ESP32 C3 部分。这款主控内置了 USB 下载电路,我们设计一个 USB接口即可工作。此外,复位与下载按钮是必须的,当出现问题无法下载时,这两个按钮随时可以帮助恢复。</p> <p> </p> <p><img src="//image.lceda.cn/pullimage/bnqQMYwnGbtKRGtKj2YlxW7vxMTOZgHSXHOVHHp1.png" alt="" width="780" height="191"></p> <p> </p> <p>2.      接下来时CH9350部分,它外部电路非常简单,只需要一个 3.3uf和一个 0.1uf电容即可工作。外部的 LED1和 LED2用来指示USB工作状态,没有有效数据时会亮,有数据传输时会熄灭。其中的USB3 是一个双层USB座子,这样我们可以同时使用USB键盘鼠标。</p> <p> <img src="//image.lceda.cn/pullimage/ckPqUlIteK1Mb95TEgbHH2EYfWAmqzlBJUECwrfE.png" alt="" width="779" height="386"></p> <p> </p> <p>3.我们使用 TLV1117将5V 转为3.3V,同时还预留一个假负载,用来避免在使用充电宝供电,输出小于50ma 一段时间后自动关机的问题。</p> <p><img src="//image.lceda.cn/pullimage/H9XVxqw2Sb9wKgCNhC7uFD4psX0sEPlZ1XuPtHgb.png" alt="" width="252" height="225"><img src="//image.lceda.cn/pullimage/ucizCnznuGtrJUjvI61oJhpHTOnVYVnm5oKvorUJ.png" alt="" width="281" height="300"></p> <p>电路比较简单PCB设计也相对简单:</p> <p><img src="//image.lceda.cn/pullimage/WDit2q3bNv3hDiquKqtP0sXG13cJhvHepyCeBkAS.png" alt="" width="1430" height="949"></p> <p>预览如下:</p> <p><img src="//image.lceda.cn/pullimage/kJxR2V3CnIRdI4G65NsRnosJoQLF5oVGMPU68vWP.png" alt="" width="779" height="489"></p> <p> </p> <p> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*5、软件部分</h3> <hr class="horizontal-splitline normal-bold-2"> <p>上面就是硬件设计,接下来着手软件的设计。</p> <p>这次的软件框架,可以看作是一个蓝牙HID多功能集合体的框架。蓝牙HID和USB HID 一样,都是通过 Report Descriptor告诉主机当前的数据格式。我们需要在描述符中声明2个USB手柄,实际上用到的蓝牙HID描述符就是USB 手柄的描述符,这样也能够让我们避免复杂的数据解析:当收到数据后,无需搞清楚哪一位对应什么按键,只要完整的转发出去基即可。</p> <p> </p> <p>要点如下:</p> <p> </p> <p>1.      声明2个USB 手柄描述符,为了避免解析USB手柄数据的麻烦,我们使用 USB 手柄的 HID Report 描述符,收到数据后直接转发即可无需解析</p> <p>const uint8_t report[] ={......}</p> <p> </p> <p>2.      注册给设备</p> <p> </p> <p>  hid = new BLEHIDDevice(pServer);</p> <p>  input = hid->inputReport(1); // inputReport(2); // </p></div>

文档

PCB_#第八届立创电赛#USB游戏手柄转蓝牙手柄

BOM

ID Name Designator Footprint Quantity Manufacturer Part Manufacturer Supplier Supplier Part

附件

附件名 下载
ESP32C3CH9350U2BGamePad.7z

评论(3)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
&lt;p&gt;记得上传视频验证产品功能哦&lt;/p&gt;
立创电赛 回复
&lt;p&gt;完成项目后,可前往申请瑞萨开发板,先到先得:&lt;a href=&quot;https://diy.szlcsc.com/posts/15a52db9fd7d40c492eb505280278e45&quot;&gt;https://diy.szlcsc.com/posts/15a52db9fd7d40c492eb505280278e45&lt;/a&gt;&lt;/p&gt;
立创电赛 回复
&lt;p&gt;点赞+收藏+评论赢500元京东E卡:&lt;a href=&quot;https://diy.szlcsc.com/posts/9d4438cf6d3848d3a53c50e029514a91&quot;&gt;https://diy.szlcsc.com/posts/9d4438cf6d3848d3a53c50e029514a91&lt;/a&gt;&lt;/p&gt;
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow