しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Raspberry Pi 2 で USB-Bluetooth アダプターを使ってみた

何となく Bluetooth LE を Raspberry Pi 2 で使ってみたかったので、安くて小さい USB-Bluetooth アダプターを買ってみました。Broadcom のチップが良いらしいので、ちょっと高いものを選びました。

I-O DATA Bluetooth4.0+EDR/LE準拠 USBアダプター USB-BT40LE

I-O DATA Bluetooth4.0+EDR/LE準拠 USBアダプター USB-BT40LE

以前買った Wi-Fi のアダプタより少し小さくて、干渉するようなサイズではなかったので良かったです。

早速 Raspberry Pi 2 に接続して lsusb を叩くと、ちゃんと Broadcom のデバイスが見えるようになりました。

f:id:shiba-yan:20150422225959p:plain

認識されていても Bluetooth のスタックが入っていないので、別途インストールする必要があるみたいです。

BlueZ をインストール

調べてみると Raspberry Pi というか Linux だと BlueZ という Bluetooth スタックを使うのが一般的らしいですが、apt-get でインストール出来るものは BLE に非対応のようでした。

以下の記事を見ながら BLE が使えるバージョンをインストールしました。

RPi Bluetooth LE - eLinux.org

この記事では BlueZ 5.4 を使っていますが、最新版は 5.30 だったので読み変えて対応します。

BlueZ » Download

ビルドするためのコマンドを簡単に紹介しておくと、以下のような感じになります。

wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.30.tar.xz
xz -d bluez-5.30.tar.xz
tar xvf bluez-5.30.tar

cd bluez-5.30
./configure --disable-systemd
make

sudo make install

インストール直後だと hciconfig コマンドが使えないみたいですが、再起動すると使えるようになりました。

これでデバイスが確認出来れば Bluetooth アダプターがちゃんと認識されていることになります。

f:id:shiba-yan:20150422220715p:plain

DOWN になっている場合には sudo hciconfig hci0 up を実行して立ち上げます。

BLE を使う前に、まずは Bluetooth アダプターとして使えているのか、簡単に確認しておきます。Bluetooth デバイスのスキャンを hcitool scan コマンドで行えるので、これでデバイスを探してみました。

f:id:shiba-yan:20150423005540p:plain

実行してみると、手持ちのスマートフォンが一通り見つかりました。Bluetooth アダプターとしては問題なく動作しているようなので、次回は BLE デバイスを使って試してみたいと思います。