210106更新PS4手柄调试进展。
上次误会ESP32 DEVKIT开发板了,这次调试比较顺利,可以正常使用,另外测试了其他ESP32开发板也都能正常连接,目测应该和ESP32型号和主板型号无关,可能和手柄有关系(这次换了个手柄)。
测试成功主板汇总:
MINI D1 ESP32
ESP-WROOM-32D(没找到名字LM1117靠近复位按键)
ESP32 DEVKIT
TTGO T8
测试现象:
手柄连接USB用SixaxisPairTool读取MAC,修改程序中的MAC,然后运行程序,启动手柄(按PS4手柄的中间圆形键)。
手柄指示灯亮白色,闪烁两下后,变为粉色常亮。
串口输出提示连接成功。
总结:可能和手柄有关系
下边是之前的文章,老规矩先保留
之前搞过的模块(功能),今天再搞,又出问题了,没事我都习惯了。有问题就再研究,把问题都记下来,理论上以后遇到类似的问题就不愁了。
最近又(又又)要搞小车,必须得整个控制的东西,这样比较高大上...(日后单出一篇对比控制手柄的文章),总之又借了PS4的手柄
领路信息:(貌似这块应该放前边)
为啥要用ESP32?
便宜好用支持arduino生态,简单来说就是有库
为啥要用PS4手柄?
展示时候比较有面儿,(我非土豪,从朋友那借的)
为啥搞了这么久?
运气问题、坑爹的板子
这东西可以干什么用?
我打算控制视频遥控车用
相关信息:
库:PS4-esp32(PS4Controller)貌似就这一个库,两位作者aed3和openobjects的库好像是一样的,貌似是一个大佬搞出来然后改名字了,然后另一个大佬怕大家找不到...不用深究
设备:PS4手柄,朋友那借的应该是原装的。
不重要设备:DELL笔记本,坚果pro2s手机
ESP32主板:TTGO T8,注意:大坑预警,我最后就是用TTGO T8才连上的,用
ESP32 DEVKIT(下图,名字是我起的因为板子上有这个丝印)连不上
PS4手柄指示灯信息、调试总结:
通过手机或电脑蓝牙连接手柄可以看到正常情况下手柄指示灯的状态,可以用来观察对比出错原因:
(按PS键)白色缓慢闪烁(类似呼吸灯):没有连接主机
(同时按PS键和连接键(方向键旁边、左边的黑色的)5s)白色快速闪烁:手柄进入连接状态,这个是一般主机连接手柄的方法。ESP32连接PS4不用这个方法。
白色快速闪烁3-5次后熄灭:连接失败
粉灯常亮:ESP32连接PS4成功
黄色缓慢闪烁(类似呼吸灯):USB通信成功
相关工具:
PS4手柄MAC地址查看工具:SixaxisPairTool,需要使用0.3.1版本的。
不安卓手机软件Bluetooth Scanner查看的MAC和实际ESP32可以连接的MAC(SixaxisPairTool0.3.1读取的)不一样,原因待查
虽然试出来的,但掉坑的原因还不要测试,不能一杆子直接打死他,我还是很保守很客观的,下边简单梳理一下问题的查找方法。
下图所示,其实就是3个点:ESP32主板、库、PS4手柄。
库一般不会有问题,可以从github的相关提问和油管相关视频中确认;
PS手柄,一般不会有问题,可以连接电脑或手机确认蓝牙是否正常;
ESP32主板,这个没办法,由于目前市面上主板太多,没办法衡量,只能凭经验,即之前有没有使用过相关功能模块。本次出现问题的地方也的确是主板。
总结:虽然具体原因不知道(日后再说),好歹是连上了,并成功接收到了对应按键的数据。开发时候建议大家还是用大厂的靠谱的模块进行调试,要不问题真心不好找。