kstm Advent Calender 2024 22日目の記事です.
はじめに
XWiimoteとは,WiiリモコンなどをLinuxにBluetoothで接続して使用できるようにするデバイスドライバーです.センサーの値を取得して利用するプログラムをC言語で作ることができるようになります.
画像はXWiimoteに含まれるテストアプリxwiishowでセンサーの値を取得する様子
この記事では,VirtualBoxにインストールしたUbuntuでXWiimoteの環境を構築した手順を紹介します.
事前準備,検証環境
- wiiリモコン
BluetoothでNintendo RVL-CNT-01と表示される型のWiiリモコンプラスを使用しました.Nintendo RVL-CNT-01-TRと表示される型もあり,こちらも動作を確認しました. - VirtualBox7.0.14 上の Ubuntu24.04.1 LTS
こちらの記事を参考に構築しました.
- Bluetoothドングル
VirtualBox上のUbuntuでBluetoothを使用するために,TP-Link UB500を使用しました.もしかしたらPCに標準搭載されているBluetoothアダプターを使用することもできるかも知れませんが,私にはわかりませんでした.
環境構築
追記
今から説明する以下のステップを踏まずとも,sudo apt install xwiimote
でインストールできました.
- システム更新
パッケージを最新の状態にします.sudo apt update sudo apt upgrade
- 必要なパッケージのインストール
XWiimoteのビルドに必要な開発ツールやライブラリをインストールします.sudo apt install libudev-dev libncurses-dev git autoconf libtool pkg-config make
- XWiimoteのソースコードを取得
Gitを使用してXWiimoteのリポジトリからソースコードをクローンします.私はホームディレクトリで実行しました.git clone https://github.com/xwiimote/xwiimote.git
- ソースコードのビルドとインストール
クローンしたディレクトリに移動し,ビルドとインストールをします.ライブラリlibxwiimote.so.2を認識させるためにldconfigを実行しています.cd xwiimote ./autogen.sh make sudo make install sudo ldconfig
これで環境構築は終了です.
使用できるか確認
-
WiiリモコンをBluetoothで接続
VirtualBox上のUbuntuでBluetoothドングルを認識させ,UbuntuでBluetoothを使用できるようにします.Wiiリモコンの裏にある赤いSyncボタンを押すとUbuntu側でBluetooth機器として「Nintendo RVL-CNT-01」が見つかるので接続します.成功すると1PのLEDが点灯します.
windowsPCのVirtualBoxでBluetoothドングルを使用するやり方の参考記事
https://askubuntu.com/questions/1378461/virtualbox-bluetooth
-
xwiishow
xwiishowを実行すると接続しているwiiリモコンをテストすることができます.xwiishow list # 認識されているWiiリモコン一覧を表示 xwiishow 1 # 一覧に表示されたリモコンの内,番号'1'のリモコンをテスト
以上
リンク集
XWiimoteについて(公式)
XWiimoteについて(ArchWiki)
XWiimoteのリファレンス
XWiimoteのリポジトリ
XWiimoteを利用したC++プログラムの参考
Wiiリモコンが使えるようになるライブラリ一覧
Wiiリモコンについて