树莓派玩游戏,如何在Raspberry Pi上设置PlayStation控制器

如果你曾经尝试过利用PlayStation控制树莓派,你可能会发现这并不容易。希望本教程能帮助你简化这个过程。

Setting-up-PlayStation-Controller-on-Pi-Thumbnail.png

Raspberry Pi PlayStation控制器指南将引导您设置PlayStation 3和PlayStation 4。

对于PS3控制器,我会展示如何安装软件,并利用它来设置PS3控制器,这样它就可以连接树莓派上使用的蓝牙设备。

在PS4控制器教程中,我会带您了解它与树莓派的蓝牙配对的过程,如果控制器不能与标准蓝牙一起使用,我还找到了替代解决方案。

还可以在树莓派上设置Xbox控制器,以及其他几种类型的游戏控制器。

设备清单

下面是所有的设备清单,点击链接可以直达特别优惠购买。

建议

可选

在树莓派上设置PS3控制器

在Raspberry Pi上设置PlayStation 3控制器并并不容易。特别是当打算用无线方式时,我们将引导你完成所有的步骤,让它在短时间内启动并运行。

如果想把PS3控制器用有线的方式使用,你可以把它当作一个即插即用的设备即可。

不过,我建议去编译和安装Sixad。Sixad是一款支持所有PS3控制器功能的软件。

在开始本节的树莓派PlayStation教程之前,请确保有一个迷你USB线。

准备将PS3控制器连接到Raspberry Pi。

1. 开始在Raspberry Pi上安装东西之前,必须首先运行以下两个命令。

这些命令确保Raspberry Pi是最新的。

sudo apt-get update
sudo apt-get upgrade

2. 首先需要安装一个软件包,这是为了编译sixpair软件。这个包是libusb-dev,这是用于与USB设备交互的程序。

sudo apt-get install libusb-dev

3. 现在已经安装了所需的软件包,可以下载sixpair代码,并为它建立一个文件夹。

mkdir ~/sixpair
cd ~/sixpair
wget http://www.pabr.org/sixlinux/sixpair.c

4. 将sixpair代码下载到Raspberry Pi中,需要对其进行编译,要做到这一点,只需运行以下命令即可。

该命令将告诉GCC编译器编译代码。

gcc -o sixpair sixpair.c -lusb

5. 现在Sixpair已经编译到Raspberry Pi上,需要用USB线将PS3控制器插入Raspberry Pi。

6. 当控制器插入后,可以通过运行下面的命令来运行sixpair。

Sixpair将重新配置控制器,使其与蓝牙设备通信。

sudo ~/sixpair/sixpair

7. 如果sixpair软件已经成功地重新配置了PS3控制器,使其与Raspberry Pi的蓝牙进行对话,应该会看到命令行上出现以下内容。

Current Bluetooth master: b8:27:eb:a4:59:08
Setting master bd_addr to b8:27:eb:a4:59:08

8. 现在,需要将PS3控制器从Raspberry Pi上拔下来,现在已经做出了改变,应该不再需要通过USB插入控制器,除非蓝牙适配器发生变化。

现在有两个选择,一是编译并安装sixad来处理PS3控制器之间的连接,二是直接使用bluetoothctl工具与PS3控制器进行连接。

个人建议大家尝试使用蓝牙,因为它与其他蓝牙设备的兼容性最强。

继续到下一节,了解如何使用蓝牙配对PS3控制器。否则,请跳到后面的章节,了解如何使用SIXAD来配对控制器。

使用bluetoothctl连接PS3控制器。

1. 现在PS3控制器已经准备好与Raspberry Pi连接,可以进入实际与Raspberry Pi配对。

为此,需要先在Raspberry Pi上运行以下命令来启动蓝牙配置工具。

sudo bluetoothctl

2. 现在已经启动了蓝牙配置工具,需要打开代理,并将其设置为利用默认代理。只需输入以下两个命令即可。

agent on
default-agent

3. 启用代理后,现在要实际扫描新的蓝牙设备,运行以下命令会告诉工具开始扫描。

scan on

这时候可以看多很多附近的蓝牙设备。

暂时忽略这些,因为现在只关注PS3控制器。

4. 现在是时候按下控制器上的PlayStation按钮了,这样它就开始与树莓派通信了。应该很快开始看到命令行中出现的条目。

