概要
-
らずぱいのBluetoothを使って、BTキーボードに化け(エミュレーション)、ラズパイに挿したUSBキーボードから、タイプする
という記事をためしたメモ。
-
元記事
-
Emulating a Bluetooth Keyboard with a Raspberry Pi and Python (Raspbian Jessie/Bluez 5 version)
↑は、↓を参考にして、最近の環境に対応させたものらしい。 -
Emulate a Bluetooth keyboard with the Raspberry Pi - Learn how to relay the input from a USB keyboard to a Bluetooth-capable device using the Raspberry Pi
-
Emulating a Bluetooth Keyboard with a Raspberry Pi and Python (Raspbian Jessie/Bluez 5 version)
-
BLEではないっぽい?(スマホから検出できなかった)
-
実装されたコードは、まったく見ていない。。手順を追ったのみ。
環境
- Raspberry Pi: Zero W と 3 Model B で確認
- Raspbian:
2017-03-02-raspbian-jessie-lite.img
- USBキーボード - らずぱいに接続
- Raspbian:
- Windows 7 64ビット: sshにて、らずぱいにログインして、設定した。あと、BTの接続テスト
手順
-
Raspbian起動させる
- microSDに、Raspbianイメージ焼く
- 必要あれば、
-
ssh
(空ファイル) とwpa_supplicant.conf
(あれば)をFATパーティションに sudo apt-get update && sudo apt-get upgrade
-
-
必要なパッケージ類のインストール
-
とりあえず、
とりあえず
-
sudo apt-get install -y htop byobu git-core python-dbus python-gtk2
- Bluetooth関連
```bash:Bluetooth関連
sudo apt-get install -y python-gobject bluez bluez-tools bluez-firmware python-bluez python-dev python-pip
sudo pip install evdev
-
byobu起動
-
byobu
[Enter] で起動 - Ctrl+aする =>
1
[Enter] (初回時のみ)
-
-
Bluetooth Daemon Configuration
こぴぺ# Stop the background process sudo /etc/init.d/bluetooth stop # Open a dedicated terminal and tun the bluetooth daemon in the foreground sudo /usr/sbin/bluetoothd --nodetach --debug -p time
-
Ctrl+a (離して) c
-
Emulator Sever
# Download the code cd ${HOME} git clone https://github.com/yaptb/BlogCode.git # Configure DBUS cd BlogCode/btkeyboard/dbus sudo cp org.yaptb.btkbservice.conf /etc/dbus-1/system.d/ #hciconfig sudo hciconfig hci0 sudo hciconfig hci0 up sudo hciconfig hci0
ここで表示された、BD Addressを控えておく。
=> 例)BD Address: B8:27:EB:31:41:59
ACL MTU: 1021:8 SCO MTU: 64:1
```bash:btk_server.pyを編集
#Edit the Emulator Server Code
cd ${HOME}
cd BlogCode/btkeyboard/server
#
vi btk_server.py
```
=> MY_ADDRESSに先ほどのBD ADDRESS、MY_DEV_NAMEに適当な名前を入れる。
MY_ADDRESS="B8:27:EB:31:41:59"
MY_DEV_NAME="RPiZeroW_BTKb"
```bash:EmulatorServer起動
# Run Emulator Server
cd ${HOME}
cd BlogCode/btkeyboard/server
sudo python btk_server.py
```
```shell-session:(実行例)
pi@raspberrypi:~/BlogCode/btkeyboard/server$ sudo python btk_server.py
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
Setting up service
Setting up BT device
Configuring for name RPiZeroW_BTKb
Configuring Bluez Profile
Reading service record
Profile registered
Waiting for connections
```
-
Ctrl+a (離して) c
-
Pairing
-
sudo /usr/bin/bluetoothctl
を実行して、↓をこぴぺ。
こぴぺagent on default-agent scan on discoverable on
-
-
Ctrl+a (離して) c
-
Local Keyboard Mirroring
- USBキーボードをらずぱいに挿して、以下、こぴぺ。
cd cd BlogCode/btkeyboard/keyboard sudo python kb_client.py
実行例pi@raspberrypi:~/BlogCode/btkeyboard/keyboard$ sudo python kb_client.py Setting up keyboard setting up DBus Client waiting for keyboard found a keyboard starting event loop
=> らずぱいに刺さったUSBキーボードで、操作が行えるハズ。
その他
-
電源を入れなおしたときは、こんな感じ??
# byobu起動 byobu # Stop the background process sudo /etc/init.d/bluetooth stop # Open a dedicated terminal and tun the bluetooth daemon in the foreground sudo /usr/sbin/bluetoothd --nodetach --debug -p time ######## Ctrl+a c ######## sudo hciconfig hcio up sudo hciconfig hcio cd ${HOME} cd BlogCode/btkeyboard/server sudo python btk_server.py ######## Ctrl+a c ######## sudo /usr/bin/bluetoothctl agent on default-agent scan on discoverable on ######## Ctrl+a c ######## cd cd BlogCode/btkeyboard/keyboard sudo python kb_client.py