こんにちは、はな夫(@logicalifer)です。
USB OTGに対応しているRaspberry pi zeroをUSBキーボード化します。
これにより、プログラマブルなキーボードとして動作させて、Alexaと連携したキーボード入力の実現を目指します。
参考にしたのは下記の記事です。
Raspberry pi zeroの初期設定
Raspberry pi zeroの初期設定は下記の記事で記載した方法を使用します。RJ45コネクタは未実装のため、最初から無線LANに接続するようにセットアップします。
ソフトのインストール
sshでログイン後、参考記事に記載の通りにセットアップを行っていきます。
まずは各種アップデートを実施します。Raspberry pi zeroだとかなり時間が掛かるので、他のRaspberry piがあれば、ここまでは実施した上でSDカードを差し替えた方が良いかもしれません。
sudo apt-get upgrade
sudo apt-get update
自分はviが使いこなせないので、emacsをインストールします。
sudo apt-get install emacs
次からはRaspberry pi zero固有のようなので、Raspberry pi zeroにSDカードを差し替えて実施します。ソースコードをダウンロードします。
git clone https://github.com/aidantwoods/RPi0w-keyboard
参照元に記載の通り、セットアップのスクリプトを実行します。
cd RPi0w-keyboard/src/install
sh ./setupOTG.sh
ソースコードのスクリプトを実行し、USBデバイスとなるか確認します。なお、この操作はrootで実施する必要があります。
su
cd RPi0w-keyboard/src/home/pi/
sh ./hid.sh
ls /dev/hidg0
自動起動時は、/etc/rc.localに記載の必要あり。サンプルはRPi0w-keyboard/src/etc/rc.localとなります。環境に合わせてパスを修正する必要があります。サンプルは、RPi0w-keyboard/src/home/piが/home/pi下にある状況向けに記述されています。
文字の送信
hid.shを実行するor自動起動をした後で、下記のようなコマンドを実行することで、USBで接続したデバイスにキーボード入力が送信されます。
sudo echo -ne "\0\0\x4\0\0\0\0\0" > /dev/hidg0
sudo echo -ne "\0\0\0\0\0\0\0\0" > /dev/hidg0
1行目の3つ目でx4となっているのがHIDのキーコードを押したこと、2行目がキーを離したことを意味します。1行目だけだと、文字をずっと押していることになるので注意です。
HIDのキーコードは下記のページの表を参考にできます。
ひとまず、任意のキーコードを相手先に送信する準備ができました。あとは、状況に合わせてキーコードを決定、送信する部分を作る必要がありますが、今回はここまでとして、また検証後に記事を作成しようと思います。
コメント