ps3-controller-ps3button-300x300-2.png

5. 一旦看到出现类似下面的内容,请确保你抄下显示的MAC地址。就是用’:’符号分隔的文字序列。

[NEW] Device B8:27:EB:A4:59:08 B8-27-EB-A4-59-08
[CHG] Device B8:27:EB:A4:59:08 Connected: no
[DEL] Device B8:27:EB:A4:59:08 B8-27-EB-A4-59-08

6. 现在有一个可用的MAC地址,把它复制下来,在我的例子中,这是 “B8:27:EB:A4:59:08″。

有了MAC地址,要在下一条命令中使用它。通过下面这条命令,获得一个成功的连接和设备返回的UUID。

请注意,可能需要运行此命令几次才能成功。

确保将 “YOUR_MAC_ADDRESS “替换为你在步骤7中找到的那个。

connect YOUR_MAC_ADDRESS

请留意PlayStation 3控制器,如果它停止尝试连接,请确保再次按下PS按钮。

7. 当看到命令行上出现如下图所示的文字时,就知道连接成功了。有了UUID,就可以进行下一步了。

Attempting to connect to B8:27:EB:A4:59:08
[CHG] Device B8:27:EB:A4:59:08 Modalias: usb:v054Cp0268d0100
[CHG] Device B8:27:EB:A4:59:08 UUIDs:
        00001124-0000-1000-8000-00805f9b34fb
        00001200-0000-1000-8000-00805f9b34fb

8. 现在已经有了MAC地址,需要将其添加到蓝牙信任列表中。这样做的目的是允许控制器自己连接到树莓派。

要做到这一点,只需要在Raspberry Pi上输入以下命令。确保用步骤7中找到的 “YOUR_MAC_ADDRESS “来代替。

trust YOUR_MAC_ADDRESS

9. 一旦PS3控制器被成功添加到受信任的列表中,应该会看到命令行上出现以下内容。

[CHG] Device B8:27:EB:A4:59:08 Trusted: yes
Changing B8:27:EB:A4:59:08 trust succeeded

10. 现在PS3控制器已经成功连接到Raspberry Pi上,可以退出蓝牙配置工具了。

要退出该工具,可以使用下面的命令,或者直接按CTRL + D。

quit

11. 现在可以重新启动Raspberry Pi。这样做是为了测试以确保一切都按预期工作。运行下面的命令来重新启动Raspberry Pi。

sudo reboot

12. 现在重新启动Raspberry Pi,按控制器上的PS按钮来测试它和Raspberry Pi之间的连接。

控制器上的LED灯应该在连接时短暂闪烁,之后,如果一切正常,控制器上只有一个LED灯应该保持点亮。

使用SIXAD连接PS3控制器

1. 开始在Raspberry Pi上编译和设置SIXAD之前,必须先安装一些需要的软件包。

这里必不可少的包是 libusb-dev 和 libbluetooth-dev,因为它们包含了编译 sixad 软件所需的代码。

Libusb-dev包含的代码可以通过代码与插入电脑的USB设备进行交互。

Libbluetooth-dev 提供了与操作系统蓝牙协议栈进行交互所需的代码,在 sixad 的例子中,它用于检测 PS3 设备何时连接到 Raspberry Pi。在sixad的例子中,这是用来检测PS3设备何时连接到Raspberry Pi的。

sudo apt-get install git libbluetooth-dev checkinstall libusb-dev
sudo apt-get install joystick pkg-config

2. 现在已经有了所有可能需要的包,克隆Retropie的SIXAD仓库,使用Retropie的fork的原因是它有一些改进,并且是在树莓派上测试的。

在Raspberry Pi上运行以下两行来克隆GIT仓库。

cd ~
git clone https://github.com/RetroPie/sixad.git

3. 现在已经将软件库克隆到了Raspberry Pi上,可以开始实际编译了。编译SIXAD很简单,只需要运行以下两个命令。

第一条命令将我们移入文件夹,第二行运行makefile并编译程序。

cd ~/sixad
make

4. 现在,sixad软件已经编译完毕,在使用之前,还有几件事要做。

其中第一个是制作一个文件夹,让sixad记录所有的配置文件。

运行以下命令为其创建一个文件夹。

sudo mkdir -p /var/lib/sixad/profiles

