1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

プログラミング不要でキーボードを作ることができると話題のHT82K629Bを使って,プログラマブルキーボードのように好きなキーを入力できるデバイスを作ってみました。

RaspberryPiでGPIOを制御する方法については本記事では割愛します。RaspberryPiのGPIOはPythonやNode-REDなど様々な方法を使って制御することが可能です。

HT82K629Bとスイッチのみでキーを入力する

HT82K629BはUSBケーブルでPCと接続し,入力の端子の組み合わせをショートするだけで対応するキーを入力することができるICです。HT82K629Bを基板に実装して販売されているモジュールもあります。
今回は基盤として販売されている「キーボード実験基板(表面実装版・完成品)【MR-KEYBOARDV2】」を使用しました。使い方は非常に簡単でUSB端子をケーブルでPCにつないだうえでC列とR列の端子をショートさせるだけで対応するキーが入力されます。
端子とキーの組み合わせはマニュアルに記載があります。

pict01.png

HT82K629BをRaspberryPiで制御する

RaspberryPiのHigh/Lowの信号を使ってHT82K629BのC列とR列の端子をオープン/ショートを制御することで,RaspberryPiを使ってキー入力の操作ができます。
High/Lowの信号をオープン/ショートに変換するためにはアナログスイッチを使用します。

pict02.png

複数のキーを同時に入力する

HT82K629BはC列とR列の複数の端子の組み合わせをショートさせることで複数のキーを同時に入力することが可能です。例えば「Ctrl + C」はC0-R6とC3-R4,「Ctrl + P」はC0-R6とC11-R0をショートさせます。ショートさせるタイミングはキーボードを抑えるときと同様に①C0-R6をショート(Ctrlキー押下)②C3-R4をショート(Cキー押下)の順番で制御します。

pict03.png

RaspberryPiを使って全てのキーを入力するには

このモジュールはC列が20端子,R列が8端子あるので入力可能なキーの組み合わせはトータル160個になります。一方でRaspberryPiで使用できるGPIOの数は26個なので各GPIO1つでそれぞれの1つのキー入力を制御しようとすると,最大26個のキーしか同時に制御できません。
そこで,ラッチ回路とデコーダを使用することで少ないGPIOで多くのキーの組み合わせを制御することができるようになります。
以下は回路構成例になります。

pict04.png

他にもシフトレジスタを使う方式で制御が可能です。
あとはスイッチの入力をRaspberryPiのGPIOに接続することで,スイッチを押すと特定のキーを押すプログラマブルキーボードを作ることができます。

作ってみた

今回はHT82K629BとRaspberryPi,ロジックICを使ったプログラマブルキーボードの作り方を紹介しました。このプログラマブルキーボードのメリットは,接続したPCには専用のプログラムなどをインストールする必要なく,HT82K629Bがキーボードとして認識されれば使用できる点です。
この回路ではキーの同時押しだけでなく,
①「Win」キーを押下
②文字列を入力してアプリケーションを検索
③実行(「Enter」キー押下)
のような連続したキー操作も可能です。
また,上記構成で実際には組み上げた回路が以下写真になります。(これは「A」キーと「Shift」キーのみを制御する回路です。160個のキーを同様に制御すると回路はもっと巨大になります。)動画は小文字の「a」と大文字の「A」を交互に打ち続けるように設定したときのものです。

pict05.jpg

Animation.gif

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?