難しい顔をして。
キーボードのどのキーが押されたか
わからんのだ。
今回はPythonでRaspberry Pi の
キーボードイベントを調べてみよう。
各コマンドの頭にある「$ 」はプロンプト部分なので、入力は不要です。
先にこちらの記事を読まれることをおススメします。
すけろく んー なんだか、変わってしまったのう げんろく どうした? むずかしそうな顔をして。 すけろく Raspberry Pi OSのPythonにパッケージを 入れる[…]
Pythonの環境を準備する
今回使うPythonの環境は、Raspberry Pi OS上にPython仮想環境を立て、行います。
パッケージは、Raspberry Pi OS上にあるPython環境をPython仮想環境にコピーしています。
パッケージの準備
今回、Pythonでキーボードなどのイベントを取得するパッケージは次のものを使用します。
パッケージ名 | ドキュメント |
「evdev」 | パッケージのドキュメントはこちらをクリック! |
パッケージのインストール
パッケージのインストールは、次のコマンドを実行します。
(env)$ pip3 install evdev
Pythonプログラムによる確認
インストールしたパッケージを使って、キーボードなどのイベントを取得します。
次の3つのプログラムで確認していきます。
- Raspberry Pi OSで認識されているイベント番号の確認プログラム
- キーイベントなどの「evdev」パッケージでの認識名の確認プログラム
- キーイベントを判定基準に使ったプログラム
Raspberry Pi OSのイベント番号確認プログラム
Raspberry Pi OSでは、電源ボタンなども含め、接続されているデバイスの
イベントを「/dev/input」で管理しています。
(env)$ ls /dev/input by-id by-path event0 event1 event2 event3 event4 event5 event6 event7 event8 event9 mice mouse0
Pythonプログラムの作成
(env)$ python3 src/KeyBoard_/device_event_info.py /dev/input/event0 pwr_button gpio-keys/input0 /dev/input/event1 vc4-hdmi-0 vc4-hdmi-0/input0 /dev/input/event2 vc4-hdmi-0 HDMI Jack ALSA /dev/input/event3 vc4-hdmi-1 vc4-hdmi-1/input0 /dev/input/event4 vc4-hdmi-1 HDMI Jack ALSA /dev/input/event5 ELECOM ELECOM TK-FCP096 usb-xhci-hcd.0-2/input0 /dev/input/event6 ELECOM ELECOM TK-FCP096 Consumer Control usb-xhci-hcd.0-2/input1 /dev/input/event7 ELECOM ELECOM TK-FCP096 System Control usb-xhci-hcd.0-2/input1 /dev/input/event8 ELECOM ELECOM TK-FCP096 Wireless Radio Control usb-xhci-hcd.0-2/input1 /dev/input/event9 ELECOM ELECOM TK-FCP096 Mouse usb-xhci-hcd.0-2/input1
キーイベントの「evdev」パッケージでの認識名の確認プログラム
Pythonプログラムの作成
(env)$ python3 src/KeyBoard_/device_event_check.py device /dev/input/event5, name "ELECOM ELECOM TK-FCP096", phys "usb-xhci-hcd.0-2/input0", uniq "" key event at 1744942972.256194, 2 (KEY_1), down ←「1」キーが押された key event at 1744942972.376201, 2 (KEY_1), up key event at 1744942975.448373, 17 (KEY_W), down ←「W」キーが押された key event at 1744942975.600380, 17 (KEY_W), up key event at 1744942977.872511, 42 (KEY_LEFTSHIFT), down ←「左Shift」キーが押された key event at 1744942978.016518, 42 (KEY_LEFTSHIFT), up key event at 1744942978.736559, 29 (KEY_LEFTCTRL), down ←「左Ctrl」キーが押された key event at 1744942978.920569, 29 (KEY_LEFTCTRL), up key event at 1744942979.432597, 57 (KEY_SPACE), down ←「SPACE」キーが押された key event at 1744942979.560602, 57 (KEY_SPACE), up key event at 1744942981.304706, 1 (KEY_ESC), down ←「ESC」キーが押された ESC : KEY Down Program Stop. Program end
キーイベントを判定基準に使ったプログラム
Pythonプログラムの作成
(env)$ python3 src/KeyBoard_/keyboad_test.py key event at 1744943900.420224, 2 (KEY_1), down 1 : KEY Down Program Stop. key event at 1744943900.540231, 2 (KEY_1), up key event at 1744943906.756578, 17 (KEY_W), down w : KEY Down Program Stop. key event at 1744943906.844585, 17 (KEY_W), up key event at 1744943911.916870, 57 (KEY_SPACE), down SPACE : KEY Down Program Stop. key event at 1744943912.060876, 57 (KEY_SPACE), up key event at 1744943918.093215, 1 (KEY_ESC), down ESC : KEY Down Program Stop. Program end
編集後記
いかがだったでしょうか。
今回は、Raspberry Pi に接続されたキーボードなどで押されたキーの情報を
Pythonプログラムで認識して処理するプログラムをご紹介しました。
これがあれば、ディスプレイ接続がない状態でもキーボードなどの入力デバイスを
使って処理を行うことができます。
記事は以上になります。
最後までご覧くださりありがとうございました。
今回使用したRaspberry Pi はこちら!
Raspberry Pi の他の記事はこちらからどうぞ!
すけろく うーむ げんろく どうした。 難しい顔をして。 すけろく PythonでRaspberry Pi につないだ キーボードのどのキーが押されたか わからんのだ。 げんろく よし。 今回はPythonでRaspberry Pi の キーボードイベントを調べてみよう。 今回の記事は、Raspberry Pi OS上でのPython開発をしていると、 カメラ制御などの際に、画像や動画の取得の開始 […]
すけろく Raspberry Pi OS上ではなく、リモートで 開発環境を作れないものか。 げんろく うむ。 ディスプレイやマウス、キーボードをつないで 開発するのは面倒だからな。 すけろく そうなのだ。 SSHだけでやるのも面倒だし。 げんろく わかった。 VNCとVScodeを使ってリモートで 開発できる環境を作ってみよう! Raspberry Pi 5でPython開発する際に思うのは、開発 […]
すけろく んー なんだか、変わってしまったのう げんろく どうした? むずかしそうな顔をして。 すけろく Raspberry Pi OSのPythonにパッケージを 入れるために「pip」を使ったら コマンドを受け付けないのだ。 げんろく うむ。 少し環境が変わっているからのぉ よし確認してみるか。 Raspberry Pi OSでプログラムを実行する場合、Pythonを使うことも多いですが、Ra […]
すけろく よし!ユーザも変更したし、自動ログインも できないようにしたぞ! これでやっと・・・ げんろく それは良い心がけだな。 Wi-Fiの設定(パスフレーズの暗号化状態)は 確認したのかな? すけろく 。。。 げんろく 今すぐやったほうがよいよ! 念のためにな。 Raspberry Pi のOSインストール、セキュリティ設定とこれまで説明してきました。 この記事では、セキュリティ設定の続きとし […]
すけろく Raspberry Pi は、OSの書き込みも簡単で すぐに使いはじめられるな! げんろく 初期設定はちゃんとしたのか? まさか、初期設定のまま使っていることはないよな? すけろく 。。。 げんろく 初期設定のままだと、特にユーザ名は公開名だから セキュリティ上よろしくないのだ。 そのあたりも含めて説明しよう。 Raspberry Pi のOSインストール(MicroSDへの書き込み)に […]
すけろく 「ラズベリーパイ」を買ってきたぞ! げんろく 「お!もしかして、有名店のおいしいやつか!」って ベタな反応はしないぞ。Raspberry Piだろ? 前回も同じくだりがあったような。 すけろく チッ、つまらんやつだのう。 まあ、その通りだが。。。 Raspberry Pi のOS書き込みツールやら Raspberry Pi 5やらいろいろと出たので 初期設定の方法を再度確認したいのだ。 […]
すけろく うーむ。 このカメラは、Raspberry Pi では使えないのか? げんろく どうした。 カメラを見つめて。 すけろく Raspberry Pi でカメラがうまく認識できないのだ。 公式のカメラではないからなのか。 わからなくてな。 げんろく Raspberry Pi では、カメラの自動認識機能があって 認識範囲外のカメラを使うときはコツがいるぞ。 今回はそのあたりを紹介してみよう。 […]
すけろく うっ。 拙者ももはや、これまでか。。。 げんろく どうした!? 気をしっかり持つのじゃ! 何があった? すけろく わしの相棒(ラズパイ)からの連絡がここしばらくない。。 嫌われたかのう(涙)。。。 げんろく なんだ、そんなことか。 心配して損したのう。Rassbery Pi OS側のネットワークが 無効になったりすることもあるぞ。。 すけろく ・・・なに! 嫌われたのではないのだな! げ […]
すけろく よし!ユーザも変更したし、自動ログインも できないようにしたぞ! これでやっと・・・ げんろく それは良い心がけだな。 Wi-Fiのパスフレーズの暗号化はしたのかな? すけろく 。。。 げんろく 今すぐやったほうがよいよ! 念のためにな。 Raspberry Pi のOSインストール、セキュリティ設定とこれまで説明してきました。 この記事では、セキュリティ設定の続きとして、Wi-Fiのパ […]
すけろく Raspberry Pi は、OSの書き込みも簡単で すぐに使いはじめられるな! げんろく 初期設定はちゃんとしたのか? まさか、初期設定のまま使っていることはないよな? すけろく 。。。 げんろく 初期設定のままだと、特にユーザ名は公開名だから セキュリティ上よろしくないのだ。 そのあたりも含めて説明しよう。 Raspberry Pi のOSインストール(MicroSDへの書き込み)に […]
すけろく 外出先でノートパソコンとRaspberry Piで いい感じにドヤれる開発手法はないか? げんろく ほう。それならUSB On-The-Goを使う手があるぞ。 パソコンとRaspberry PiをUSBケーブルでつないで ゴニョゴニョできるしな。電源もとれる。 すけろく なに!いいではないか! それを教えてくれ。 カフェで優越感に浸っている自分が見えるぞ! げんろく 不純な動機だな。 最 […]
すけろく 「ラズベリーパイ」を買ってきたぞ! げんろく 「お!もしかして、有名店のおいしいやつか!」って ベタな反応はしないぞ。Raspberry Piだろ? すけろく チッ、つまらんやつだのう。 まあ、その通りだが。。。 今回は初期設定を学びたいと思っている。 げんろく わかった。 OSのインストールから初期設定までを教えてやろう。 皆さんは「Raspberry Pi」ってご存じですか? 「ラズ […]
すけろく Raspberry PiやJetsonのシングルボードコンピュータを使っていると 必要になるmicroSDカード。 何を買えばよいのやら。。。 げんろく microSDカードには意外といろんな規格があるんだよな。 しかも安価なものは信頼性が低かったりするし。 すけろく 価格で選んで、結果動かなかったり、動作が遅かったりする。 悩みどころだな。 げんろく ここいらで、一度microSDカー […]