5. 最后运行本节步骤1中安装的checkinstall包。

这个工具的作用是检查当前的安装,然后继续运行 “make install “命令,如果需要的话。

sudo checkinstall

在特定的点上,会被问到一些问题,忽略这些,只需按ENTER键继续,直到安装完成。

一旦安装完成,应该会看到以下内容出现在你的命令行中。

**********************************************************************
 Done. The new package has been installed and saved to

 /home/pi/sixad/sixad_20171230-1_armhf.deb

 You can remove it from your system anytime using:

      dpkg -r sixad
**********************************************************************

6. 现在,已经完成了SixAD的安装,终于可以在树莓派上输入以下命令来运行它了。

sudo sixad --start

如果一切都按计划进行,现在会被要求按下控制器上的PS按钮。现在就这样做,将控制器连接到Raspberry Pi上。

ps3-controller-ps3button-300x300-2.png

7. 现在SixAd已经启动并运行了,要确保它在启动时启动,这样就可以随时连接PS 3控制器。

要做到这一点,可以运行下面的命令来添加Sixad到Raspberry Pi的启动序列。

sudo update-rc.d sixad defaults

在树莓派上设置PlayStation 4控制器

有很多不同的方法,可以利用树莓派的PlayStation 4控制器。其中一些是比其他更简单的。

索尼USB无线适配器

索尼USB无线适配器可能是最简单的解决方案,让PS4控制器与树莓派配对。特别是由于该适配器应该能够开箱即用,并与官方PS4控制器配对。

蓝牙

蓝牙比单纯使用索尼官方的USB无线适配器要复杂一些,需要有Raspberry Pi 3、Raspberry Pi Zero W或者USB蓝牙适配器。

然而,这种方法并不是对每一个PS4控制器都能正确工作,可能最终要利用一个名为ds4drv的控制器驱动程序才能与之交互。

请注意,如果之前设置了SIXAD工具,将不得不卸载它来使用PS4控制器与Raspberry Pi。

USB线

使用USB电缆是最简单的方式来利用你的PS4控制器,只需将它与微型USB电缆,就像你第一次连接控制器到PS4本身。

使用USB连接,PS4控制器应该可以直接使用。

通过蓝牙CTL配对PS4控制器

请注意,如果之前按照我们的指南通过蓝牙连接PS3控制器到您的Raspberry Pi,将不得不遵循接下来的几个步骤。否则,请跳到本节的第2步。

1. 不得不删除SIXAD的原因是,它似乎与PlayStation 4控制器冲突,不能让它们正确配对和运作。

要卸载PS3部分编译并安装的6ad包,只需要在树莓派上运行以下命令即可。

sudo dpkg -r sixad

2. 现在,在开始设置一切之前,通过在Raspberry Pi上运行以下两个命令来确Raspberry Pi是完全最新的。

sudo apt-get update
sudo apt-get upgrade

3. 现在开始将PS4控制器与Raspberry Pi配对。对于本指南,我将使用蓝牙命令行工具。

在Raspberry Pi上运行以下命令来启动它。

sudo bluetoothctl

4. 现在启动了bluetoothctl工具,需要在里面运行以下两个命令,这个是启用代理,并将代理设置为默认。

agent on
default-agent

5. 现在已经启用了代理,终于可以开始扫描设备了。打开扫描是至关重要的,因为当告诉控制器开始同步时,它将显示控制器。

scan on

6. 现在是时候同时按下控制器上的 “分享 “按钮和PS按钮,如下图所示。按住这两个按钮,直到控制器上的灯开始闪烁。

ps4-controller-ps4button-300x300-1.png

7. 应该看到在命令行上出现了类似下面的东西,一旦看到这个,就记下MAC地址。

MAC地址是用’:’符号分隔的十六进制数。

[NEW] Device 00:01:6C:B4:06:7E Wireless Controller

本例中,MAC地址为 “00:01:6C:B4:06:7E”。

8. 当控制器还在闪烁时,输入以下命令。确保用步骤8中得到的MAC地址替换 “YOUR_MAC_ADDRESS”。这个命令可以与你的PS4控制器建立连接。

如果控制器停止闪烁,只需再次按下 “共享 “和 “PS “按钮。

connect YOUR_MAC_ADDRESS

