编者注:本项目编译自Instructables,原作者为jegatheesan.soundarapandian,转载请注明。
你是个游戏迷吗?用电脑玩游戏一定很爽吧,用手柄那就更爽了,尤其是当玩某些动作游戏得时候,手柄能让游戏的体验着实提升不少。现在,只要你有一部安卓手机,你就能拥有自己的游戏手柄了。那么该怎么做呢?
1)带蓝牙模组的Linkit One板;
2)安卓手机
3)安装了游戏的电脑
4)Arduino蓝牙遥控应用(Arduino Bluetooth RC Car)
配置在Linkit One的程序的工作内容很简单,只需要将手机发出的蓝牙信号处理之后传输到电脑的串行接口即可。
准备好程序Bluetooth_Gamer.ino之后,上传即可。
对于此程序,需要说明的是Arduino Uno和Linkit One并不支持USB键盘库。起初我计划使用的是蓝牙搭配USB键盘库。但经过一到两天的测试之后,我未能成功。如果你使用的是Arduino Leonardo,那就没有关系,直接将键盘上对应的键定义到Arduino上即可。所以为了能让此项目能够在Linkit One上完美运行,我自己写了一个Visual Basic小程序。
我自己写的这个Visual Basic小程序的工作过程如下:
通过USB串口接收Linkit One传送进来的信息;
使用MSCOMM控制接收到的数据;
使用计时器持续进行这样的工作(如果你使用VB.net,那就不需要使用计时器);
找到安卓程序发送的数据;
找到上面对应的控制按键;
找到这些按键所对应的键盘按键;
通过在数据接收端使用条件语句,通过发送命令调用虚拟键盘按键执行任务。
然而麻烦又来了。我发现测试过程中,发送命令的执行非常缓慢。我用了2天时间来寻找原因并试图解决,最后在Windows XP上工作良好,但在Windows 7上仍然很让人捉急。之后我是怎么解决的呢?
难以置信,只需要在Windows 7中安装一个PhraseExpress软件,问题就迎刃而解了。原因我未能找到,如果有知道的读者,不妨与我们分享一下。
双击exe文件运行;
如果你的电脑里面没有MSComm32.ocx组件,那么运行会中断并报错。那就下载安装即可,并将该组件放到Windows system32文件夹内;
在文本框中输入Comm Port(通信接口)的数量;
点击Play Game,然后对话框将自动缩小到任务栏。
打开电脑端的游戏;
打开VB程序;
打开手机上的遥控应用;
屏幕的左上角有一个红色的闪灯,它显示了微控制器是否连接;
在菜单中点击连接,你可以看到可用的蓝牙设备;
连接Linkit One;
连接完成之后,左上角的红灯变成绿灯;
在VB程序中点击开始游戏,VB程序会最小化并开始游戏;
使用手机上的虚拟按键控制游戏,倾斜手机即可加速;
玩厌了还可以在菜单中更换操作界面。
注意在每个游戏开始之前都需要在VB程序中进行设置Comm Port,不同的游戏是不一样的。
下面是该系统工作时的视频:
2015-2016赛季全球创客马拉松深圳大学站已经开始接受报名啦!关注“硬创邦”(微信号:leiphone_bang),回复“深大”即可参与报名!而且,雷锋网在未来三个月内选一个合适的时间,在北上深选择一个地点,举办创马“火星救援”专场!详情可点击此处了解。
此外还可加入全球创客马拉松主群(群号:259592983),参与我们的互动讨论~