用PS4手柄做Arduino遥控器国外有比较多的帖子了(因为原创在国外的),我搜索了一下国内的社区和论坛这个的资料几乎没有,最多的就是PS2手柄,还有一些是PS3手柄做遥控器的,不过资料也不是很全面,最近弄了用PS4手柄蓝牙控制Arduino,写个教程帖分享一下吧,如果你既是PS4游戏玩家也是位创客的话,那么你可以学习一下怎么使用PS4手柄做Arduino的控制器,把手柄利用起来
实现PS4手柄做Arduino控制器其实很简单的,USB Host Shield库提供两种方法:
一是用USB数据线控制,这个方法搭好硬件烧好库的例程就直接可以用了,非常简单,不过连着线不好做遥控器所以这个方法不说;
二是用蓝牙适配器无线遥控,比较适合做一些小车、机器人的控制器,这里最关键就是蓝牙适配器的配对了,用PS4手柄做项目作品比起用PS2和手机蓝牙遥控会显得高大上,
废话不多说了,按下面做准备吧!
准备的硬件:
- PS4手柄
- USB蓝牙4.0适配器
- USB Host Shield板
- Arduino UNO
准备的软件和库:
- Arduino IDE:https://www.arduino.cc/en/Main/Software
- USB Host Shield 2.0:https://github.com/felis/USB_Host_Shield_2.0
我的PS4手柄是新款的slim,就是触摸板上带灯条的;之前买过一个蓝牙2.0的适配器发现怎么也配对不了,换成蓝牙4.0的适配器一下子就成功配对上了,我这里用了一个叫orico的蓝牙4.0适配器,听别人说绿联的蓝牙4.0适配器也行,建议买这两个品牌的;USB Host Shield我用的是全尺寸那种,还有一种迷你的没用过,Arduino板用UNO或MEGA的都行,我这里用的是经典的UNO。
安装好Arduino IDE后下载USB Host Shield库文件,右键解压到当前文件夹,USB_Host_Shield_2.0-master文件夹名改成USB_Host_Shield_2.0,不改也行,只不过好看点,然后把整个文件夹复制到Arduino IDE的libraries库文件夹里,该文件夹一般在我的电脑-->我的文档-->Arduino-->libraries
还有一种在线安装库文件的方法,在IDE菜单点项目–>加载库–>管理库,然后等待网络加载库列表,在搜索框输usb找到USB_Host_Shield2.0然后安装即可,不过这个方法有时候库列表容易加载失败
_
安装成功后重新打开软件,文件-->示例-->USB_Host_Shield_2.0
这里可以找到我们新增的库
接下来我们烧录Buletooth下的BTPS4例程
我们看下面这个配对代码
1 | // This will start an inquiry and then pair with the PS4 controller - you only have to do this once |
默认的示例代码是第一次进行配对时把PS4BT PS4(&Btd, PAIR);这句代码注释去掉,//PS4BT PS4(&Btd);这句代码注释加上表示进入配对状态,烧录好代码好上电,此时同时按下PS4手柄上的PS和SHARE键进入配对模式,手柄LED灯会快闪,当和蓝牙适配器配对好后LED常亮,可以把原来配对的代码注释//PS4BT PS4(&Btd, PAIR);启用PS4BT PS4(&Btd);重新烧录,以后就不用再上电的时候重新进入配对模式了,就像下面那样↓
1 | // This will start an inquiry and then pair with the PS4 controller - you only have to do this once |
下面是个随手录制的视频