본문 바로가기

Etc/Arduino

[Arduino] 마우스 인식 & 마우스 동작 제어

728x90
반응형

 준비물

  - Arduino Leonardo 

Arduino Leonardo

  목적 

   - PC에 마우스처럼 보이게 인식처리 및 마우스 동작으로 화면 자동 꺼짐 방지

   - 리눅스 기반 환경에서 마우스 Device 인 것처럼 인식되어야하고, 마우스 제어를 통해서 화면 자동꺼짐을 방지. 

  장기목적 

   - 매크로로 활용 예정    

   Arduino IDE 라이브러리 설치 ( Mouse, Keyboard도 설치 어차피 매크로 용으로 써야겠다 )

   아두이노 코드 (걍 5초마다 마우스 1픽셀씩 반복처리)

#include "Keyboard.h" // Keyboard library
#include "Mouse.h"    // Mouse library

unsigned int i = 0;

// definition of keymouse_state type
enum keymouse_state
{
    DOING,
    STOPPED
};
keymouse_state state = STOPPED;
// Initialization
void setup()

{
    // initialize input and outout pins
    pinMode(8, INPUT);
    pinMode(7, INPUT);      // 디지털 7을 입력으로 설정
    Serial.begin(9600); // initialize mouse and keyboard control
    Mouse.begin();
    Keyboard.begin();
}
// Loop
int iRead = 0;
int iRead8 = 0;
void loop()

{
    if(i == 0 ){
      Mouse.move(1, 1);
      i++;
    }else{
      Mouse.move(-1,-1);
      i = 0;
    }
    delay(5000);
}


}

   여기까지 하고 업로드하면 끝? 아니다

 만약 연결하려는 PC에 보안S/W가 깔려서 USB연결에 대한 부분은 검증한다고 하면 근본적으로 보드의 이름을 바꿀 필요가 있다. 

  하드웨어에 바로 Arduino Leonardo 라고 뜨게 됨.. 

~# dmesg
[7199311.747599] usb 1-1.1: USB disconnect, device number 50
[7199312.101362] usb 1-1.1: new full-speed USB device number 51 using xhci_hcd
[7199312.219994] usb 1-1.1: New USB device found, idVendor=2341, idProduct=0036, bcdDevice= 0.01
[7199312.220012] usb 1-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[7199312.220019] usb 1-1.1: Product: Arduino Leonardo
[7199312.220024] usb 1-1.1: Manufacturer: Arduino LLC
[7199312.230574] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device

 이걸 마우스 처럼 인식되게 하려면 아래의 경로의 파일을 열자 (중간에 지운건 관련없는 폴더로 최종 avr 폴더를 찾으면 됨 )

boards.txt

   

board.txt 중에 leonardo 부분에 빨간색으로 칠한 부분을 그림처럼 바꿔줘 보자

 

(boards.txt에서 manufacturer 변경 후 에도 인식 안되면) cores 의 USBCore.cpp 내부에 manufacturer 수정

위 사항 모두 한뒤 IDE에서 프로그램 업로드~ 

리눅스에서 dmesg 명령어로 manufacturer : Logitech 장비로 인식 확인

:~#dmesg
[7204040.489130] usb 1-1.1: new full-speed USB device number 55 using xhci_hcd
[7204040.609523] usb 1-1.1: New USB device found, idVendor=2341, idProduct=8036, bcdDevice= 1.00
[7204040.609542] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[7204040.609549] usb 1-1.1: Product: Compact Mouse
[7204040.609555] usb 1-1.1: Manufacturer: Logitech
[7204040.609561] usb 1-1.1: SerialNumber: HIDFG
[7204040.622882] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[7204040.625928] input: Logitech Compact Mouse as /devices/pci0000:00/0000:00:15.0/usb1/1-1/1-1.1/1-1.1:1.2/0003:2341:8036.0026/input/input28
[7204040.685486] input: Logitech Compact Mouse Keyboard as /devices/pci0000:00/0000:00:15.0/usb1/1-1/1-1.1/1-1.1:1.2/0003:2341:8036.0026/input/input29
[7204040.685692] hid-generic 0003:2341:8036.0026: input,hidraw0: USB HID v1.01 Mouse [Logitech Compact Mouse] on usb-0000:00:15.0-1.1/input2
:~#

 

 

728x90
반응형