今回、OpenBlocks AX3およびA6からUSB Bluetoothアダプタを介して、本デバイスに接続し、接続先の装置との接続検証を行いました。
従来のDebian 6.0(Squeeze)環境に加え、先日β公開されたDebian 7.0(Wheezy)環境での検証も行っています。
OBDN技術ブログによる動作検証は、該当するデバイスの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。
<検証環境>
Debian 6.0 Squeeze
OpenBlocks AX3/4 kernel: 3.0.6
OpenBlocks A6 kernel: 2.6.31.8
Debian 7.0 Wheezy
OpenBlocks AX3/4 kernel: 3.2.36
OpenBlocks A6 kernel: 3.2.36
OpenBlocks AX3/4 kernel: 3.0.6
OpenBlocks A6 kernel: 2.6.31.8
Debian 7.0 Wheezy
OpenBlocks AX3/4 kernel: 3.2.36
OpenBlocks A6 kernel: 3.2.36
<使用機材>
OpenBlocks AX3/4
OpenBlocks A6
RATOC Systems Inc. REX-BT60 Bluetooth-RS232C変換アダプタ
ELECOM LBT-UAN04C1Bluetooth USBホストアダプタ
OpenBlocks A6
RATOC Systems Inc. REX-BT60 Bluetooth-RS232C変換アダプタ
ELECOM LBT-UAN04C1Bluetooth USBホストアダプタ
1. Bluetoothデバイスの導入
Logitec社製Bluetoothアダプタ LBT-UAN04C1BKを使用しました。
<dmesgの例 A6/Wheezy環境>
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
2. Bluezの導入
・Bluezのインストール
Bluetooth機器の操作は、bluezパッケージに入っているコマンドを利用します。
# aptitude -R install bluez python-dbus python-gobject
python-*は、ペアリングなどを行うスクリプトを動かすために必要です。
・インターフェイスの確認・設定
Bluetooth機器はhciXというデバイス名(インターフェイス名)で扱います。
# hciconfig -a
hci0: Type: BR/EDR Bus: USB
BD Address: 00:09:DD:40:DE:09 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:19916 acl:159 sco:0 events:260 errors:0
TX bytes:1942 acl:66 sco:0 commands:76 errors:0
Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'obsa6-0'
Class: 0x420100
Service Classes: Networking, Telephony
Device Class: Computer, Uncategorized
HCI Version: 4.0 (0x6) Revision: 0x1d86
LMP Version: 4.0 (0x6) Subversion: 0x1d86
Manufacturer: Cambridge Silicon Radio (10)
hci0: Type: BR/EDR Bus: USB
BD Address: 00:09:DD:40:DE:09 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:19916 acl:159 sco:0 events:260 errors:0
TX bytes:1942 acl:66 sco:0 commands:76 errors:0
Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'obsa6-0'
Class: 0x420100
Service Classes: Networking, Telephony
Device Class: Computer, Uncategorized
HCI Version: 4.0 (0x6) Revision: 0x1d86
LMP Version: 4.0 (0x6) Subversion: 0x1d86
Manufacturer: Cambridge Silicon Radio (10)
3. ペアリング方法
・デバイスのスキャン
hcitoolを使用します。
# hcitool scan
Scanning ...
XX:XX:XX:XX:XX:XX RN42-XXXX
Scanning ...
XX:XX:XX:XX:XX:XX RN42-XXXX
REX-BT60は、RN42-XXXXと表示されます。
・ペアリング
simple-agentは、Debian wheezeのパッケージからは、
bluez-simple-agent
bluez-test-device
に置き換わり、/usr/bin以下にインストールされています。
それぞれのペアリング方法は以下の通りです。
初期設定では、REX-BT60のPINは1234と設定されています。
(Debian 6.0 Squeeze)
# /usr/share/doc/bluez/examples/simple-agent hci0 <BTADDR>
RequestPinCode (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
Enter PIN Code: 1234
Release
New device (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
RequestPinCode (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
Enter PIN Code: 1234
Release
New device (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
(Debian 7.0 Wheezy)
# bluez-simple-agent hci0 <BTADDR>
RequestPinCode (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
Enter PIN Code: 1234
Release
New device (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
RequestPinCode (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
Enter PIN Code: 1234
Release
New device (/org/bluez/3445/hci0/dev_XX_XX_XX_XX_XX_XX)
ペアリングの確認は以下のコマンドで行います。
(Debian 6.0 Squeeze)
# /usr/share/doc/bluez/examples/test-device list
dbus.Array([dbus.ObjectPath('/org/bluez/1453/hci0/dev_XX_XX_XX_XX_XX_XX')], signature=dbus.Signature('o'))
dbus.Array([dbus.ObjectPath('/org/bluez/1453/hci0/dev_XX_XX_XX_XX_XX_XX')], signature=dbus.Signature('o'))
(Debian 7.0 Wheezy)
# bluez-test-device list
XX:XX:XX:XX:XX:XX RN42-XXXX
XX:XX:XX:XX:XX:XX RN42-XXXX
ペアリングの解除方法は以下の通りです。
(Debian 6.0 Squeeze)
# /usr/share/doc/bluez/examples/test-device remove <BTADDR>
(Debian 7.0 Wheezy)
# bluez-test-device remove <BTADDR>
4. rfcommによる仮想シリアルデバイス作成
本デバイスはSPPプロファイルに対応しており、OpenBlocksからデータをハンドリングするためには、rfcommにより仮想シリアルデバイスとして扱います。
#rfcomm connect hci0 <BTADDR>&
/dev/rfcomm0が作成されているのを確認してください。
# ls -la /dev/rfcomm0
crw-rw---- 1 root dialout 216, 0 Feb 28 09:07 /dev/rfcomm0
crw-rw---- 1 root dialout 216, 0 Feb 28 09:07 /dev/rfcomm0
5. minicom による接続テスト
今回は、REX-BT60を、別のOpenBlocksのコンソールポート(115200bps/8bit/ノンパリティ/1ストップビット)に接続し、minicomによりBT経由での端末操作を行いました。
・minicomのインストール
# aptitude install minicom
・接続
# minicom -D /dev/rfcomm0
6. さいごに
REX-BT60はBluetoothによるワイヤレスシリアル通信を行えるデバイスとして、OpenBlocksでも手軽に利用出来ることを確認しました。
0 件のコメント:
コメントを投稿