Howto

Armadillo-400に市販のBluetooth USBドングルを接続してみた

本稿では、Armadillo-400シリーズに市販のBluetooth USBドングルを接続し使用する方法について紹介します。

  1. 動作確認用の環境
  2. Bluetooth用カーネルコンフィギュレーション
  3. Debian GNU/Linux SDブート環境の構築
  4. bluetoothパッケージのインストール
  5. Bluetoothデバイスの動作確認
  6. Bluetooth接続の設定
  7. PCとの通信確認

1.動作確認用の環境

本稿の内容を試行する為に、以下が必要となります。

  1. Armadillo-420,Armadillo-440,Armadillo-460 のいずれか1つ
  2. Armadilloに接続するBluetooth USBドングル
  3. Bluetoothに対応したWindows PC

2. Bluetooth用カーネルコンフィギュレーション

Armadillo-400シリーズ用のLinuxカーネルは、デフォルトではBluetoothのサポートが無効となっています。
Bluetoothを使用するためには、下記のカーネルコンフィギュレーション設定を行い、Bluetoothサポートを有効にします。
※今回はシリアル通信のみを使用するコンフィギュレーションに設定しています。

Linux Kernel Configuration
  Networking  --->  
    <*>   Bluetooth subsystem support  --->     ★チェック
         <*>   L2CAP protocol support           ★チェック
         < >   SCO links support
         <*>   RFCOMM protocol support          ★チェック
         [*]     RFCOMM TTY support             ★チェック
         < >   BNEP protocol support
         < >   HIDP protocol support
               Bluetooth device drivers  ---> 
               <*> HCI USB driver               ★チェック
               [ ]   SCO (voice) support
               < > HCI SDIO driver
               < > HCI UART driver
               <*> HCI BCM203x USB driver       ★チェック
               < > HCI BPA10x USB driver
               < > HCI BlueFRITZ! USB driver
               < > HCI VHCI (Virtual HCI device) driver

3.Debian GNU/Linux SDブート環境の構築

Bluetoothにて通信を行うには、2.Bluetooth用カーネルコンフィギュレーションで示したカーネルコンフィギュレーションを行ったカーネルの他に、 Bluetoothユーティリティが必要となります。

本稿では、SDカード上に構築したDebian GNU/Linux環境を用いてBluetooth通信を確認します。

SDカード上にDebian GNU/Linux環境を構築する方法は、下記をご参照ください。
Armadillo-400 シリーズ ソフトウェアマニュアル 第8章 カーネル/ユーザーランドの配置

8.2.3. カーネルイメージの配置の手順においては2.Bluetooth用カーネルコンフィギュレーションの設定を行ったカーネルを使用してください。

4.bluetoothパッケージのインストール

ArmadilloをDebian GNU/Linuxで起動後、 下記コマンドを実行して、Bluetoothユーティリティと、シリアル通信確認用のターミナルソフトウェア(minicom)をインストールします。

[Armadillo]# apt-get update
[Armadillo]# apt-get install bluetooth minicom

5.Bluetoothデバイスの動作確認

ArmadilloにBluetooth USBドングルを接続し、 下記コマンドでBluetooth USBドングルが認識されているかを確認します。

以降、Bluetoothアドレスを記載しておりますが、お使いの環境に合わせて、
アドレスは適宜読み替えてください。

[Armadillo]# hciconfig
hci0:   Type: USB
        BD Address: 00:1B:DC:05:42:AD ACL MTU: 310:10 SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:971 acl:0 sco:0 events:27 errors:0
        TX bytes:597 acl:0 sco:0 commands:26 errors:0

6.Bluetooth接続の設定

/etc/bluetooth/hcid.conf を編集し、Bluetooth接続の設定を行います。

[Armadillo]# vi /etc/bluetooth/hcid.conf

本編集にて下記が設定されます。

  • security を user から autoへ変更(ペアリング時にPINコードを自動応答)
  • ペアリング時のPINコードを 1234 に設定
  • デバイスネームを"Armadillo"に変更
#
# HCI daemon configuration file.
#

# HCId options
options {
        # Automatically initialize new devices
        autoinit yes;

        # Security Manager mode
        #   none - Security manager disabled
        #   auto - Use local PIN for incoming connections
        #   user - Always ask user for a PIN
        #
        security auto;   ★user から autoへ変更

        # Pairing mode
        #   none  - Pairing disabled
        #   multi - Allow pairing with already paired devices
        #   once  - Pair once and deny successive attempts
        pairing multi;

        # Default PIN code for incoming connections
        passkey "1234";  ★ペアリング時のPINコードを1234に設定
}

