复活小米蓝牙手柄,让手柄控制电脑PC玩React写的网页游戏

这篇具有很好参考价值的文章主要介绍了复活小米蓝牙手柄,让手柄控制电脑PC玩React写的网页游戏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小案例系列:小米蓝牙手柄玩PC上React写的网页游戏

环境:

Windows11

Nodejs:16.10.0

Python:3.8.1

小米手柄:2015年随天猫魔盒一起购入;已经几年没碰过了

家中有娃到了玩游戏的年龄,在同学家玩过手柄以后,手机都不香了。每天摸着7,8年有多的小米手柄,眼神中充满渴望。好吧,把它跑起来。都想依靠蜂巢指纹浏览器(NestBrowser)整合成一个游戏小程序。

需求:

1、黑白或者尽量简单的游戏,坦克类是首选

2、要在电视机上玩的

开始实现之旅

一:开始第一步,寻找游戏

很快就锁定了经典游戏:

小米游戏手柄pc插件,小案例,react.js,游戏,前端

​源码地址:https://github.com/shinima/battle-city

LIVE地址:Battle City 浏览器打开这个地址就可以直接愉快的玩耍了

React开发的web小游戏,效果挺好,有些小bug,控制使用鼠标键盘。

二:开始第二步,让小米手柄能玩这个游戏

a、小米的蓝牙功能是正常的,之前用这个连天猫魔盒的时候很丝滑顺畅。所以先尝试连上pc。

开机后发现没反应,百度才找到第一个要点,之前都懵了,几年没碰过:

        i、长按手柄上的“X”+“MI”打开电源,直到手柄最下方指示灯快闪就可以松开按键,手柄进入匹配模式

        ii、在windows11 pc中的“设置”→“蓝牙和其他设备”→”添加设备”,搜索并匹配小米手柄,到设备中显示“已经配对”

        iii、然后就没有然后了,卡死了,手柄操作没有任何反应,开始进入抓狂状态。

下面进入吐槽模式,大家可以忽略不看: 

1、想用Nodejs接入并控制小米手柄,再把手柄信息转成键盘消息传给浏览器中的游戏

        a、https://github.com/node-hid/node-hid

        b、https://github.com/noble/node-bluetooth-hci-socket

        操作一番无果,还重装了vs2022到vs2017,python从3.9降到了2.7,为了编译这些库

2、想用Electron直接把游戏打包进去并处理手柄的蓝牙信息

        a、https://github.com/bendman/electron-bluetooth-example

        b、https://github.com/aalhaimi/electron-web-bluetooth

        翻Electron的文档中有bluetooth的处理,都无果

 3、突然想起来蓝牙手柄只是匹配了,并没有完成连接,怎么可能会被找到。峰回路转 开始处理怎么连接小米手柄。

        a、终于找到这份视频:https://www.bilibili.com/video/av926084577/ 但是,下载并安装以后,直接报错。mi.exe运行就抛出异常

        b、开始找c,c++的蓝牙驱动和连接的项目。还是不甘心这么去折腾,这东西肯定有人 搞定过的

蜂巢指纹浏览器(NestBrowser)带来了峰回路转,有效解决方案:

链接: 百度网盘 请输入提取码

提取码: k1fc

小米游戏手柄pc插件,小案例,react.js,游戏,前端

​安装这三个程序,其中两个是驱动,一个是mi是用来把小米手柄映射成xbox手柄,都是开源项目,所以有心有力的人可以各自发挥整合。

ViGEmBus 源码:GitHub - ViGEm/ViGEmBus: Windows kernel-mode driver emulating well-known USB game controllers.

HidHide 源码:https://github.com/ViGEm/HidHide

mi-360 源码:https://github.com/dancol90/mi-360

连接成功以后,这些属性都正常:

小米游戏手柄pc插件,小案例,react.js,游戏,前端

小米游戏手柄pc插件,小案例,react.js,游戏,前端

​b、小米手柄成功连接pc以后,怎么把手柄消息映射成键盘鼠标消息呢

        i、使用joytokey ,找这个东西超烦躁,一堆版本有问题的

        连接:百度网盘 请输入提取码

        提取码:0ks9

小米游戏手柄pc插件,小案例,react.js,游戏,前端

        ​ii、使用闪优手柄,这个在腾讯就可以下载到,而且免费

小米游戏手柄pc插件,小案例,react.js,游戏,前端

也可以搜索得到

        iii、python的这个测试也帮了大忙,在苦苦寻找a,b的过程中,它第一个跑起来并正常响应了手柄的输出,点100个赞。

        源码:https://github.com/Zuzu-Typ/XInput-Python

        这个也记录一下:Map Bluetooth Controller using Python - Raspberry Valley

        到这里终于用手柄可以控制浏览器的的游戏正常玩起来了。消耗了一天精力和时间,之前想整合进去electron和nodejs的冲动也消失了,这样不用一句代码跑起来也不错。

蜂巢指纹浏览器(NestBrowser)不需要一句代码就可以跑无限定制浏览器环境。

三:开始第三步,实际跑起来

