Raspberry Pi 4 で運用実験中
No.7
Tweet ⌚ 2021年11月13日(土) 07:23:46 情報 <1926文字>
« No.6 / No.8 »
初期表示に戻る
DASHBOARD
■全文検索:
複合検索窓に切り替える
■複合検索:
■ハッシュタグ:
■カテゴリ:
■最近の投稿:
■日付一覧:
■日付検索:
■機器状態:
編集
RSSフィード
Arduino Leonardo (Pro Micro) でマウスクリック連射装置を作ろう!
ワンボードマイコンっていうか…ここんとこ Arduino が人気沸騰で気になりますよね!って事なんでモノは試しに安っすい VKLSVAN Pro Micro USB ATmega32U4 を買ってぼちぼちイジってみることにしました
まぁなんか Arduino にもいろいろあるようで…その中で ATmega32U4 を搭載した Arduino Leonardo と呼ばれるものが HID 機能を搭載しているって事で気になっていました そんな Arduino Leonardo の互換機が今回購入した Pro Micro って感じです
その HID 機能とはなんぞや?って話ですがまぁざっくり PC の標準的なキーボードやマウスを指すようです 要するに USB 接続した Arduino Leonardo (Pro Micro) がキーボードやマウスに化けるって事なんですね
そこで今回は連打系ブラウザゲーとして名高い CookieClicker を超連射できるボタンを実装してみることにしました
そんな Pro Micro のピン配列図 なんかいろいろ書いてあるけど…単純な On/Off スイッチを付ける場合は Arduino と色付けされた 0 から 20 までのピンを使うようです
それを今回はこんな感じで 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(); を実行するとマウスボタンが離されます
どちらの関数をどのようなタイミングで繰り返すかは個々の環境によって違うかと思いますが…
我が家の環境では Mouse.press(); Mouse.release(); を使って 1 秒間に 38 連射を記録しました → マウスクリック連射速度テスト
高橋名人もびっくりな超高速連射を実装できて満足しました!
Arduino Leonardo (Pro Micro) の HID 機能は手軽に有用な機能を実装できてなかなか楽しいです またぼちぼちイジっていきたいと思いました #Arduino