Arduino に PS/2 キーボードを接続してみます。
必要なものは以下の通りです。
基板に取り付けるタイプの Mini DIN 6pin コネクタは以下から購入できます。
配線は以下のようになります。
CLOCK / DATA ピンは 10kΩ抵抗でプルアップしておきます (なくても動きますが)。
ブレッドボードで使えるようにしたモジュールと、シールド化したものです。シールド用の基板には サンハヤト UB-ARD03-P を使ってみました。
eBay にも PS/2 キーボードアダプタが売ってあるようです (200円前後)。
See Also:
Arduino で PS/2 キーボードを使うには、PS2Keyboard Libraryを利用します。
Tamakichi さん作の STM32 対応版もあります (ドキュメントをよく読んでください)。
Clock をデジタルピン #3 に、Data をデジタルピン #8 に接続し、GND と +5V を GND / Vcc へ接続して以下のスケッチを実行します。
|
シリアルモニタを開いてキーボードを叩くと、文字がシリアルモニタに表示されると思います。
See Also:
キーボードを叩いてみるとキートップの刻印と一致しない文字があるかと思います。日本語 (JIS) 配列キーボードを使っているとそうなってしまいます。
まごころせいじつ堂さんのArduinoにPS/2日本語キーボードをつなぐ(カナ対応) という記事中にある改変版ライブラリを使うのが最も簡単です...が、このライブラリは PS2Keyboard Library の ver2.3 ベースで、かつ実際にはカナ入力にはあまり意味がないのです。
|
改変版ライブラリに差し替えて、先程のスケッチをちょっと書き換えて実行してみましょう。刻印通りに文字が入力されますね。ですが、高速にキーを叩くと入力していない文字が表示されると思います。キーボードの処理が追いついていません。この改変版ライブラリの有用性を否定している訳ではなく、Arduino で使うには少々ヘビーだという事です。
そこで、
これらの条件を満たすものを作ってみました。UNO でも Leonardo でも動作します。
Download: ps2keyboard_240_mod.zip
コンパクト化についてですが、ver2.4 はただでさえライブラリサイズが大きく、日本語配列キーボード対応を追加するとなるとスケッチのサイズはさらに大きくなってしまいます。
|
利用しないキーボードがあれば、PS2Keyboard.h 内の定義をコメントアウトするなり削除してスケッチのサイズをコンパクトにする事ができます。日本語配列キーボードだけ使うようにすれば、1KB 以上サイズが小さくなります。たかが 1KB でしょうが、Arduino (UNO) にとっては 1/32 ですからね。
キーボードのライブラリは他にもありますが、うまく動かなかったりしたので結局は PS2Keyboard Library ベースのものを使っています。
See Also:
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。