✅ 概要
本記事では、Raspberry Pi に Logicool のゲームパッド F710 を接続し、Python によって動作確認を行うまでの手順を説明します。XInput モードでの接続を前提に、ドライバのインストールから、Python による入力確認スクリプトの実行までを一貫して解説します。
なお、筆者は以前まで Bluetooth 接続の DUALSHOCK 4 を使用していましたが、展示会など無線が混雑する環境では接続が不安定になることがありました。これに対し、Logicool F710 は 2.4GHz 帯の専用 USB レシーバーを用いた無線接続により、干渉の影響を受けにくく、安定した操作が可能であるため、F710 への切り替えを行いました。
🧰 準備
使用したゲームパッド
ハードウェア接続
- F710r 本体に電池を入れ、電源を ON
- USB ワイヤレスレシーバーを Raspberry Pi に接続
🔧 ソフトウェア設定手順
1. xpad ドライバのインストール(XInput 対応)
sudo apt update
sudo apt install dkms git build-essential
git clone https://github.com/paroj/xpad.git
cd xpad
sudo cp -r . /usr/src/xpad-0.4
sudo dkms install -m xpad -v 0.4
ドライバ確認:
lsmod | grep xpad
2. 入力デバイスの確認
lsusb
ls /dev/input/js*
表示例:
-
046d:c21f Logitech F710
→ 認識成功 -
/dev/input/js0
→ ゲームパッドが使える状態
3. Python 仮想環境のセットアップ(任意)
sudo apt install -y python3-venv python3-pip
python3 -m venv ~/gamepad-env
source ~/gamepad-env/bin/activate
4. ライブラリのインストール
pip install pygame
🚀 サンプルコードの実行
1. 入力確認スクリプトの作成
任意の場所に F710_test.py
という名前で以下を保存:
import pygame
import time
pygame.init()
pygame.joystick.init()
if pygame.joystick.get_count() == 0:
print("ゲームパッドが接続されていません。")
exit()
joystick = pygame.joystick.Joystick(0)
joystick.init()
print(f"ゲームパッド名: {joystick.get_name()}")
print(f"ボタン数: {joystick.get_numbuttons()}")
print(f"軸数: {joystick.get_numaxes()}")
print(f"ハット数: {joystick.get_numhats()}")
try:
while True:
pygame.event.pump()
buttons = [joystick.get_button(i) for i in range(joystick.get_numbuttons())]
axes = [round(joystick.get_axis(i), 2) for i in range(joystick.get_numaxes())]
hats = [joystick.get_hat(i) for i in range(joystick.get_numhats())]
print("ボタン:", buttons)
print("軸:", axes)
print("ハット:", hats)
print("-" * 40)
time.sleep(0.2)
except KeyboardInterrupt:
print("終了します。")
pygame.quit()
2. スクリプトの実行
仮想環境が有効な状態で:
python3 gamepad_test.py
✅ 出力例
ゲームパッド名: Logitech Gamepad F710
ボタン: [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
軸: [0.0, -1.0, 0.02, 0.0]
ハット: [(0, 1)]
----------------------------------------
🔁 起動時に自動でドライバを有効化する方法
/etc/modules
に追加:
sudo nano /etc/modules
ファイル末尾に以下を追加:
xpad
保存して再起動:
sudo reboot
🔚 備考
- F710r は「X」モードでないと
xpad
で認識されません - 通信が不安定な場合は USB ポートを変えるか、延長ケーブルで距離をとる
- GUI での入力確認には
jstest-gtk
の使用もおすすめ:
sudo apt install jstest-gtk
jstest-gtk