さんのUSBマイコンボードキットとブレッドボードで「じぶんキーボード」の試作をしてみました。最終的には回路図を作成して、その回路図を元にプリント基板まで作ってみようと思いますが、まずはブレッドボードで試作してみたいと思います。ブレッドボードはハンダ付けが必要ないとはいえ、配線もそれなりに面倒なので、試作はちょっと楽をしてみようと思います。秋月電子通商さんに、PIC18F14K50を使ったUSBの動作確認ができるマイコンボードがありますので、今回はこれを使ってみました。PIC18F14K50使用USB対応超小型マイコンボード結構小さいですが、2.54mm間隔のピンヘッダ、PICKIT接続用のピンなど一通り揃っていますので、ブレッドボードでの試作にちょうどいい感じです。今回はこのキットを使ってカスタマイズ可能なキーボードを試作してみます。以下の項目で説明を進めます。PIC18F14K50マイコンボードで使用できるピンの確認GPIOとして使用できるピンの数などを確認してみます。キーの構成キーをどのように構成するか検討してみます。試作版の回路図マイコンボードキットを使用した回路図を作成します。試作版キースイッチとしてタクトスイッチを使用して、ブレッドボードで試作してみます。動作確認Microchip社のサンプルコードをベースにカスタマイズして動作確認してみます。すみません、プログラムはまだ整理できていないので、後の公開とさせてください。今後の予定を考えてみます。秋月電子通商さんで売っているこのキット、ちょっと値段が高いですが、USBコネクタや水晶発振子もついているので、ちょっとしたことの動作確認には便利です。このキットで使えるピンを確認してみます。(PIC18F14K50USBマイコンボードキット説明書より引用・加工)PIC18F14K50のピン名でいうと、RCポート(RC0〜RC7)の8本と、RBポート(RB4〜RB7)の4本が使えます。PICKIT接続用のコネクタの「VPP」端子はRA3として使えますので、合計13本のピンが使えることになります。いうことで、13本のピンを入力ピンにして、スイッチを接続して最大13個のキーを接続できるカスタマイズキーボードを作ってみます。最大13個の入力ピンの使い方ですが、13個全部にキーを割り当ててもいいですが、もうちょっと拡張できるように、12個のキーは通常キーとして割り当て、残りの1個のキーはシフトキーに使いたいと思います。シフトキーを押してない時は12種類のキー割り当て、シフトキーを押した場合は、別の12種類のキーの割り当てができるようにして、合計24種類のキー入力ができるようにしたいと思います。実際に例で確認したほうがわかりやすいと思いますので、先に試作版で作成したものを説明します。このように、13個のキーを12個の通常入力キーと、1個のシフトキーにします。vを割り当てて、カット・コピー・ペーストが簡単にできるように割り当てる、という使い方を想定してみました。試作版の回路図ということで試作版の回路図ですが、マイコンボードキットを使いますので、マイコンボードにキーを接続するだけです。PIC18F14K50の内部プルアップ/プルダウンはRBポートしか用意されていませんので、今回はすべてのポートに外部のプルアップ抵抗をつけます。シフトキーはVPP/RA3ポートに接続することにしました。(PIC18F14K50USBマイコンボードキット説明書より引用・加工)ということで、あとはひたすらプルアップ抵抗付きのスイッチをつけるだけです。回路図としては簡単ですが、こんな感じです。試作版ということで、あとはひたすらブレッドボードに回路を組んでいきます。VPP/RA3ポートは90度曲がっているピンヘッダを基板上側につけていますので、動作させる場合は、別途ジャンパワイヤでタクトスイッチに接続します。先ほど、キーの割り当てを説明するときにお見せしてしまいましたが、こんな感じで作ってみました。Applications」というライブラリ(フレームワーク)とサンプルコードが提供されていますので、今回はそれをベースに最初の例で説明したようなキー割り当てで動作確認用のプログラムを作ってみました。プログラムですが、サンプルコードのまま、必要な部分のみ追加して必要ない部分はそのままで、それはとても汚いプログラムですので、すみません、公開は後ほどとさせてください。シフトキーの構成で、キーの割り当てと動作確認ができました。今回はタクトスイッチ13個を入力キーとしましたが、実際には足で操作するフットキーを接続したり、入力を簡単にするためにタッチセンサーを使ったキーなども接続できるようにしたいと思います。接続するキーは電気的にON/OFFができるものであればいいので、自作のキーで独自の入力方法を作ってもいいかもしれません。キーの数も12個あるので、例えば8個を手で入力するキー、残りの4個を足で操作するフットキーを接続する、という使い方もできそうです。その場合、今回試作した回路では、ちょっと問題があります。一つは、ノイズの問題です。今回の試作版はスイッチとマイコンの間の接続線が比較的短いためノイズはあまり考えなくて良いですが、例えばフットキーを接続するためにPICマイコンとフットスイッチを長い電線で接続する場合は、その電線がノイズを拾って誤動作したり、場合によってはPICマイコンが壊れてしまう可能性があります。実際の制御ボードはその対策が必要です。一つは、スイッチのチャタリング問題です。第27回」で説明していますので、ご存じない方はご参考にされてみてください。PICマイコンのキーボードプログラムはそれほどチャタリングを意識する必要はない構成ですが、チャタリング時間が長い場合はやはり対策をしておいた方が安全だと思います。いうことで、実際にプリント基板を作る時はチャタリング対策の回路を入れておこうと思います。部品点数が多くなるので、長い電線を接続しない場合向けに、チャタリング対策をしていないプリント基板も作ろうかと思います。いうことで、今後は以下の作業を進めていこうと思います。雑記帳やっぱりキーポードのサンプルコード書き直そう。