开启左侧

[原创] 暴风白日梦手柄除了用在VR上还能干嘛?n啊

本帖最后由 灵酱 于 2017-11-16 10:57 编辑

欢迎来到看了也没什么软用系列,哈哈哈~~~

近来闲着无聊,在考虑这暴风魔镜白日梦这么好的手柄,虽然在APP里已经有不少游戏阔以玩的了,但是还有没有其他的玩法呢?
暴风魔镜创造的白日梦手柄啊,发挥你的极客之魂,让我来朵蜜你吧。。。 呕呕呕

先展示成果吧。。。。。。 要不然一大堆废话。

VID_20171115_232719(0).gif
XXXX:教练!这图好小啊,看不清。
教练:emmm 由于论坛gif限制,所以图越小时间就长咯。。。
下面来一张图骚味大一点的咯,只不过时长短一点。
VID_20171115_232719(10086).gif
这老古董游戏,还有谁认识额。再来一段。
VID_20171115_232719(2).gif XXXX: 教练!教练居然用暴风白日梦手柄打游戏啊。教练咋弄的啊,我要学!!~~~~
教练:知道了拉。

后面就听我慢慢道来,是如何做到用暴风魔镜白日梦手柄来玩这款<血战上海滩>的吧~~~~~~



这个说起来就是:在很久很久以前,有一位老爷爷和一位老奶奶,他们有一天到河边....  咳咳咳 打断。
有一天我的白日梦手柄蓝牙连着手机的时候,拿着它把玩,发现... 咦~~~~ 为什么手机突然自己动起来了。我也没有开暴风APP,为啥捏?
然后仔细的把所有的按键试了一遍,得出以下结论。
QQ截图20171116004005.png
    发现,在没有打开暴风APP的情况下依然也能够控制安卓手机。
    手柄的控制操作,系统能够接受,并且有相应的反应,那么可以说明他们使用同一种协议。
    但是体感操作系统却没有反应,这又是为什么捏?
    咱们仔细想想,有什么东西和它类似呢?
    第一个想法就是 蓝牙鼠标,蓝牙鼠标只要连接上电脑后就会自动出现鼠标并且控制,并不需要特殊软件才可以使用。
好滴,就从这个方向出发寻找相关资料吧。

这里咱们就长话短说吧,要不然就变成文章了。
     蓝牙USB Dongle有两种工作模式,HCI模式和HID模式。在HCI工作模式中,Dongle只是相当一个标准的HCI蓝牙USB Dongle。在HID工作模式下,Dongle是属于一个标准USB的HID设备,具有HID键盘和HID鼠标的功能。
     从这句话中可以得出结论我们的一些蓝牙输入设备比如 蓝牙键盘,鼠标等类设备是需要支持 Bluetooth HID协议的,只有支持该协议的情况下,在连接PC或者手机后就可以直接实现控制。那么我们的暴风白日梦手柄同样也支持该协议,可以支持上图中所属的功能。
  然后我们就开始大脑洞了,那么我们可以控制点击啊等操作,那么白日梦中的体感功能我们能不能够也能获取到呢?如果阔以的话,把获取到的体感数据加上手柄上的控制数据,传递到我们的电脑上的话,岂不是就可以控制电脑的鼠标和点击等事件了呢? 哇~~~~~想到了就抓住这个点,再一次开始搜搜搜搜咯
  诶~~~ 结果不是特别理想,想通过特殊手段获取暴风白日梦手柄的体感数据是没有想象的那么简单了,我们先放到一边先,我们先试着获取手柄按键的事件吧。




↓以下是不管你知不知道,反正我是知道。↓

我们知道
  安卓系统的adb的全称为Android Debug Bridge,就是起到调试桥的作用,利用adb工具的前提是在手机上打开usb调试,然后通过数据线连接电脑。我们就可以在PC端通过ADB连接到安卓手机并且对它进行一系列的控制,有些操作需要手机拥有ROOT权限。
  好滴,那我们就在PC端写一个java程序,来连接安卓手机,当然前提就是上面说的手机USB调试打开,手机ROOT,USB连接电脑。
  代码什么的这么麻烦的东西我就不发了。说说操作吧。
我们首先通过 adb shell 指令连接手机,然后通过getevent指令获取手机当前的设备文件,然后打印出列表。

QQ截图20171114015925.png
在列表中,我们发现了熟悉的身影,这拼音估计也没谁了,绝壁就是咱们的暴风魔镜白日梦手柄了。拔掉后在使用该指令就不会出现在该列表里了。
既然我们已经找到了设备,那我们怎么获取设备的操作呢?
那我们在 getevent 后面加上-l 那么就会格式化输出各个设备的各个操作了,包括触摸屏幕,按下按键等输入设备的信息。
QQ截图20171114020334.png
我过滤了不需要了设备了 这个event7就是咱们的手柄了。
仔细观察一下这些输出内容的规则,这是当我按下手柄点击键后,控制台输出的内容,我们可以找出规律,一个down和一个up,对应的我的操作分别是 按下和松开。那么当我们接受到这个指令后我们就控制PC的鼠标做点击操作。