9. 连接成功后,应该看到命令行中出现以下内容。

Attempting to connect to 00:01:6C:B4:06:7E
[CHG] Device 00:01:6C:B4:06:7E Connected: yes
[CHG] Device 00:01:6C:B4:06:7E UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device 00:01:6C:B4:06:7E UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 00:01:6C:B4:06:7E ServicesResolved: yes
[CHG] Device 00:01:6C:B4:06:7E Paired: yes
Connection successful

10. 现在需要将我们的MAC地址添加到受信任的列表中,这样PS4控制器就可以自动连接到Raspberry Pi。

trust YOUR_MAC_ADDRESS

11. 现在PS4控制器已经被树莓派的蓝牙设备所信任,现在可以按CTRL+D或输入 “退出 “退出工具。

现在可以继续测试控制器是否工作。

12. 现在安装操纵杆包,虽然有些Raspbian的安装会附带这个包,但运行安装命令以备不时之需。这个软件包包含了需要的应用程序,以便能够测试控制器是否正常工作。

在Raspberry Pi上运行以下Linux命令来安装软件。

sudo apt-get install joystick

13. 现在操纵杆包已经安装到Raspberry Pi上,可以运行下面的命令,这将测试js0,并从它那里接收数值。

sudo jstest /dev/input/js0

14. 如果当移动和按下控制器上的按钮时,数值会发生变化,那么就可以使用PS4控制器了。

然而,如果控制器拒绝工作,可能不得不尝试其他的方式,利用驱动程序,按照指导在下面的下一节。

使用ds4driv将PS4控制器连接到树莓派上。

只有在标准蓝牙根本无法工作的情况下,才利用这个选项。这种方法利用驱动程序与控制器对话,让Raspberry Pi能够理解。

已经将PS4控制器与树莓派配对,才能继续下面的步骤。

1. 首先,需要安装ds4drv所需的包。要安装必要的python3组件,请在Raspberry Pi上运行以下命令。

sudo apt-get install python3-dev python3-pip

2. 现在已经将所需的python包安装到了树莓派上,可以使用pip来抓取ds4drv和它所需的python库。运行下面的命令来使用pip3来安装它。

sudo pip3 install ds4drv

3. 现在对Raspberry Pi进行设置,以便非root用户可以访问ds4drv创建的操纵杆设备,要做到这一点,请在Raspberry Pi上运行以下三个命令。这些命令下载规则集然后应用它们。

sudo wget https://raw.githubusercontent.com/chrippa/ds4drv/master/udev/50-ds4drv.rules -O /etc/udev/rules.d/50-ds4drv.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

4. 现在,PlayStation 4控制器与Raspberry Pi配对连接着,可以运行下面的命令来查看ds4drv是否能读取并与控制器进行交互。

sudo ds4drv --hidraw --led 000008

5. 一旦看到命令行上出现了下面这样的文字,那就意味着ds4drv可以看到并与PS4控制器配对的树莓派对话。

[info][controller 1] Connected to Bluetooth Controller (00:01:6C:B4:06:7E hidraw5)
[info][hidraw] Scanning for devices
[info][controller 1] Battery: Fully charged

现在按CTRL + C退出ds4drv。

6. 需要修改启动脚本,使其在启动时自动启动ds4drv。要开始这样做,请在Raspberry Pi上运行以下命令。

sudo nano /etc/rc.local

7. 现在需要在这个文件中添加以下一行。这一行将在Raspberry Pi启动时启动ds4drv。

寻找

exit 0

添加以上

/usr/local/bin/ds4drv --hidraw --led 000008 &

修改后,可以按CTRL + X,然后按Y,然后按ENTER键保存文件。

8. 现在可以重新启动Raspberry Pi来测试它是否正确启动。通过运行下面的命令来完成。

sudo reboot

9. 一旦Raspberry Pi重新启动,现在可以使用下面的命令来测试一切是否正常。如果数字发生变化,那么一切都在正常工作。

sudo jstest /dev/input/js0

希望在本指南结束时,你已经将你的Raspberry Pi与你的PlayStation控制器成功地连接起来并运行。

如果你对本指南有任何反馈或需要帮助,那么欢迎在下方留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 树莓派玩游戏,如何在Raspberry Pi上设置PlayStation控制器

赞 (0)

评论

5+2=