본문 바로가기
프로젝트/만들오토

[만들오토] 시리얼 키보드 스케치

by 만들오 2024. 7. 7.
#include <AbsMouse.h>
#include "Keyboard.h"

void setup() {
  Serial.setTimeout(100);
  Serial.begin(9600);
  Keyboard.begin();
  AbsMouse.init(1920, 1080);
}

void loop() {
  if (Serial.available() > 0) {
    String msg = Serial.readString();
    int mouse_symbol = msg.indexOf(",");
    //Serial.println(msg);
    if (mouse_symbol >= 0){
      //123,456
      int comma = msg.indexOf(",");
      String mx_ = msg.substring(0, comma);
      String my_ = msg.substring(comma+1, msg.length());
      int mx = mx_.toInt();
      int my = my_.toInt();
      AbsMouse.move(mx, my);
      AbsMouse.press(MOUSE_LEFT);
      AbsMouse.release(MOUSE_LEFT);
    }
    else if (msg == "f1" || msg == "F1") Keyboard.write(KEY_F1);
    else if (msg == "f2" || msg == "F2") Keyboard.write(KEY_F2);
    else if (msg == "f3" || msg == "F3") Keyboard.write(KEY_F3);
    else if (msg == "f4" || msg == "F4") Keyboard.write(KEY_F4);
    else if (msg == "f5" || msg == "F5") Keyboard.write(KEY_F5);
    else if (msg == "f6" || msg == "F6") Keyboard.write(KEY_F6);
    else if (msg == "f7" || msg == "F7") Keyboard.write(KEY_F7);
    else if (msg == "f8" || msg == "F8") Keyboard.write(KEY_F8);
    else if (msg == "f9" || msg == "F9") Keyboard.write(KEY_F9);
    else if (msg == "f10" || msg == "F10") Keyboard.write(KEY_F10);
    else if (msg == "f11" || msg == "F11") Keyboard.write(KEY_F11);
    else if (msg == "f12" || msg == "F12") Keyboard.write(KEY_F12);
    else if (msg == "ctrl" || msg == "CTRL") Keyboard.write(KEY_LEFT_CTRL);
    else if (msg == "alt" || msg == "ALT") Keyboard.write(KEY_LEFT_ALT);
    else if (msg == "esc" || msg == "ESC") Keyboard.write(KEY_ESC);
    else if (msg == "tab" || msg == "TAB") Keyboard.write(KEY_TAB);
    else if (msg == "space") Keyboard.write(32);
    else Keyboard.print(msg);
  }
}
728x90

댓글