完全自作キーボードへの道3:キーはひとつでも完全自作キーボード編

Arduino LED Blinking with switch
前回はLチカという、Arduinoにおける最初の一歩を踏み出せましたので、今回も自作キーボードのための勉強を進めていきたいと思います。

教科書は引き続きゆかり氏のこちら。ソースコードや配線など、必要な情報が揃っています。ありがたや。

オリジナルキーボードを作ってみる その4「Arduino入門編」
http://eucalyn.hatenadiary.jp/entry/original-keyboard-04

ソースコードはLチカからそれほど変わりませんが、今回はいよいよブレッドボードとジャンパーワイヤを使った回路を作る必要がありました。

電子回路はまったくわかりませんが、「スイッチを押すとArduino本体にあるLEDが光る」というのは下記のような仕組みで動いているようです。

  • Arduinoの5Vのピンからスタート、スイッチを経由して、3番ピンへ繋いでいる。
  • 5Vからは常にHIGHが送信されている
  • スイッチが押されていると、そのHIGHが3番ピンへ到着。digitalRead(3) == HIGHtrueとなる。
  • これだけだとスイッチを押してない場合に、3番ピンにHIGHもLOWも来ないのがよろしくないらしい。
  • そこでGNDから抵抗を挟んで3番ピンへ繋ぐ。これでスイッチが押されていない(スイッチ側の経路がない状態)の時は確実にLOWが3番ピンに到着する。

なんとなく理屈はわかりますが、基礎がわかってない素人の疑問としては「GNDはLOWだから抵抗を挟まずただ線で繋げば良いのではないか」と思いました。
もちろんダメで、その答えは「それだとスイッチが押されているときにヤバイ」です。スイッチが押されていると5VからのHIGHが3番ピンと、分岐してつながっているGNDの方にも来ます。この時に抵抗がないと5VがそのままGNDに行ってしまうので、それを防いでGNDでは0になるよう、抵抗を挟むらしいです。
大前提として、回路がGNDに到着するときには色々消費して0Vにする、というのがあるようです。

Yahoo知恵袋が初めてガチで役に立ちました。感謝。
プルダウン抵抗について、どうせGNDにつなげるのにそこに抵抗をつけて電流制… – Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1270458587

 
Arduino switch LED blink
頭で理解するのに苦労してますが、回路とソースコードは単純なので、そのまま作れば全く問題なく動きました。違う動きを試すために上記GIFアニメでは「押すと消える」になっています。

 
 
そのまま1キーのキーボードにする、というのも問題ありませんでした。

オリジナルキーボードを作ってみる その5「とりあえず1キーキーボード」 – ゆかりメモ
http://eucalyn.hatenadiary.jp/entry/original-keyboard-05

ArduinoではKeyboardというライブラリを使うとキーボードの動きを作れるみたいですね。同様にMouseというライブラリもあり、回路とプログラムをしっかり作れば、ありとあらゆるスイッチ類をキーボードとマウスにできるわけです。ミサイルスイッチでCtrl+Alt+Delを押せるデバイスとか、夢はひろがりんぐですね!

Arduino – MouseKeyboard
https://www.arduino.cc/en/Reference/MouseKeyboard

もう一つ覚えたのは、シリアルモニタの使い方です。デバッグコンソールのようなもので、Arduino IDEのツールメニュー内にある「シリアルモニタ」を選択すると、ウィンドウが表示されます。ショートカットはCtrl+Shift+Mです。
プログラムからこのウィンドウに対してログを表示するには、setupメソッド内でSerial.begin(9600);を呼び出しておき、ログを表示したいタイミングでSerial.println("Hello world");などとします。9600という数字は、シリアル通信の転送レートとありました。よくわからないので教科書通り9600とします。

 
 
こんな感じでうまくいってはいますが、GNDをしっかり理解できたのかちょっと怪しいです。何か間違っていたら教えてくださると助かります……

それにしても、キーは一つだけとは言え、既に「完全自作キーボード」ができたと言えなくもないです!
物理的なデバイスを自分で作ったのです!これは感動しますよ!!

次はこのキーをどんどん増やしていきます。Arduino楽しい~♪

これまでの完全自作キーボードへの道はこちらです。
http://romly.com/archives/tag/build-my-own-keyboard

1件のコメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください