Raspberry Pi 3 Bluetoothキーボード マウスを使ってみる

2016-05-27-raspbian-jessieでBluetoothキーボードの設定をしてみました。

Raspberry Pi 3にオンボードでBluetoothが搭載されました。
手元にはAndroid用に揃えたキーボードとマウスがあるのですがAndroidでは使いづらいという事で結局眠っていました。このキーボード決して使いやすい訳ではないのですが記号、特に十字キーはかなり変則的でRaspberry Piにとっては小型だけがメリットと言えそうです。
この機会にRaspberry Piで活躍してもらいたいと思います。
blueman02
キーボード ELECOM TK-FBP052
マウス   ELECOM M-BL3BB

OSイメージは2016-03-18-raspbian-jessie.img

bluetooth関連の基本的なツール、ユーティリティは入っていますね。
Raspberry Pi 3にBluetoothが搭載されたことにより取り込まれたようです。

$ dpkg -l | grep blue
ii  bluetooth                             5.23-2+rpi1                               all          Bluetooth support
ii  bluez                                 5.23-2+rpi1                               armhf        Bluetooth tools and daemons
ii  bluez-firmware                        1.2-3+rpi1                                all          Firmware for Bluetooth devices
ii  libbluetooth3:armhf                   5.23-2+rpi1                               armhf        Library to use the BlueZ Linux Bluetooth stack
ii  pi-bluetooth                          0.1.0                                     armhf        Raspberry Pi 3 bluetooth

bluetoothデーモンもデフォルトで起動しています。

$ ps ax | grep blue
  717 ?        Ss     0:00 /usr/lib/bluetooth/bluetoothd

Raspberry Pi 3デバイス情報

$ hciconfig
hci0:	Type: BR/EDR  Bus: UART
	BD Address: B8:27:EB:24:C9:19  ACL MTU: 1021:8  SCO MTU: 64:1
	UP RUNNING 
	RX bytes:6200 acl:259 sco:0 events:76 errors:0
	TX bytes:1879 acl:14 sco:0 commands:53 errors:0

キーボードのペアリング
ArchWiki Bluetoothを参考にしました。
TK-FBP052のFn+Escを長押ししてペアリングモードにします。(青LED点滅)
以下を実行します。

$ hcitool scan
Scanning ...
	EC:EA:03:49:DA:6E	ELECOM TK-FBP052

キーボードが見つかりました。
対話モードを起動します。(pi or root どちらでもOKのようです)

$ bluetoothctl
[NEW] Controller B8:27:EB:24:C9:19 pi3 [default]
Agent registered
[bluetooth]#

[bluetooth]# コマンド待ちになります。

[bluetooth]# agent KeyboardOnly
Agent is already registered

[bluetooth]# default-agent
Default agent request successful

ペアリングモードになっていることを確認します。(青LED点滅)