那么咱们的体感到底咋办呢?我拿到暴风魔镜的开发SDK后,也做了简单的研究和使用他们的安卓DEMO后,并没有找到相关的内容,所以这个方向暂时后期在考虑。那么解决方案到底是啥呢?最近楼楼正好在做图像处理相关的开发,就想到了一个好玩的东西了。
XXXX:教练教练,这和咱们说的体感手柄有毛毛关系?
教练:比着急,等我慢慢说来。
大家都应该有用过trinusVR吧,但是你们有没有用到trinusVR的位置追踪功能呢?我估计用过的人少之又少吧。
来来来  小丑鱼大佬的链接给你们一个可以去体会一下。 http://dmgeek.com/vrpost-6565-1-1.html
我们在玩trinusVR的时候其实只是简单的头部的方向控制而已,但是有了这就....  哈哈哈 自己去体会。
那么它的原理是通过在头盔上贴上指定的图像,然后通过摄像头获取到并且实时识别,来计算用户离摄像头的位置以及方位。
那么我们是用手握着手柄来瞄准屏幕控制的话,是不是只要有一个摄像头来获取图像并且识别手柄正在对着屏幕的哪个位置,就可以控制鼠标来进行移动了捏?
好滴,那咱们想到就开干吧。处理方式和trinusVR一样,使用的是openCV的库,它里面包括了许多常用的图像算法,为我们提供了许多的便利。
  但是我们要咋么从摄像头的图像中获取到白日梦手柄捏,这个可就难倒我了,最后我使用的是和trinusVR有点像的偏方吧。
我们都知道现在很多电影大片,动不动就飞到这飞到那,无所不能,这也和咱们现在的电脑特效技术发展有关,而你有木有发现,那些人很少(非常非常少)有人穿有关于绿色的衣服,这又是为啥呢?这就涉及到一个绿幕技术,来来来,我们上图解释,要不然太麻烦了。
001155n7lzilef0z3il6ss.jpg QQ截图20171116013243.png
如果这个时候你穿绿衣服的话你就会和景,融为一体了,那就很壮观了。

就是通过将图像中的绿色全部分离,然后替换成新的图像,这样就阔以做到实时抠图了。
而正好最近就在做抠像合影的项目,就邀请一个人在绿幕背景中拍照后将人抠到指定图片的指定位置,从而就可以实现和名人合影等功能拉。

XXXX:教练教练,这是抠图吧,好像和定位也没啥关系诶?
教练:你先别吵听我说完。
那么我们在实现抠图功能的前提下,我们分析图中所有的绿色色块,最大的那个绿色色块就作为我们的标志位置,那么我们只要吧白日梦手柄涂成全绿色岂不是就阔以拉。
为啥是绿色原谅色呢?那句话说的好,每一个成功的男人头上难免有点绿嘛~~~~ (我编的)

emmm把白白嫩嫩的白日梦手柄给涂了我还真不舍得,最后咱们妥协了一下。 IMG_20171115_235525.png
咱们只要有一块绿色特别明显能够让手机的摄像头识别,并且能找到绿色块就OK拉。
IMG_20171115_235738.jpg GIF动图中也有拍到相关内容,阔以仔细看。
完成功能,仔细看有一个白色框框,那么就说明成功获取到了绿色方面,最后在计算方块的位置在图片的位置,就可以对应到电脑显示器的鼠标的位置了。
那么手机得到鼠标位置后要咋么传递给电脑呢?我们这里就简单点吧,通过局域网socket连接的方式传到电脑端的java程序,然后实时响应鼠标的位置。那么是不是就大功告成了呢?其实还有很多问题,诶好累不说了,就这样静静的略过吧。
最后来一张总图:
QQ截图20171114025319.png

XXXX:教练我现在懂了,但是我看了你的这总结图,我感觉有点脱裤子放屁多此一举啊。为什么不直接手柄到电脑啊!!!
教练:要你管啊,就你事多。

那最后说下后期要做的事情吧。
接下来要解决的事情就是
1.使用暴风官方安卓SDK来获取手柄的 按键 体感操作数据,来转换成 鼠标的位置和鼠标的点击等操作,并且通过数据传递到PC端,最后控制鼠标。(下一步)
2.使用暴风官方Unity SDK 直接在PC平台上直接获取手柄 按键 体感操作数据,然后直接控制鼠标。(最终目的)

最终目的需要电脑支持蓝牙,emmm我台式机没蓝牙
那就先到这里吧,咱们下回再见。。。。

参与人数 3威望 +3 懵币 +30 收起 理由
夜舞的精灵 + 1 + 10 我了个去!楼主6666
lyljj + 1 + 10
舢舨 + 1 + 10 很给力!

查看全部评分总评分 : 威望 +3 懵币 +30

回复

发表于 2017-11-15 23:51:17 使用道具 举报

精彩评论20

