今のところフットキーボードにこれ以上スイッチを追加する予定はなく、PICのピンが余っているのでフットライトを追加してみました。
フットライト
足元って意外に暗いですよね。フットキーボードは足元に置くので、LEDライトをつけておけば便利かな、と思って高輝度LEDを追加しました。(思いつきでいろいろやってるのでなかなか進まない…)
回路図
照明として使うので、高輝度LEDを使います。今回使ったのは、
https://akizukidenshi.com/catalog/g/gI-02024/
です。20mAで順方向電圧3Vぐらいです。20mAでしたらPICの出力ピンにつなげそうですが、2個とか3個とかつけるかもしれないので、トランジスタを使うことにしました。トランジスタは以前、秋月で大量に買った2SC1815(GR)があるので、それを使います。
PICのピンはRB5を使いました。回路はこれです。
なお、回路図中の抵抗R11とR12は以下のように計算しました。(いい加減ですが)
R12ですが、まず、抵抗にかかる電圧はだいたい電源のVDD(5V)からLEDの順方向電圧VF(3V)を引いて2Vとしました。LEDに20mA流したいので、2V / 20mA = 100オームとなります。
また、R11ですが、コレクタ電流を十分に流したいため、hFEはかなり余裕をみて20ぐらいとしました。PICのRB5がONのとき、5V出力として、コレクタ-ベース電圧が0.6Vとすると、抵抗には4.4Vかかります。
これらの条件から、まずベース電流を計算すると、コレクタ電流は20mAに対して、hFEが20ということで、ベース電流は1mAです。R12には4.4Vかかって、そのとき1mA流したいので、4.4V / 1mA = 4.4kオームとなります。でも手持ちに適当なものがなかったので計算はあくまで参考ということで3.9kとしました。(計算の意味がない…)
なお、このR12は大きくするとトランジスタが思い通りに動かない場合がありますので注意が必要です。PICのRB5が0Vのとき、回路としては以下になります。
このとき、トランジスタのコレクタからベースに漏れ電流が流れます。すると、図のベース抵抗(RB)には電圧が発生してしまいます。これによりA点の電圧は、漏れ電流 x ベース抵抗になります。漏れ電流が10uAだとすると、今回使う3.9kオームの場合、A点の電圧は、10uA x 3.9kオーム = 39mVとなります。A点の電圧が0.5Vを超えてくるとトランジスタのスイッチが入ってしまう可能性がありますので、A点の電圧は0.5Vより低く抑える必要があります。今回の計算では39mVなのでまずまず大丈夫ですが、逆算すると、0.5V / 10uA = 50kオーム、ということでベース抵抗は50kオームより大きい値ですと、動作が怪しくなることがあるはずです。
なお、高輝度LEDを2つつける場合、以下のような回路にする予定です。
LEDが2個の場合、コレクタ電流は40mAとして、抵抗R11は1.8kオームに変えています。
回路組み立て
仮組で無計画に進めていましたので、そろそろブレッドポードの空きスペースが少なくなってきました。試作はLEDは1個にしました。
PICプログラム
フットライトのOn/Offスイッチのコマンドは、
項目 | 内容 |
---|---|
コマンド | 0x02 |
パラメータ | 0x00がOff、0x01がOn |
としました。ただ、今回の試作はMacアプリ側を手抜きしてプッシュボタンで実装しますので、トグル動作としました。パラメータは無視して、0x02のコマンドを受け取ったらトグル動作しています。
Macアプリ
Macアプリは今まで作ってきたダイアログに、「フットライト」のボタンを追加しました。このボタンをクリックすると、0x02のコマンドをフットキーボードに送るだけにしました。パラメータは固定値です。
ご参考に回路図、PICプログラム、macOSアプリのソースコードをアップしておきます。
https://github.com/tool-lab/foot-keyboard-added-foot-light
動作確認
準備が終わりましたので、PICプログラムをビルド、PICマイコンに書き込み、Macアプリをビルドして、USBケーブルで接続します。
Macのアプリを立ち上げて、「フットライト」ボタンをクリックすると、、、
光りました。かなり明るいです。2個ぐらいつければ十分ですかね。
そろそろ仕様を決めて、ケースに組込んで、Macのアプリをつくらないと、、、
実は2〜3ヶ月で終わるかな、と思っていたのですが、思いのほか時間がかかっています。
変更履歴
日付 | 変更内容 |
---|---|
2013.5.5 | 新規投稿 |
2019.3.24 | ダウンロードファイルをGithubに引越し |