[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:24:C9:19 Discovering: yes
[NEW] Device EC:EA:03:49:DA:6E ELECOM TK-FBP052

pairコマンドを実行します。

[bluetooth]# pair EC:EA:03:49:DA:6E
Attempting to pair with EC:EA:03:49:DA:6E
[CHG] Device EC:EA:03:49:DA:6E Connected: yes
[agent] PIN code: 590173
TK-FBP052で590173を入力 Enter(PIN codeは毎回変わります)
[CHG] Device EC:EA:03:49:DA:6E Modalias: usb:v056Ep102Dd0208
[CHG] Device EC:EA:03:49:DA:6E UUIDs:
	00001124-0000-1000-8000-00805f9b34fb
	00001200-0000-1000-8000-00805f9b34fb
[CHG] Device EC:EA:03:49:DA:6E Paired: yes
Pairing successful
[CHG] Device EC:EA:03:49:DA:6E Connected: no

Pairing successful ペアリング成功が出ればOK キーボードに接続します。

[bluetooth]# connect EC:EA:03:49:DA:6E
Attempting to connect to EC:EA:03:49:DA:6E
[CHG] Device EC:EA:03:49:DA:6E Connected: yes
Connection successful

青LEDが消灯して接続完了ここからTK-FBP052が使用できます。
信頼できる機器としてマークします。

[bluetooth]# trust EC:EA:03:49:DA:6E
[CHG] Device EC:EA:03:49:DA:6E Trusted: yes
Changing EC:EA:03:49:DA:6E trust succeeded

対話モードを終了します。

[bluetooth]# exit
Agent unregistered
[DEL] Controller B8:27:EB:24:C9:19 pi3 [default]

再起動後にもデバイスは有効になっています。(raspbianでは特に設定はいらない)
ただし最初は未接続の状態ですので起動後なにかキーを押して接続します。
TK-FBP052はなにもキーを押さないと10分で省電力モードに入ります。
瞬時に接続する時もありますがたいてい数秒かかります。
時折反応しなくなる時がありますがTK-FBP052の電源スイッチをOFF->ONする事でほとんど復帰します。
設定->Raspberry Piの設定からキーボード設定を行った場合USキーボードに戻ってしまうことがありました。
raspi-configから日本語キーボード設定後は大丈夫でした。

Blueman
残念ながらBluemanからはTK-FBP052のペアは出来ませんでした。
4桁のPIN codeまでは発行するのですがその時点で接続出来ていないようでペアが完了しません。
ほかのBluetoothキーボードは試してないのでわかりません。
bluemanには接続状態が確認できるアプレットもあるのでインストールしましょう。

# apt install blueman

インストールしたらMenu -> 設定 -> Bluetoothマネージャーを1回起動して閉じます。
再起動します。

blueman03
未接続

blueman04
接続時はアイコンがGreenに変わります

今度はBluemanからマウスのペアリングを実行してみましょう。

blueman06
マウスをペアリングモードにして検索をクリック

マウスを検出します。

blueman07
マウスを選択して鍵マークをクリック、Pairを実行します。

こちらはPIN codeも必要なくあっさりペアリングできました。

信頼機器マークをクリック。

右クリック Connect します。

再ペアする場合はRemoveしてから再度登録しなおします。

ペアリングしたBluetoothの設定ファイルは/var/lib/bluetoothに記録されます。
CLI環境などで一からやり直したいときにはbluetooth以下を削除したほうが早いかもしれません。

# tree /var/lib/bluetooth
bluetooth
└── B8:27:EB:24:C9:19
    ├── 88:E7:A6:09:11:03
    │   └── info
    ├── EC:EA:03:49:DA:6E
    │   └── info
    ├── cache
    │   ├── 88:E7:A6:09:11:03
    │   └── EC:EA:03:49:DA:6E
    └── settings

キーボードは多少の慣れが必要ですがフルキーボードに比べてスペース的にメリットがあるので我慢できる範囲です。
マウス(M-BL3BB)は小型のモバイル用でやはり省電力モードに入ってしまうので常用するには向いていないと思います。お外で利用したい時に使うのがいいと思います。

Raspberry Pi 3 を使ってみる Wi-Fi設定

pi3-01
Raspberry Pi 3が出ました。
今回はCPUの変更、そしてWi-Fi,Bluetoothがオンボードで搭載されています。
価格もこれまでと同じ35ドルとなっています。
こちらにMakeの記事が載っています。
Raspberry Pi財団は述べています。

「……私たちは営利を求めていません。子どもたちにプログラミングを教えることが目的なのです

35ドルという価格設定の中、今子どもたちがプログラミングをする上で必要としているのは2GBのメモリより、またギガビットEther,USB3.0よりもWi-FiとBluetoothが必要との判断だと思います。
この辺はきっと大人の事情は介在していないのでしょう。

RSでは近日発売予定となっているため若干割高ですがAmazonで購入。
pi(Rev2)を2台、pi2を2台、今回pi3を購入。これで5台目となりました。
今回はWi-Fiの設定をしてみたいと思います。
作業用のPcはPi2です。
インストールするOSイメージは2016-03-18-raspbian-jessie.zip

$ dmesg | tail で /dev/sdx を確認
# dd if=2016-03-18-raspbian-jessie.img of=/dev/sda bs=1M
3847+0 レコード入力
3847+0 レコード出力
4033871872 バイト (4.0 GB) コピーされました、 399.405 秒、 10.1 MB/秒

書き込んだsdカードをpi3に差し込んで起動します。(諸設定は割愛)

Wi-Fiの設定 DHCP
カントリーコードを設定します。
Menu -> 設定 -> Raspberry Pi の設定 -> ローカライゼーションからjp japanを選択wifi02
/etc/wpa_supplicant/wpa_supplicant.conf
デフォルトのcountry=GBからcountry=JPに変更されます。
直接編集してもOKです。JPは大文字
起動してから3分位待ってLXPanelのネットワークコンピュータアイコンをクリックすると周辺のアクセスポイントが現れました。
wifi05
wifi06
アクセスポイントをクリック、パスフレーズを入力します。

 

wifi07接続するとWi-Fiアイコンに変わります。
以下が出来たwpa_supplicant.confです。

# cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
	ssid="sky-free-e8acf9"
	psk="hogehoge"
	key_mgmt=WPA-PSK
}        

raspbianもwindows並に簡単に公共などのアクセスポイントを利用できるようになりました。
一旦登録したアクセスポイントはどんどん追記されていくので次回は自動で接続できるものと思います。
ただし明示的にアクセスポイントを選択すると登録済みでもパスフレーズの入力を促されます。
このへんは最近盛んにupdateされているので近い将来改善されるかもしれません。

ここまで/etc/network/interfacesはデフォルトのままでもWi-Fiで接続できました。
しかし当サイトのpi3はNFS(クライアント)を設定していますが起動時にnfsマウントが失敗します。
起動順位の違いでマウントできないものと思います。

$ cat /etc/network/interfaces
#iface wlan0 inet manual   #コメントアウト
iface wlan0 inet dhcp     #追記

やはり従来通りの設定を入れておくのが吉のようです。
wpa_supplicant.confも今まで使用していたものを使います。
参考 WPA supplicant

# cat wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
	ssid="sky-free-e8acf9"
	#psk="hogehoge"
        psk=4e19855452536ee309d296124c7549e35cb9a6f5ea020de3daed4d83398a4858
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	group=CCMP
	priority=2
}

Wi-Fiの設定 固定IP
Wi-Fiで固定IPを設定してみます。
LXPanel wifiアイコンを右クリック -> WiFi Networks(dhcpcdui)Settings クリック
wifi08
interface wlan0を選択、適用をクリック /etc/dhcpcd.confの末尾に以下が追記されます。
automatically configure empty options チェックあり

interface wlan0
inform 192.168.11.22
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

automatically configure empty options チェックなし

interface wlan0
static ip_address=192.168.11.22
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
static domain_search=

当サイトの環境ではどちらも固定IPが割り当てられました。
よく違いがわかりません。man dhcpcd.confにもinformについて書かれていません・・・

dhcpcd.confに設定があるとdhcpよりこちらの設定が優先されます。
有線の場合はinterface eth0で設定。
とりあえず固定IPにするには有線も無線もdhcpcd.confに設定を書けば良いようです。

pi3-02pi2と比べるとCPU温度が高めなのが気になりますがディスクトップ用途としても大分使いやすくなりました。

Raspberry Pi 電源とUSB HUB

先日PiサーバーのHDD(USBアダプタ接続)が認識できなくなってしまいました。HDD自体の不良では無くHDD電源の問題のようです。
またPiはUSBメモリなどの比較的消費電流の大きいデバイスを接続するとPiの電源も落ちてしまうのでUSBハブも考慮してみたいと思います。

powersupply01
これまで使用していた電源ユニット
5V2AとHDD用5V,12V電源
HDD用5Vが4.5V位に低下していました。
調整をしても5Vに届かず
Pi電源を含めて見直してみます。

powersupply02
今回はジャンクのATX電源を採用してみました。
当時のものとしては小型で容量は81WとATX電源としては非常にプアな値です。(増設機器のおまけ)
ですが5Vは11AとPiにとっては充分過ぎる容量を持っています。

powersupply03
TYPE BコネクタとUSB機器の充電用などにも使用できるようTYPE Aコネクタを2個設けました。
+5V,GNDを2本づつ、HDD用コネクタ、電源オン制御線を残して後はバッサリ切ります。

powersupply06
通常のATX電源と比較

Piへの給電

Piへの給電にはもちろんマイクロUSBから接続するのが一番安全ですがほかに簡単に給電する方法としてGPIO端子とUSB端子があります。
GPIO端子からの給電はなんらPiを保護する素子が無く万一誤ってショートした場合などは電源ユニットの保護回路に委ねることになります。
使用している電源によっては最悪ICの破損、パターン焼損などが考えられます。
RPI02
USB端子からの給電を検討してみます。
Piの回路図をみるとminiSMDC014が入っています。
特にGPIOなどで無茶をしない限りまあまあ安心と言えそうです。
当サイトのPiディスクトップはUSB端子から給電しており電流を計ると平常安定時単体で約0.5A、HDMIアダプタ使用時で約0.8A消費しています。特にトリップすることもありません。
下の表はRaychem製品のPDFから抜粋したものですがminiSMDC014-2の場合0.34AでトリップするとあるのでPi後期タイプは容量の大きいものに仕様が変更になっているものと思われます。
但しUSBメモリをもう一方のUSB端子に直挿しすると落ちます。
マイクロUSBから電源を取ってUSB端子に直挿しすると落ちます。
USB端子とマイクロUSBから別電源を取ってもやはり落ちます。
標準ではどんなことをしても落ちてしまうようです。

