Raspberry Pi + Bluetooth
とある目的のためにRapberry PiにBluetooth ドングルを差してiPhone等とコミュニケーションさせたい。
そのために行ったことをつらつらと。
H/W、S/W構成
・Raspberry Pi 2 Model B
OS:Raspbian Jessie
Varsion:Linux raspberrypi 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 armv7l GNU/Linux
・Bluetooth ドングル Princeton PTM-UBT7
過去に別用途で購入(たしか安かったから)したものを引用。一応Bluetooth Low Energy(BLE)対応っぽいけど苦労したくないならPlanex辺りを購入した方が無難か。
BlueZ のインストール
まず現在bluezがインストールされていないことを確認
dpkg -l | grep blue
BluezはLinuxで一般的に使われているBluetoothスタックらしいです。apt-getでインストールできるものは古そうだったので、ビルドすることにしました。
まずいろいろ作業するためにDocuments内に作業ディレクトリを作成
cd Documents/
mkdir -p work/bluetooth
記事執筆時点(2016/01/02)での最新バージョンはどうやら5.37の模様。
https://www.kernel.org/pub/linux/bluetooth/
ここで最新のものを選択して取ってくる。
$ wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.37.tar.xz
取ってきたら解凍して
$ tar xvf bluez-5.37.tar
解凍したソースディレクトリ内に入り、コンフィグを設定
$ cd bluez-5.37/
$ ./configure --disable-systemd --enable-library
依存関係とかいろいろ確認されるが、自分の環境では以下のエラーが発生
checking for linux/if_alg.h... yes
checking for GLIB... no
configure: error: GLib >= 2.28 is required
GLibが存在しないらしいので、関連するものをまとめて入れ込み(そもそも先に入れておくものらしい)
$ sudo apt-get install libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libical-dev libreadline-dev libudev-dev libusb-dev make
ごちゃっと
再度コンフィグを設定すると、
$ ./configure --disable-systemd --enable-library
・
・
checking for GLIB... yes
・
・
checking that generated files are newer than configure... done
今度はうまくいったっぽい。次はビルドしてインストール。
makeで10~15分ほどかかります。
$ make
$ sudo make install
続けてmakeでインストールされないものを手動でインストール
$ sudo cp attrib/gatttool /usr/local/bin/
libbluetooth-dev の各種ヘッダファイルをビルドしたもので置き換え
$ sudo cp -ipr lib/ /usr/include/bluetooth.5.37
$ cd /usr/include
BTドングルの状況をチェック
$ lsusb
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 004: ID 0d8c:0014 C-Media Electronics, Inc.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device 005にBTドングルさんがいますね。
ドングル詳細情報はID指定で
$ sudo lsusb -v -d 0a12:
状態は
$ hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:XX:XX:XX ACL MTU: 310:10 SCO MTU: 64:8
DOWN
RX bytes:580 acl:0 sco:0 events:31 errors:0
TX bytes:368 acl:0 sco:0 commands:30 errors:0
DOWNなので認識してるけど寝ている状態ですかね。
(MACアドレスはマスクしてます)
BTドングルの起動
$ sudo hciconfig hci0 up
$ hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:XX:XX:XX ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING
RX bytes:1154 acl:0 sco:0 events:61 errors:0
TX bytes:736 acl:0 sco:0 commands:60 errors:0
UP RUNNINGになったので起動できたと思われます。
Bluetooth デバイスのスキャン
$ sudo hcitool lescan
LE Scan ...
本来ここで手持ちのBLEデバイスたちが表示されるはずが、自分は特に所有していなかったため何も表示されず(ちゃんと動いてんのかこれ、、、)
$ hcitool scan
では一応手持ちのiPhone5等が表示されました。
(あれっiPhone5ってBLE対応してないんだっけ?)
また、デバイスからRPiを発見できるように
sudo hciconfig hci0 piscan
にて設定。
参考にさせていただいたサイト
kakakikikekeのブログ: RaspberryPi に BlueZ をインストールして BLE を検知してみた
次はPCやiPhone等別デバイスとのコミュニケーションを行う予定です。
プリンストン Bluetooth USBアダプター (通信距離 25m:Ver4.0接続、10m:Ver3.0 Class2接続) PTM-UBT7
- 出版社/メーカー: プリンストン
- 発売日: 2014/10/06
- メディア: Personal Computers
- この商品を含むブログ (1件) を見る
Raspberry Pi 初期設定
Raspberry Pi を初期設定する際のメモです。
H/W : Raspberry Pi 2 Model B
OS : Raspbian Jessie
※OSインストール直後の話です。
LocaleはEnglish(UK)としてインストール (ディレクトリ名が日本語になると面倒なので)
1 キーボードの設定
OSインストール時にキーボードをjpに設定してもキーボード配列が英字用になってたりするので、
sudo raspi-config にて設定を行う
jessieではキーボード設定は
5 Internationalisation Options I3 Change Keybord Layout -> Generic 105-key (Intl) PC -> Japanese - Japanese (OADG 109A) ->The default for the keyboard layout -> No compose key -> Use Control+Alt+Backspace to terminate the X server? Yes
2 ユーザパスワードの設定
1に引き続き
2 Change User Password You will now be asked to enter a new password for the pi user -> OK
表示されるターミナルにて新しいパスワードを入力
5 IPアドレスの設定
CUIでもできるが、面倒なのでデスクトップ右上のWiFi Networks(dhcpcdui) Settingsより「Neteork Preference」を開き、Configure:interface eth0 の設定を行う。
IP Adress、Routerの項目を入力しApply。(ここではまだ反映されない)
7 SSH リモート接続の確認
windowsよりPuTTY等のSSHクライアントより、先ほど設定したIPアドレスにアクセスを試みる。接続できたら、user名はデフォルトで「pi」、パスワードは先ほど設定したものを入力する。
ログインできたら次は日本語環境を設定していく。
母艦で調べてからのコマンドコピペが使えるようになるのでここからSSHリモート接続にて作業を行っていく。
8 日本語フォント導入
日本語フォントを導入する前にLocaleを日本語にするとメニュー等の日本語部分が文字化けするため、先に日本語表示環境を準備する。
まず
sudo apt-get update
で更新
日本語フォントのインストール(2016.04.22修正)
sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
日本語を入力するためのメソッドをインストール
sudo apt-get install uim uim-anthy
jfbtermをインストール。
sudo apt-get install jfbterm
jfbtermとは?
コンソール画面(真っ黒の操作画面)で日本語を表示する為のソフト。これをインストールしなければ日本語のフォントを入れても文字化けします。
9 地域(Locale)の設定
ターミナルにて再びsudo raspi-config にて設定
I1 Change Locale
一覧の中から選択、なにかあった場合戻せるようにここで現在のLocaleも覚えておく
現在はen_GB.UTF-8 UTF-8 だった
ja_JP.UTF-8 UTF-8 にチェック
Default locale for the system environment:
-> ja_JP.UTF-8
10 再起動
ターミナルより
sudo reboot
メニュー等の日本語化およびターミナルでの日本語表示、入力ができることを確認
以上
おまけ
Windowsからのリモートデスクトップ接続へ対応
xrdpというパッケージをインストールします
sudo apt-get install xrdp
インストール完了後にwindows側から、設定したIPアドレスに対しリモートデスクトップを行う。
要求されるユーザ名はデフォルトで「pi」
パスは設定したもの。
Windows-RPi間のクリップボードの共有等ができないため多少不便ではありますが、
簡単な作業であれば支障はないかと。
(うーん日本語フォントが気に入らない、、、前はもっと見た目が良かったものを使っていたような、、、)
参考にさせていただいたサイト
» 解決!Raspberry Piの日本語が四角の文字化けになった時の初歩ミス。|コワーキングスペース管理人のブログ
ラズベリーパイ2の使い方とOSセットアップ方法 | うしこlog
Raspberry pi 2 + リモートデスクトップ接続(Windows 7) - 日記とか、工作記録とか
Raspberry Pi2 Model B ボード&ケースセット (Standard, Clear)-Physical Computing Lab
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログ (10件) を見る