前提・実現したいこと
PCの画面をPythonでキャプチャし任意の座標へマウスを移動しクリックや、キー入力等を行うために、Arduino LeonardoをHIDのKeybordとMouseとして利用するRPA機器を作成しています。
pyserialを用いて、PythonからArduinoへシリアル通信で命令を送ることには成功しキーボード入力は実現できたのですが、Mouse.hが上手く動作せずに困っています。
Arduinoは初心者です、なんとなく挙動をみているとMouseはSerialと競合している?のかと思いましたが、詳しく調べる術もなく。。。
仕様に詳しい方に助言をいただきたく質問させていただきます。
また、もし過去にあった質問でしたらお詫びします。
調べ方が下手だっのだと思います。
何卒、ご指南くださいますようよろしくお願いします。
発生している問題・エラーメッセージ
特に無し、コンパイル正常→正常な動作を得られない
該当のソースコード
Arduino
1#include <Keyboard.h> 2#include <Mouse.h> 3 4void setup() { 5 Keyboard.begin(); 6 Mouse.begin(); 7 Serial.begin(9600); 8 9 delay(1000); //念のためのWait 10} 11 12void loop() { 13 byte var; 14 var = Serial.read(); 15 16 switch(var){ 17 case '1': //pythonよりcase分岐のためのserial.write(b"1")等が届き、正常に分岐しています。 18 Keyboard.press('a'); //(ア)試験的にキーボード入力 19 delay(100); 20 Keyboard.releaseAll(); 21 22 Mouse.move(100,100); // (イ)値は適当ですが、Mouseの処理を入れると(ア)も動作しなくなります。 23 delay(100); 24 break; 25 26 /*(中略)*/ 27 28 default: 29 break; 30 } 31}
Python
1import serial, time 2 3 4# COMポートを開く 5ser =serial.Serial('COM5', 9600) 6while True: 7 # case 1 8 ser.write(b"1") 9 time.sleep(0.1) 10 11 # case 2 12 ser.write(b"2") 13 time.sleep(0.1) 14 #(中略) 15print("Close Port") 16ser.close() 17
試したこと
Keybord.hの処理 + Python(PySerialによる通信)は正常に動作。
Mouse.hの処理単体を試したところ正常に動作。
keybord.h + Mouse.h + Python(PySerial)で試したところ、Keybord.hおよびMouse.hの処理がいずれも動作しない。
補足情報(FW/ツールのバージョンなど)
Arduino IDEのバージョンは1.8.8(現時点で最新)
Python 3.7.4 (pyserialは最新のもの)
開発環境はWindows 7です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/19 17:34