遠隔地にある機械に取り付けたマウスをリモート操作できるようにした話
WidnowsやMacなどのパソコンであればリモート操作ソフトウェアを使って簡単に遠隔操作ができるのですが、専用機となるとそうもいかず、例えばゲーム機や監視カメラレコーダーなどマウスが接続できるけど、遠隔操作のソフトなどがないものの遠隔操作を実現してみました。
使ったもの
Pro Micro
Raspberry Pi 400
HDMIキャプチャー
Python
MJPG-Streamer
接続方法
専用機のUSB端子にPro Microを接続し、Raspberry PiとPro MicroをUARTで接続、専用機の画面出力をHDMIキャプチャーを使ってUSBカメラとして取り込む
プログラミング
Pro Microに以下のコードを書き込みます。
#include "Mouse.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX
const int switchPin = 5;
const int d = 10;
boolean mouseIsActive = false;
int count = 0;
void setup() {
// put your setup code here, to run once:
pinMode(switchPin, INPUT);
Mouse.begin();
mySerial.begin(115200);
}
void loop() {
int switchState = digitalRead(switchPin);
if (mySerial.available()>0) {
String sstr = mySerial.readString();
sstr.trim();
mySerial.println(sstr);
if (switchState == HIGH) {
if (sstr == "u") {
Mouse.move(0, -d, 0);
mySerial.println("move up");
}
if (sstr == "d") {
Mouse.move(0, d, 0);
mySerial.println("move down");
}
if (sstr == "r") {
Mouse.move(d, 0, 0);
mySerial.println("move right");
}
if (sstr == "l") {
Mouse.move(-d, 0, 0);
mySerial.println("move left");
}
if (sstr == "L") {
Mouse.click(MOUSE_LEFT);
mySerial.println("left press");
}
if (sstr == "R") {
Mouse.click(MOUSE_RIGHT);
mySerial.println("right press");
}
}
}
delay(200);
}
Webアプリケーションで、MJPG-Streamerの画面を読み込み、PySerialを使って、マウス操作のコマンドをそれぞれに送信。
時間を作ってもう少し追記ます。