沙发占牢,天下无敌
回复

发表于 2017-11-16 02:08:34 使用道具 举报

板凳沙发,法力无边
回复

发表于 2017-11-16 10:57:50 使用道具 举报

看来楼主也是一位技术宅啊,敲代码的就是不一样,虽说看不懂那些指令,但看总结图才知道并没有用到手柄的体感功能,反而根据这个总结图得出所有的蓝牙手柄都能结合trinus当鼠标来用,期待下回的折腾
回复

发表于 2017-11-16 14:25:42 使用道具 举报

往往技术宅都是深藏不露的
回复

发表于 2017-11-16 14:40:11 使用道具 举报

舢舨 发表于 2017-11-16 14:25
看来楼主也是一位技术宅啊,敲代码的就是不一样,虽说看不懂那些指令,但看总结图才知道并没有用到手柄的体 ...

之前也是准备用体感定位呢,只是被暴风SDK给坑到了,才先拿图像识别定位来凑了。 话说为啥我发帖的要审核诶。
回复

发表于 2017-11-16 14:43:05 使用道具 举报

灵酱 发表于 2017-11-16 14:43
之前也是准备用体感定位呢,只是被暴风SDK给坑到了,才先拿图像识别定位来凑了。 话说为啥我发帖 ...

半夜1点到5点发帖要审核 ,防灌水
回复

发表于 2017-11-16 14:52:02 使用道具 举报

看来用处不小,这个脑洞也够了
回复

发表于 2017-11-16 16:09:16 使用道具 举报

原来还有这种玩法,受教了,一看就是老手
回复

发表于 2017-11-16 16:45:26 使用道具 举报

膜拜酱酱
我拿到暴风白日梦手柄的当天就发现在没有打开暴风APP的情况下依然也能够控制安卓手机,并且9还能在没有开启暴风app只是玩游戏时启动暴风APP。
但就没有然后了,你说的这些如果不是你说我根本不会想到,但就算你说了我也只是看看,这就是差距,不服不行
欢迎大家来水区闲聊赚积分啊!
回复

发表于 2017-11-16 22:52:47 使用道具 举报

哦,要把这个弄到trinus上做定位啊,手机上其实也可以做定位,除了用图像获取,还可以用可见光,用乒乓球去做,类似的也有开源
来自安卓客户端来自安卓客户端
回复

发表于 2017-11-17 10:05:38 使用道具 举报

很期待你能更完,大力推荐
来自安卓客户端来自安卓客户端
回复

发表于 2017-11-17 10:06:30 使用道具 举报

是不是可以搞个2个红外摄像头 给手柄加上几个个红外灯 再通过算法 啪啦啪啦啪啦 新一代体感手柄就诞生了。
表示看得一头雾水 不过体感手柄揍是这样来的吧
回复

发表于 2017-11-17 10:16:36 使用道具 举报

不愧是程序员大牛啊。灵酱真是深藏不露。
回复

发表于 2017-11-17 10:27:53 使用道具 举报

lyljj 发表于 2017-11-16 22:52
膜拜酱酱
我拿到暴风白日梦手柄的当天就发现在没有打开暴风APP的情况下依然也能够控制安卓手机,并且9还能 ...

主要也是凑巧在弄图像处理这方面的东西额,才正好想要整合起来呢
回复

发表于 2017-11-17 10:35:45 使用道具 举报

blue_k 发表于 2017-11-17 10:16
是不是可以搞个2个红外摄像头 给手柄加上几个个红外灯 再通过算法 啪啦啪啦啪啦 新一代体感手柄就诞生了。
...

关键就是核心算法木有诶,我这水平也就东拼西凑别人开源的算法呢。
回复

发表于 2017-11-17 10:37:31 使用道具 举报

安弟 发表于 2017-11-17 10:05
哦,要把这个弄到trinus上做定位啊,手机上其实也可以做定位,除了用图像获取,还可以用可见光,用乒乓球去 ...

图像处理 主要问题还是要解决环境干扰,这有点头疼。 我在手机上处理速度也有限。
回复

发表于 2017-11-17 10:44:18 使用道具 举报

非常Exceiting啊
回复

发表于 2017-11-17 11:42:09 使用道具 举报

夜舞的精灵 发表于 2017-11-17 10:27
不愧是程序员大牛啊。灵酱真是深藏不露。

我禁不起别人夸的,其实也就入门了些的水平。
回复

发表于 2017-11-17 14:45:28 使用道具 举报

一位深藏不露的大佬..
回复

发表于 2017-11-18 11:50:02 使用道具 举报

要是能玩psp游戏的话,结合ppsspp的谷歌纸盒模式应该会很棒
回复

发表于 2017-11-18 23:03:28 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

威望13

懵币1442

帖子9

发布主题
阅读排行

下载盗梦APP

关注盗梦极客
一起玩转VR

© 2015 盗梦极客 | VR虚拟现实达人社区 | VR资源及VR眼镜教程 黑ICP备15006149号 VR新手指引 联系我们