でんげき☆ Network Service

Raspberry Pi 4 で運用実験中 Connect checker

No.7

Arduino Leonardo (Pro Micro) でマウスクリック連射装置を作ろう!

20211203180938-admin.jpg
 
ワンボードマイコンっていうか…ここんとこ Arduino が人気沸騰で気になりますよね!って事なんでモノは試しに安っすい VKLSVAN Pro Micro USB ATmega32U4 を買ってぼちぼちイジってみることにしました

202111130723461-admin.jpeg
まぁなんか Arduino にもいろいろあるようで…その中で ATmega32U4 を搭載した Arduino Leonardo と呼ばれるものが HID 機能を搭載しているって事で気になっていました そんな Arduino Leonardo の互換機が今回購入した Pro Micro って感じです
その HID 機能とはなんぞや?って話ですがまぁざっくり PC の標準的なキーボードやマウスを指すようです 要するに USB 接続した Arduino Leonardo (Pro Micro) がキーボードやマウスに化けるって事なんですね
そこで今回は連打系ブラウザゲーとして名高い CookieClicker を超連射できるボタンを実装してみることにしました

20211113072346-admin.jpg
そんな Pro Micro のピン配列図 なんかいろいろ書いてあるけど…単純な On/Off スイッチを付ける場合は  Arduino  と色付けされた 0 から 20 までのピンを使うようです

20211113072346-admin.png
それを今回はこんな感じで 10 番ピンに配線しました
そしてお次はそれを制御するプログラムで…

----------

#define RX_LED 17 // RX LED はポート 17 っぽい?
#define TX_LED 30 // TX LED はポート 30 っぽい?
#define SW 10 // スイッチ用
#include <Mouse.h> // マウス機能を使いたい

void setup() {
  pinMode(SW, INPUT_PULLUP);
  Mouse.begin();
}

void loop() {
  if(!digitalRead(SW)) {
    digitalWrite(TX_LED, LOW); // TX LED を点灯
    //Mouse.click();
    //delay(100);
    Mouse.press(MOUSE_LEFT);
    //delay(17); // 最速
    delay(20);
    Mouse.release(MOUSE_LEFT);
    //delay(9); // 最速
    delay(10);
    digitalWrite(TX_LED, HIGH); // TX LED 消灯
  } else {
    digitalWrite(RX_LED, LOW); // RX LED を点灯
    delay(40);
    digitalWrite(RX_LED, HIGH); // RX LED 消灯
    delay(20);
  }
}

----------

Arduino IDE でこんな感じのを用意してそれをマイコンボードに書き込みます 書き込まれた後に直ちに動作を開始します
スイッチが Off の時には基板上の LED が細かく点滅しています スイッチを On にするとマウスクリックの連射が始まります

マウスのクリックには Mouse.click(); って関数と Mouse.press(); Mouse.release(); とを選べるようです
Mouse.click(); は…いい感じに「押して離す」をまとめて実行できるようです
Mouse.press(); は…ドラッグ操作っていうんですかね この関数を実行するとマウスボタンが押されたままになり Mouse.release(); を実行するとマウスボタンが離されます

どちらの関数をどのようなタイミングで繰り返すかは個々の環境によって違うかと思いますが…
20211113072346-admin.jpeg
我が家の環境では Mouse.press(); Mouse.release(); を使って 1 秒間に 38 連射を記録しました → マウスクリック連射速度テスト
高橋名人もびっくりな超高速連射を実装できて満足しました!

Arduino Leonardo (Pro Micro) の HID 機能は手軽に有用な機能を実装できてなかなか楽しいです またぼちぼちイジっていきたいと思いました #Arduino

情報 <1926文字>

DASHBOARD

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■ハッシュタグ:

■カテゴリ:

■日付検索:

■機器状態:

Raspberry Pi 4 Status

編集

RSSフィード