EAGLEプリント基板製作入門MacでPICマイコン入門PICマイコン入門-基礎PICマイコン入門-実践PICマイコン入門-応用RaspberryPi入門プログラミング入門-基礎1HOME雑記帳じぶんキーボード設定アプリじぶんキーボード設定アプリ雑記帳じぶんキーボード雑記帳じぶんキーボードのキー割り当てを変更するMacのアプリを作りましたので公開しています。この記事の内容2013年に自由にカスタマイズできる足で操作するフットキーボードを製作したのですが、問い合わせをいただく内容を見ると、必ずしも足で操作するだけではなく、自分用にカスタマイズできるキーボードが欲しい、という方が何人かいらっしゃいました。いうことで、先日からじぶんキーボードとしてプリント基板も作っていたのですが、Macからキー割り当てを変更するアプリも作りましたので、一度このタイミングで今までの作業をまとめておこうと思います。今回は制御用マイコンとしてPIC18F14K50を使用し、スイッチ(キー)の接続を簡単にできるようにI/Oピン1本にスイッチを1個つなげるようにしました。PIC18F14K50はUSBデバイスにした場合はI/Oピンは13本取れますので、スイッチを12個と、キー割り当てを変えるためにシフトキーを1個つなげる仕様にしました。使い方としては、制御ボードに自分の好きなスイッチ(キー)をつなげます。つなげるスイッチは、電気的にOFF/ONができればなんでもOKです。こんな感じで使えます。ハードウエアまとめハードウエアですが、ノイズ対策をしないものだったり、きちんとしたものを設計してみましたが、普通に使うのであれば、Standard版でいいと思いますので、今後の作業は基本Standard版で進めたいと思います。以下、Standard版の回路図です。EAGLEの回路図とボード図もアップしておきます。ウィルスチェック済みです。Technology社のサンプルアプリをベースにしています。2015-08-15に含まれているものです。こちらもMPLABXのプロジェクトファイルをアップしておきます。ウィルスチェック済みです。プログラムの変更箇所には以下のコメントを入れてありますが、不明点がありましたらお問い合わせフォームからお問い合わせ頂ければと思います。https://github.com/tool-lab/jibun-keyboard-firmware設定アプリ(Mac用)まとめじぶんキーボードをMacに接続した状態で、Macからキーの割り当てを変更できるよう、設定アプリを作りました。HIDにアクセスする方法がわからなかったので、Objective-Cで書いてあります。以前作成したフットキーボード向けのソースをベースにしていますので、アプリ名は「JibunKeyboardSetter」ですが、ソースコード中、FootKeyboardという名称のままにしてあります。あと、デザインセンスが全くないので、とりあえずデザインみたいな感じのアイコンになっています。Xcodeのプロジェクトをアップしておきます。ウィルスチェック済みです。2016年5月14日追記なお、以前公開していました2016-05-07版はシフトキーを押した時の動作処理の実装漏れ&バグがありましたので、修正して2016-05-14版として更新しました。https://github.com/tool-lab/jibun-keyboard-setting-app課題と今後の作業これで、12個のキーの割り当てと動作ができるようになったのですが、いろいろ課題、というか疑問なところもあります。キーボード種類認識じぶんキーボードを初めてMacにつなぐと、キーボード種類の認識処理が始まります。その際、「シフトキーの隣のキーを押してください」っていう感じで、かなり無理ゲーの質問があります。これはESCキーを押してキャンセルすればいいのですが、この場合、標準的なキーボードと認識されている可能性があるのかな、って思ってます。その場合、標準キーボードで使えるキーの種類が限られていると、設定できるキーの種類が限られますので、キーボード種類認識の調査をしてみようと思います。設定アプリで現在の設定値を表示できていないキー設定時、今の設定値が表示されると分かりやすくなると思いますが、設定値の取得方法どうしようか悩んでいます。キーボードに今の設定値を返すコマンドを送って、キーボードから設定値を返してもらえばいいのですが、この返してもらう処理が、Macから見るとキー入力になるんですよね。いうことは、プログラムではNSView系のオブジェクトでキーイベントを拾えば実現できるのかな、って思ってますが、まだ試してないです。これも検討してみたいと思います。設定するキーの値を直感的に入力したい現在、キーの割り当て設定は、設定するキーの値の種類をポップアップメニューから選択するようにしています。直接キーの組み合わせを入力できるようにしたいので、これもどうすればよいのか検討してみます。これもNSView系のオブジェクトでキーイベントを拾えばできるんですよね。複数の文字を登録したい現在は各スイッチ1文字の登録という制限を設けています。PIC18F14K50は256バイトのEEPROMを持っていますので、複数文字の割り当て、保存ができるはずです。