KeyPresser Hardware — Arduinoで実現する自動キーボード/マウス入力装置
概要
KeyPresser Hardwareは、Arduino Leonardoボードを使ってPC上での入力(キーボード/マウス)をハードウェア的にエミュレートするプロジェクトです。クライアント側はQtで書かれたデスクトップアプリで、デバイス検出、操作スクリプトの作成、開始・停止スケジュール設定、対象ウィンドウの指定などを行います。Arduino側のファームウェアはシリアル経由で受け取った指示を解釈し、HID機能を使って実際の入力を生成します。LeonardoのHID対応を活かしたシンプルで拡張性の高い自動化ソリューションです。
リポジトリの統計情報
- スター数: 16
- フォーク数: 3
- ウォッチャー数: 16
- コミット数: 6
- ファイル数: 18
- メインの言語: C++
主な特徴
- Arduino Leonardoを用いたUSB HID(キーボード/マウス)エミュレーションによる物理的自動入力
- Qtベースのクライアントアプリでデバイス管理・スクリプト作成・タイミング制御が可能
- シリアル通信によるコマンド駆動アーキテクチャでPC⇄デバイス間の柔軟な指示伝達
- ウィンドウ指定や文字列入力、複合キー対応など実用的な操作をサポート
技術的なポイント
本プロジェクトの技術的核は「PC側(Qt/C++)とArduino側(ファームウェア)の分離」と「LeonardoのHID機能活用」にあります。クライアントはQtフレームワークで組まれており、クロスプラットフォームなUIとシリアルポート操作を提供します。Arduino側はLeonardo専用に設計されており、USBのHIDプロファイルを通じてキーボード/マウスイベントを生成できる点が強みです。シリアル通信プロトコルはコマンドベースで、例えば「押下」「離す」「文字列送信」「遅延」などを簡潔なメッセージで伝達します。これによりPC側で複雑なスクリプトを作成し、デバイスはその指示に忠実に従うだけで実装が軽量になります。
コード構成面では、ArduinoController.hppなどのヘッダに制御ロジックのインターフェースが定義され、.proファイルでQtプロジェクトが管理されています。リソース(KeyPresser_resource.rc)やライセンスファイルも含まれ、ビルドや配布に必要な要素が揃っています。注意点としては、HIDエミュレーションはボード(Leonardo等)が対応している必要があり、プラットフォームごとのシリアルポート識別(VID/PID)やドライバの依存性、OS側のセキュリティ制約(特にmacOSや一部Windows環境)があるため、配布先での動作確認とドキュメント整備が望まれます。将来的な拡張としては、より高度なスクリプト言語やネットワーク経由のコマンド受信、複数デバイスの同時制御などが考えられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- Arduino: dir (Arduino用スケッチ、HID制御ロジックを含む)
- ArduinoController.hpp: file (クライアント側でArduinoを制御するインターフェース定義)
- KeyPresserHardware.pro: file (Qtプロジェクトファイル)
- KeyPresser_resource.rc: file (Windowsリソース定義)
- LICENSE: file (ライセンス情報)
…他 13 ファイル
各ファイルの簡単な役割:
- Arduinoディレクトリ:Leonardoに書き込むファームウェア(シリアル受信→HID出力)
- Qtクライアント:デバイス検出、コマンド生成、タスクスケジュール、UI表示
- プロジェクトファイル(.pro):Qtビルド設定。必要なライブラリやビルドターゲットが記述
- リソースファイル:アイコンやアプリ情報を格納(Windows版向け)
まとめ
ArduinoとQtを組み合わせた実践的な自動入力ソリューション。学習用や小規模自動化に適する。
リポジトリ情報:
- 名前: KeyPresserHardware
- 説明: KeyPresser Hardware 是一款功能强大的自动化操作工具,通过 Arduino 硬件设备实现键盘模拟、鼠标操作等自动化功能。
- スター数: 16
- 言語: C++
- URL: https://github.com/wang161113/KeyPresserHardware
- オーナー: wang161113
- アバター: https://avatars.githubusercontent.com/u/23226854?v=4
READMEの抜粋:
KeyPresser Hardware
KeyPresser Hardware 是一款功能强大的自动化操作工具,通过 Arduino 硬件设备实现键盘模拟、鼠标操作等自动化功能。该项目由两部分组成:客户端应用程序和 Arduino 固件。

项目组成
1. 客户端应用程序
客户端是使用 Qt 框架开发的桌面应用程序,提供用户界面和控制逻辑,用于配置和控制 Arduino 设备执行自动化操作。
2. Arduino 固件
Arduino 固件需要烧录到 Arduino Leonardo 开发板中,负责接收来自客户端的命令并执行实际的键盘和鼠标操作。
功能特点
核心功能
- Arduino 设备自动检测:自动识别并连接 Arduino Leonardo 设备
- 键盘模拟:支持单个按键、组合键、字符串输入
- 定时任务:设置定时开始和结束的自动化任务
- **窗口选择…