如何在树莓派上使用 Xbox 控制器?

如果您曾经尝试过在树莓派上使用 Xbox 控制器,那么您很快就会发现它们无法正常工作。实际上,要使它们正常工作,您将需要安装特殊的驱动程序。

使用具有蓝牙功能的较新的 Xbox One 控制器,您还将发现它们需要在驱动程序安装之上进行更多工作才能运行。即,默认情况下打开的某些蓝牙功能未正确支持它们。

本指南将向您展示如何在树莓派上启动和运行 Xbox 控制器,同时还将引导您逐步了解如何使更新的蓝牙控制器在 Pi 上成功配对。

如果您需要有关蓝牙的更多信息,请务必查看我们的在树莓派上设置蓝牙的指南。

设备清单

下面是我用于设置 Xbox 控制器教程的所有细节。

推荐的:

  • 树莓派 2、 3 或 4

  • Micro SD 卡

  • 电源

  • Xbox 控制器

  • 蓝牙适配器 (仅当未使用 Pi 3 或零 W 时)

可选的:

  • 树莓派外壳

设置 Xbox 控制器的方法

您可以通过三种不同的方式将 Xbox One 和 Xbox 360 控制器连接到树莓派。连接控制器的两种最简单的方法是通过 USB 电缆或使用官方的无线适配器。

Xbox Controller USB 无线适配器

Xbox USB 无线适配器是在保持其无线功能的同时连接控制器的最简单方法之一。如果您要使用无线 Xbox 360 控制器或无线使用第一代 Xbox One 控制器,则也需要此选项。

请注意 Xbox 360 控制器和 Xbox One 控制器使用不同的 USB 适配器。

蓝牙

对于发布 Xbox One S 时引入的新型 Xbox One 控制器,使用蓝牙只是一个可行的选择。使用蓝牙需要几个不同的步骤才能正常工作。

如果您想知道如何将 Xbox One 蓝牙控制器连接到树莓派,请继续进行下一部分。

USB 电缆

USB 电缆是设置任何 Xbox One 控制器的最简单方法。但是,如果您使用 360 控制器,则只能以这种方式使用有线控制器,因为该控制器上的可用端口仅用于充电。

只需将 Micro USB 电缆插入 Xbox One 控制器,并将 USB -A 端插入树莓派。并且您应该准备出发。

为 Xbox 控制器设置树莓派

1 在开始使用本教程之前,我们应该通过运行以下两个命令来确保树莓派完全是最新的在终端内。这些命令将确保我们拥有最新的可用软件。

sudo apt-get update
sudo apt-get upgrade

2 尽管由于 Raspbian 内核中现在包含 Xpad 驱动程序,所以我们不再需要安装 xboxdrv ,但我们将为可能构建为使用 xboxdrv 的任何程序安装它。它还允许我们使用 xboxdrv 在用户空间中做一些事情。

用户态驱动程序意味着它就像应用程序一样工作,并且没有内置在核心系统中。

要安装允许我们与 Xbox One 和 Xbox 360 控制器进行交互的 userland 驱动程序,请在树莓派的终端中键入以下命令。

sudo apt -get install xboxdrv

将蓝牙 Xbox 控制器与树莓派配对

1 在尝试将 Bluetooth Xbox Controller 与树莓派配对之前,请确保已安装了上一节中所述的适当驱动程序。

安装完驱动程序后,我们便可以继续进行控制器配对。首先在树莓派上运行以下命令。

此命令将禁用蓝牙模块的增强型重传模式 (ERTM),从而使 Xbox 控制器无法正确配对。

echo'选项蓝牙 disable _ertm = Y'| sudo tee -a /etc/modprobe.d/bluetooth.conf

2 现在,在此更改生效之前,我们需要重新启动树莓派。在树莓派上运行以下命令以重新启动它。

sudo重启

3 随着树莓派的启动,我们可以继续将 Bluetooth Xbox One 控制器与树莓派配对。为了能够与 Xbox One 控制器配对,我们需要通过在树莓派上运行以下命令来启动蓝牙工具。
sudo 蓝牙

4 我们首先通过键入以下两行来打开代理。

代理上
默认代理

5 完成后,我们现在可以开始扫描设备了,只需键入以下命令即可开始扫描过程。

扫描

扫描过程开始后,您应该开始查看终端内可发现的任何蓝牙设备。

6 当您按下 Xbox One Controller 前面的同步按钮时,您应该会在树莓派的命令行上看到一个新条目,如下所示。

记下控制器的 MAC 地址。 MAC 地址是用冒号”:” 分隔的十六进制数。

[NEW]设备 B8 :27:EB:A4:59:08无线控制器

7 使用您的 Xbox Xbox One 控制器的 MAC 地址,我们现在可以使用树莓派的 Bluetooth 堆栈与它建立连接。

只需键入以下命令,并确保将”YOUR \ _MAC \ _ADDRESS” 替换为在步骤 6 中启动控制器上的同步过程时出现的命令。在本例中,这是 B8 :27:EB:A4 :59:08

连接 YOUR _MAC_ADDRESS

8 现在,与控制器成功建立连接后,您应该会在树莓派的命令行中看到如下所示的内容。

尝试连接到 B8 :27:EB:A4:59:08
[CHG]设备 B8 :27:EB:A4:59:08 Modalias:usb:v054Cp0268d0100
[CHG]设备 B8 :27:EB:A4:59:08 UUID:
        00001124-0000-1000-8000-00805f9b34fb
        00001200-0000-1000-8000-00805f9b34fb

9 与 Xbox One 控制器成功建立连接后,我们需要将其添加到受信任的设备列表中。这样做将使 Xbox One 控制器自动重新连接到我们的树莓派上的蓝牙。

为此,我们需要在树莓派上运行以下命令。确保将”YOUR \ _MAC \ _ADDRESS” 替换为您在步骤 8 中用于连接到设备的 MAC 地址。

信任 YOUR _MAC_ADDRESS

10 现在,您已经与 Bluetooth Xbox One Controller 配对,您可以通过键入”** quit “或按 Ctrl + D ** 退出蓝牙软件。

11 现在让我们安装操纵杆工具集。此工具集将使我们能够检查 Xbox One 控制器是否正常工作。在树莓派上运行以下命令进行安装。

sudo apt install操纵杆

12 现在,在树莓派上安装了操纵杆工具集之后,我们可以继续测试控制器是否正常工作。运行以下命令以测试设置为 js0 的操纵杆。

sudo jstest /dev/input/js0

您应该看到一个带有大量数字的屏幕,移动和按下按钮应该会更改屏幕上的文本。如果有任何变化,则应完全设置控制器并准备就绪。

使用 Xbox 控制器控制树莓派

如果要使用 Xbox 控制器控制树莓派,只需在终端中使用以下命令。此命令允许 Xbox 控制器与计算机进行交互,并使它能够模仿鼠标。

sudo xboxdrv  --detach-kernel-driver --silent --mouse

一旦运行了该命令,您现在应该可以使用 Xbox 控制器在树莓派上控制鼠标。以下按钮绑定到特定的鼠标操作。

  • A:左键单击
  • B:右键单击
  • X:鼠标中键
  • Y:输入
  • 左操纵杆:鼠标移动
  • 右操纵杆:滚轮
  • D-Pad:方向键
  • 开始:前进
  • 返回:返回
  • LB:向上翻页
  • RB:向下翻页

希望,到本指南结束时,您现在已经启动了树莓派,并使其与 Xbox 控制器成功连接。

在树莓派上游戏上,使此控制器正常工作将非常方便。

如果您对本教程有任何反馈或需要帮助,请在下面添加评论。

分享到