使用ESP32手持游戏手柄并通过BLE进行DIY设计

DIY使用ESP32手持游戏手柄并通过BLE进行通信。

硬件组件:esp32×1 ws2812b×6操纵杆×2角度按钮×2按钮×818560电池和电池座×2三向拨动开关×1带有保护的TP4056电池充电电路×1 MT3608升压转换器×1软件应用和在线服务:ArduinoIDE手动工具和制造机:烙铁(通用)这是用ESP32微控制器制成的DIY手持游戏手柄。

您可能以前曾经看过这样的游戏控制器。

但是大多数使用Arduino。

更具体地说,是Arduinopromicro或Leonardo开发板。

因为这些板通过USB支持HID或人机界面设备。

但是esp32没有此功能。

那我们该怎么办呢?嗯,esp32确实具有BLE或低功耗蓝牙功能,我们可以使用它通过蓝牙进行无线通信。

因此,我们将ESP32模块作为中央控制器,然后有一个USBC型端口和一个3.3v稳压器,可以将5v转换为3.3v。

然后,我们有了编程电路,它使用具有自动编程模式的ch340cusb到串行转换器,以及使用双工晶体管的自动复位电路。

我们还具有电池充电电路以及过充和过放保护功能。

然后使用升压转换器ic将其升压至5v。

接下来,我们有操纵杆,D-Pad按钮,触发按钮,NeopixelLED和i2c端口。

最后,有一个三向开关,可以在USB电源和电池电源之间切换。

游戏手柄具有:·2个模拟操纵杆·2个触发按钮·2个D-Pad·6个可寻址的RGBLED·一个i2c端口。

它可以使用两节18650锂离子电池运行,并且可以使用USBC类型的端口进行更改。

它也可以用来对微控制器进行编程。

该设计的灵感来自于新的ps5控制器,使其外观更好。

GPIO4使用分压器连接到电池。

这样我们就可以测量电池电压了。

NeoPixelLED将指示控制器是否连接到设备或电池电压是否低。

该代码基于lemmingDev的BLEGamepad库。

在代码中,我为不同的输入定义了所有GPIO引脚。

然后在设置中有一些初始的led动画。

将开发板连接到设备后,所有LED均将变为绿色。

并且它将以先前定义的时间间隔检查电池电压。

然后,我们获得按钮状态并相应地设置游戏手柄按钮。

然后,我们采用模拟输入并将其映射到适当的值。

最后根据我们收到的值设置轴。

上载代码后,打开智能手机或PC上的Bluetooth菜单,您将看到一个弹出的新设备。

单击此按钮将其连接,您就可以开始游戏了。

联系方式

AEC-Q200汽车级组件符合汽车工业标准。耐硫厚膜、精密薄膜、电流传感、电阻阵列、MELF电阻等系列产品可用于汽车照明、媒体、电力系统、仪表等领域。

查看详情

在线咨询