ラベル bluetooth の投稿を表示しています。 すべての投稿を表示
ラベル bluetooth の投稿を表示しています。 すべての投稿を表示

2014/05/24

PidoraでCLIからBluetooth SPP接続しようとしたらbluez-simple-agentがない件

Raspberry PiのPidoraでコマンドラインからBluetooth SPPで接続しようとしたところ、bluezパッケージ(bluez4)をインストールしてあるにもかかわらず、
bluez-simple-agentなどのコマンドがないということで引っかかってしまいました。
私のRPiのPidoraはFedora18ベースのバージョンなのですが、どうもリポジトリにある bluez4 のパッケージに、これらのコマンドが含まれていないようです。(たぶん。)

Bluezのソースコードからビルドすれば良いのですが、
今ビルドするだけのために必要なパッケージをRaspberry PiのSDカードにインストールするのもあれですし、単なるPythonスクリプトですので、他から持ってくることにしました。

私のRPiのPidoraにあるbluezは Bluez-4.101-5 です。
従って、bluez-4.101 のソースコードから持ってくれば良いということになります。
http://www.bluez.org/download/ から bluez-4.101.tar.xz をダウンロードし、
アーカイブを解凍したところ、"test"ディレクトリ以下に"simple-agent"、"test-device"などのファイルがありました。
# ls test/
agent.c     l2test.c            service-spp.xml   test-nap
attest.c    list-devices        simple-agent      test-network
avtest.c    lmptest.c           simple-endpoint   test-oob
bdaddr.8    monitor-bluetooth   simple-player     test-proximity
bdaddr.c    mpris-player.c      simple-service    test-sap-server
btiotest.c  rctest.1            test-adapter      test-serial
dbusdef.py  rctest.c            test-attrib       test-serial-proxy
gaptest.c   sap-client          test-audio        test-service
hciemu.1    scotest.c           test-device       test-telephony
hciemu.c    sdptest.c           test-discovery    test-textfile.c
hsmicro     service-did.xml     test-health       test-thermometer
hsplay      service-ftp.xml     test-health-sink  uuidtest.c
hstest.c    service-opp.xml     test-input
ipctest.c   service-record.dtd  test-manager
この中からを必要なスクリプト(simple-agent, test-device)をリネームして/usr/local/bin あたりにコピーすればOKです。
# cp test/simple-agent /usr/local/bin/bluez-simple-agent
# cp test/test-device /usr/local/bin/bluez-test-device

あとは接続を試してみます...。
# hciconfig hci0 up
# hcitool scan
Scanning ...
    XX:XX:XX:XX:XX:XX    xxxxx

# bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX
# RequestPinCode (/org/bluez/xxx/hci0/dev_xx_xx_xx_xx_xx_xx)
Enter PIN Code: XXXX

# bluez-test-device trusted XX:XX:XX:XX:XX:XX
# rfcomm bind 0  XX:XX:XX:XX:XX:XX
# rfcomm
rfcomm0: XX:XX:XX:XX:XX:XX channel 1 closed

/dev/rfcomm*にバインドされましたので、minicom などのターミナルから接続できるはずです。
# minicom -D /dev/rfcomm0

2013/08/20

Arduino+Bluetoothシリアル通信によるワイヤレスなLED制御

Arduino Leonardoに Bluetoothモジュールを接続して、
シリアル通信で、ワイヤレスなLED制御 (Lチカ) をしてみました。
Android端末とペアリングして制御することもできます。
とりあえずはそれだけですが、かなり簡単です。(ありがたいことにドキュメントも沢山あります。)



今回用いたモノ:

  • "Arduino Leonardo"
  • "Bluetoothモジュール RBT-001"
    技適取得済みのBluetooth2.0(SPP/GAP/SDAP)モジュールです。
  • "RBT-001用シリアルレベルコンバータ Rev.3"
    Arduinoは3.3/5V、RBT-001は3V駆動なので変換が必要です。
    今回は手軽なこの変換基板を用いました。
    これと同様の基板はRBT-001を取り扱っている各社から出ています。
  • "高輝度5mm青色LED OSUB5111A"
    手持ちのLEDです。
  • "カーボン抵抗 1kΩ"

以下、手順を簡単に説明しておきます。