# Default settings for HCI devices
device {
        # Local device name
        #   %d - device id
        #   %h - host name
        #name "%h-%d";        ★コメントアウト
        name "Armadillo";    ★デバイス名をArmadilloに変更

上記の設定を完了後に、Bluetoothサービスを再起動して、設定を反映させます。

[Armadillo]:~# /etc/init.d/bluetooth restart

7.PCとの通信確認

次にArmadilloとWindows7 PC間をBluetoothで通信をさせてみます。

ペアリング

Windows7 PCにて以下の操作を実行します。

  1. コントロールパネル
  2. デバイスとプリンター
  3. デバイスの追加
  4. Armadillo が検索されるので選択し 次へ
  5. ペアリングオプションの選択 にて 「デバイスのペアリング コードの入力」を選択します。
  6. ペアリングコードに 1234 を入力して次へ
  7. 「このデバイスは、このコンピュータに正常に追加されました」の画面が出れば成功です

Windows7 PCからArmadilloを発見できない場合は以下のコマンドを試してみてください。

[Armadillo]:~# hciconfig
hci0:   Type: USB
        BD Address: 00:1B:DC:05:42:AD ACL MTU: 310:10 SCO MTU: 64:8
        UP RUNNING
        RX bytes:725 acl:0 sco:0 events:27 errors:0
        TX bytes:597 acl:0 sco:0 commands:27 errors:0
        (※UP RUNNINGの行にPSCAN ISCANの記載が無い場合、デバイスが発見できません)
        
[Armadillo]:~# hciconfig hci0 piscan
[Armadillo]:~# hciconfig
hci0:   Type: USB
        BD Address: 00:1B:DC:05:42:AD ACL MTU: 310:10 SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:738 acl:0 sco:0 events:29 errors:0
        TX bytes:604 acl:0 sco:0 commands:29 errors:0

Bluetoothデバイスアドレスの確認

次に、ArmadilloからのBluetooth接続に必要な、Windows7 PCのBluetoothデバイスのアドレスを調べます。
本稿執筆時の環境では00:1B:41:06:03:50が確認できました。

  1. コントロールパネル
  2. デバイスとプリンター
  3. Generic Bluetooth Radio を右クリックし、Bluetooth設定を選択
  4. ハードウェア のタブを選択します
  5. Generic Bluetooth Radio を選択し プロパティ を選択
  6. 詳細設定のタブを選択し、アドレスに表示されている Bluetoothアドレスを確認します

Bluetooth COMポートの追加

次にWindows7 PC上で下記の手順を実行し、Bluetooth COMポートを追加します。

  1. コントロールパネル
  2. デバイスとプリンター
  3. Generic Bluetooth Radio を右クリックし、Bluetooth設定を選択
  4. COM ポートのタブを選択します
  5. 追加を選択し、「着信(デバイスが接続を開始する)」をチェックし、OKを選択します。
  6. デバイスドライバのインストールが始まり、新しいCOMポートがインストールされます。
  7. 「このデバイスは、このコンピュータに正常に追加されました」の画面が出れば成功です
  8. Windows7 PCで追加したCOMポートをターミナルソフトウェア(TeraTermなど)で起動をします。

接続

次にArmadillo上で下記のコマンドを実行し、Windows7 PCへ接続を行います。

[Armadillo]:~# rfcomm connect 0 00:1B:41:06:03:50 1 &
[1] 1403
Connected /dev/rfcomm0 to 00:1B:41:06:03:50 on channel 1
Press CTRL-C for hangup

接続が完了すると /dev/rfcomm0 が生成されますので、minicomを起動し通信を確認します。

[Armadillo]:~# minicom -s -o

minicomのSerialPort設定にて /dev/rfcomm0 を使用するように変更します。

---------------------------------------------------
    x A -    Serial Device      : /dev/rfcomm0 ★
    x B - Lockfile Location     : /var/lock   
    x C -   Callin Program      :             
    x D -  Callout Program      :             
    x E -    Bps/Par/Bits       : 115200 8N1  
    x F - Hardware Flow Control : Yes         
    x G - Software Flow Control : No          
---------------------------------------------------

動作確認

Armadillo上で動作するminicom上で文字を入力すると、 Windows7 PC上のターミナルソフトウェアで入力した文字が確認できます。