オリジナルキーボードを作ってみる 番外編その1「ファームウェア開発時のトラップ」
ありがたいことにブログを参考にチャレンジしてくださる方がTwitterにちらほらおられるのですが、 ファームウェア開発時にハマりがちなトラップとその対策について少しだけまとめておきます。
以前1キーキーボード編で以下のように雑に書いていました。
キーボードやマウス機能を実装するとき、ミスるとPCに繋ぐだけでマウスやキーボードが暴れて、 コードをArduinoに送れない!!的な問題が起こりがちです。
なので基本何かを書き換える時はシリアルモニターでチェックしてからにしたほうが安全です。
このあたりについてもう少し詳しく書いておきます。
ひたすらキー入力されてしまう!対策
間違ったスケッチをアップロードしてしまうと、ひたすら「abcd...」と入力し続ける困ったハードが出来上がりがちです。
更にArduinoIDEで開発していると、スケッチをアップロードし直したいのにスケッチ自体が書き換わってコンパイルエラーになり、ドツボに嵌ります。
ここでは2つの対策法をご紹介します。
他のエディタを使う
ArduinoIDEの設定の中に「Use external editor(外部のエディタを使用する)」という項目があります。
これをONにすると、他エディタで保存した変更がリアルタイムにArduinoIDE側に反映されると共に、ArduinoIDEからファイルの編集ができなくなります。
そのため、とりあえず「アップロードしたいのにスケッチが書き換わってコンパイルエラーを吐く!!」という状況が防げます。
キーボードの入力を一時的に無効にするユーティリティアプリを使う
そのものずばりですが、一時的にキーボードの入力を無視してくれるアプリを使えば何も焦ることなくアップロードできます。
Macの場合は「Better Touch Tool」の開発者の方が「Keyboard Clean Tool」というアプリを公開しており、僕はそれを使用しています。
(上記Downloadページの一番下にあります。)
Windowsにも適当にあると思います。
マウスが暴れて大変!なときのアップロードのコツ
マウス機能を実装し始めると上記の対策だけではどうにもならなくなります。
マウスが暴れてそれどころじゃなくなるからです。
ショートカットキーでアップロードしても、ProMicroからシリアル通信が送られてきている間はスケッチがアップロードできないのかミスりまくります。
そんな時は強制リセットをして軽いスケッチを無理やりアップロードするとなんとかなります。
実際の手順は以下の通りです。
- ArduinoIDEの ExampleからBlink等、軽そうなスケッチを開いておく。
- ProMicroを接続する(暴れ始める)
- ResetとGNDを2回素早くショートさせる。(ここから8秒間大人しくなる)
- ArduinoIDEからポートを選ぶ。
- 素早くアップロードする。
8秒のリセットが効いている間に無事アップロードが完了すれば、大人しくなるはずです。
失敗した場合は3から再チャレンジ。
Blinkで上書きできればあとは焦ることなくファームウェアをアップロードできるので、無事上書きできるはずです。
こういう小さなTipsも大事だと思うので、何かあればまた記事にしたいと思います。
何か疑問な点等あればTwitterでリプください。
まとめ記事はこちら。