概要
私は、ctrlを連打したい
とにかく連打したい
dbdというゲームのハグというキャラは常時、連打する必要があるのだ。
このままでは腱鞘炎になってしまう。
ということで作ったのでその記録です。
やり方
プログラム
#include <Keyboard.h>
volatile int flag = 0;
volatile int num =0;
void setup() {
pinMode(5, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
int data = digitalRead(5);
if (data == LOW ){
Keyboard.press(KEY_LEFT_CTRL);
delay(10);
Keyboard.releaseAll();
}
delay(10);
}
ずっと、スイッチのON,OFFを監視してONになったら、CTRLを押したと何度も送信するだけですね。
pro microのプログラムの書き込み装置
初手で話がそれますが、USB機器として設定すると、勝手にCTRLを連打してきたりして、プログラムを書きこむことが難しくなります。
よって、USB以外の方法でプログラムの書き込みをする必要があります。今回はISP書き込みを使います。
-
Arduino NanoまたはArduino UnoにArduino as ISPというプログラム(ファイルのスケッチ例にあります)を書き込み、書き込み装置にする - 配線する。
- プログラムを書き込む
というわけで、Arduino UNOでPro microにISPで書き込みます
遭遇した問題
problem 1
プログラムが書き込めない
原因
ISP書き込みの場合Ctrl+Shift+Uで書き込むようです。
ずっと、Ctrl+Uを行っていたため失敗していました。
書き込み装置はArduino as ISPを選択します。
に書いてありました(笑)。
Pro microの設定は2つありますが、私の場合は

の設定で行いました。
problem 2
今度はプログラム書き込み後、Pro microをPCが認識しない問題が発生しました。
ずっと、「不明なUSB」として認識される・・・
ブートローダーを焼き直そうとしても
stk500_disable(): unknown response=0x12
のエラーでブートローダーが書けませんでした。
対処
こちらを参考にし、2.2μFの電解コンデンサをGND,RESET間に入れることでブートローダーの書き込みに成功しました。
problem3
しかし、ブートローダーはかけましたが、「不明なUSB」が解除されない・・・
原因
しょうもないですが、USBケーブル変えたら治りました!USB micoro Bの耐久性はかなり低いですね・・・
という感じで、作ることができました。
<追記2025/1/13>problem4 : ボードが接続されていません

書き込み途中で接続が解除されてしまう。
エラーには「書き込み開始した直後にリセットボタンを押してください」とある。
ProMicroにはリセットボタンがない。
https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf

10kオームでプルアップされている。
ボタンを押してGNDに落としている。
う~ん。直接書き込むのはやっぱり無理そう。