把笔记本用hdmi连上电视,整个就跑起来很顺畅了。文章来源地址https://www.toymoban.com/news/detail-535459.html

到了这里,关于复活小米蓝牙手柄,让手柄控制电脑PC玩React写的网页游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于ESP32 蓝牙游戏手柄设计

    使用 ESP32 并通过 BLE 通信的 DIY 手持游戏手柄   硬件组件 esp32        ×    1     ws2812b        ×    6     操纵杆        ×    2     角度按钮    ×    2     按钮        ×    8     18560电池和电池座×    2     3路拨动开关    ×    1     TP4056带保

    2024年02月02日
    浏览(35)
  • ESP32蓝牙+EC11旋转编码器实现对电脑音量控制

    ✨本项目基于Arduino开发框架下功能实现。 🛠蓝牙设备添加和连接 ⚡需要有带蓝牙硬件支持的电脑才能实现连接并控制,当然手机也可以连接但是不能实现对手机音量控制, 🌿以 Win10 系统电脑为例。在设置里面找到,添加 蓝牙和其他设备 🌿会搜索到 ESP32-keyboard 设备。 🌿

    2024年01月18日
    浏览(56)
  • 小米路由器客户端操作说明(电脑手机都可远程控制)

    作为一款高端、大气、上档次的发烧路由器,小米路由器的玩法很多。要想对小米路由器进行控制,不仅可以通过PC客户端,而且还可以通过手机进行操控。下面就让我们看看如何通过PC客户端和手机对小米路由器进行操控。 请仔细看我对小米路由器的配置和小米路由器功能

    2024年02月07日
    浏览(46)
  • Unity上接入手柄,手柄控制游戏物体移动

    1、unity软件上安装system input 组件。菜单栏【window】-【Packag Manager】打开如下界面,查找Input System,并且安装。 2、安装成功后插入手柄到windows上,打开菜单栏上【window】--【Analysis】--【Input Debuger】 进入Input Debug界面,可以看到手柄设备能被Unity识别。 3、双击【XinputControllerW

    2024年04月15日
    浏览(49)
  • 【Unity InputSystem】实用指南:在PC端(鼠标与键盘)、手机端(触摸屏)、主机手柄上同步实现角色移动与跳跃功能

    随着Unity的不断发展,开发者对于项目的输入系统要求也日益提高。在进行多平台适配和跨平台移植时,常常需要改变输入系统,这给开发者带来了不少困扰。而Unity官方推出的InputSystem插件,则是为了解决这一问题而推出的全新输入方式。 相较于旧版的InputManager,InputSystem的

    2024年03月13日
    浏览(50)
  • Unity pc蓝牙和安卓蓝牙通信

    pc是客户端,安卓是服务端。 pc端需要拖入一个 InTheHand.Net.Bluetooth.dll 文件放在Plugins文件夹里。dll文件下载链接 pc端参考资料 https://blog.csdn.net/oqzuser12345678923/article/details/51252545/ http://t.zoukankan.com/buptzym-p-2169858.html 安卓端使用是 NativeBT 插件,这个插件网上就可以下载 下面是pc客

    2024年02月11日
    浏览(30)
  • 【Unity InputSystem】实用教程-实现角色移动跳跃功能(Input System在PC端鼠键!手机端触摸屏!主机手柄!三端使用教程)

    在上一篇文章当中我们手把手的跟大家分享了InputSystem的基础操作(如何使用5种不同的方式获取到InputSystem种的输入检查信息)。那么接下来我们继续分享一下在我们获取到InputSystem输入信息后,如何使用检测到的信息实现我们对应的输入功能。 本次我们使用的Unity编辑器版本为

    2024年02月11日
    浏览(57)
  • 蓝牙 手机和PC蓝牙HCI LOG抓取方法

    OPPO 拨号*#800#, 开始抓取log复现问题,复现问题完成后,输入*#800#再次进去结束抓取,在realmelink文件夹把oppo_log文件夹copy出来,hci log在oppo_log根目录Androiddatacom.oplus.logkitfilesLog(需要选中开发者模式,不能是用户模式) Huawei/Honor 进入应用程序—设置—关于手机,连续点击版

    2024年04月17日
    浏览(60)
  • Arduino下 ESP32蓝牙与PC蓝牙数据传输

    打开Arduino,选择“文件”—“示例”—“BluetoothSerial”—“SerialToSerialBT”: 然后选择开发板和端口,编译烧录,在下方发送框内输入要发送的信息 设置好上边的,打开电脑蓝牙,搜索新设备 连接ESP32test 在下方会看到已添加设备 再点击更多蓝牙选项、COM端口、选择ESP32tes

    2024年02月10日
    浏览(35)
  • Unity+Pico 手柄按键控制

    一、定义手柄按键API 1、InputDevices.GetDeviceAtXRNode,通过XRNode获取对应的设备; 2、XRNode是一个枚举类型,包含LeftEye、RightEye、CenterEye、Head、LeftHand、RightHand、GameController、TrackingReference、HardwareTracker; 3、TryGetFeatureValue,得到某个特性的值; 4、CommonUsages定义了用于从XR.InputDevi

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包