raychem
このPDFはFIL1026615.PDFで検索するとダウンロードできます。

USB HUB

USBメモリを挿したまま起動すればいいのですが抜き挿しの度にリブートするのは頂けません。
8ポートクラスのセルフパワーのUSBハブはかなりお高いですね。
そうなるとやはりこれしかありません。
以下は at one’s own risk(自己責任)で実行しています。
usbhub00
今回新たに1個買ってきたのですが以前のものと比べるとパターンが少々変更になっています。
コネクタの外装ケースの半田もかなり省略されています。1個は省略しすぎてぐらぐらになっていました。(外すのは少し楽)
まともな製品は各+5Vラインにリセッタブルフューズが入っているのですがこのハブにはありません。
外したコネクタのパターンをみると微妙なピッチになっています。ピンヘッダの取り付けも少し工夫が必要です。

usbhub01
コネクタは8個付いていますが1個はデジーチェーンしているために使えません。(7ポートハブ)
電源入力にはポリスイッチを入れるべきですが買い忘れてしまいました:)
今回は電源の保護回路にまかせて次の止める機会に取り付けようと思います。

usbhub02
基板はマルツの安い基板が1列をカットするとケースにほぼあいます。
(マルツも微妙に全般的に値上がりしています)
秋月のC基板とは若干サイズが違います。

usbhub03
左側が電源入力、右側がPiのUSB端子に接続します。
当初デジーチェーンしたコネクタは電源のみの取り出しに利用しようと思ったのですがデータケーブルを差し込むと後続のUSBハブがエラーを吐いてしまいました。微妙に電圧が生えてしまうものと思います。電源専用ケーブルを使用するといいのかもしれません。(未確認)

uschub04
今は白プリン1本を挿しています。
もう1本場所を確保しているのですが64G-Overが@1000位になったら導入したいと思います。
(現在の円安では当面無理そうですね)

powersupply05
Piへの給電は安定供給のためマイクロUSBへも接続しています。
電源に余裕ができたのでHDDを1台増設しました。
現在常時接続しているデバイスは
USBメモリ 32G
HDD 160G
HDD 80G
PRINTER IP2700
SCANER N1240U

コンパクトなPiがどんどん重くなる感じですが実用性とコストの関係から今のところ止む無しと考えています。

*気のせいでしょうか? 今の季節、PiのCPUに素手で触れるとHDDやメモリなどにアクセスが発生している感じがします。そんな時はいつの間にかI/Oエラーが発生していることがあります。
極力Piには直接触れないようにしています。

Raspberry Pi Iceweasel/31.2.0 が重くなった

Raspbian(debian)にしては珍しくIceweaselのメジャーバージョンアップがありました。
UIもシンプルに刷新されています。

iceweasel31
ですが時々重くなってしまいました。
Coogle検索から目的のページを開いたときに普通に見られるときもあればまた重くなってしまうときもあります。
よくよく挙動を見てみるとCoogleのホームを開いただけでCPUリソースを消費しておりオーバークロック状態に張り付いています。

調べてみるとjavascriptに原因があるようです。
Iceweaselのjavascriptをオフにするにはabout:configからjavascript.enabledの値をfalseにしてあげればいいのですがjavascriptを必要とするページもありこのままでは非常に不便になります。

javascriptを簡単にオン、オフを切り替えるQuickJavaというアドオンがあるのでインストールしてみました。
QuickJava 2.0.4

quickjava01
インストールしたらアドオンから設定をします。

取り敢えずjavascriptのみを設定をしてみました。
Include ln Favorltes チェック
Reload On Change チェック
Initialload(起動時) Off

quickjava02
起動時はオフに設定してあるので赤のアイコンで表示されます。

quickjava03
アイコンは常時表示されています。
アイコンをクリックすると青に変わってリロードします。

javascriptをオフにすることによりPiにしてはかなりサクサク動くようになりました。
今まで死ぬほど遅かったページも見られるようになりました。
Google検索では予測変換など効かなくなります。また一部機能、表示も変わってしまいます。
それでもPi使いにとっては少しでも軽い方が嬉しいですね。
どうしても必要な時はオンにするだけですから。

Top