NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Python 파이썬 하드웨어 매크로 만들기. (아두이노, ClassDD)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 요즘 파이썬이나 C#으로 하드웨어 매크로 만드는 방법에 대한 문의가 많아졌습니다. 아마도, 언어중에서 가장 쉬운 C#과 파이썬이 일반인들도 직접 매크로를 만들 수 있을만큼 레퍼런스가 많아져서 그런게 아닐까 생각이 드네요. 이런 개발 관련 커뮤니티가 많아지면 좋겠습니다. 제 홈페이지도 매크로 개발 관련 커뮤니티이지만~ 댓글은 1년에 10개 달릴까 말까예요. 그만큼 참여도가 상당히 떨어지는 분야가 개발쪽인거 같습니다^^;

    8YJUvFd.png

     

     

    파이썬으로 하드웨어 매크로를 만들기 위한 기본적인 개발 환경을 구축해야 합니다. 비개발자분들은 이 부분부터 어려울수도 있는데요. 세세하게 그림으로 설명하고 있으니 너무 겁먹지 않아도 됩니다. 아래 설명처럼 잘 따라하면 누구나 쉽게 매크로를 만들 수 있으니까요~ 아래 사이트에서 VSCode(Visual Studio Code)를 다운로드 합시다.

    비주얼 스튜디오 코드 다운로드 ]

    d4ONpLs.png

     

     

    VSCode는 설치하는데 복잡한 설정이나 변경해야 할 부분은 없습니다. 서버 설치나 데이타베이스와 같이 시스템에 영향을 주거나 사용자 계정 및 권한 관리등등 선택하는게 없기 때문입니다. C드라이브에 용량이 없다면 설치 위치정도 변경할 수 있겠네요. 하지만, 가능하면 기본값으로 설치하세요. 설치가 완료되면 비주얼 스튜디오 코드를 실행해줍니다. 아래와 같은 화면을 볼 수 있습니다.

    ※ 워크 스페이스나 환경에 따라 다를 수 있지만, 대부분은 아래와 비슷한 화면이 열릴겁니다.

    BaG57bn.png

     

     

    우리는 한글이 익숙하므로 한글로 변경해줍시다.

    1. 확장 클릭. (Extensions, Ctrl+Shift+X)
    2. korean 입력
    3. Korean Language Pack for Visual Studio Code - Install 클릭

    isjJGpP.png

     

     

    설치가 완료되면 ①Restart를 클릭하세요.

    errOLTT.png

     

     

    아래 그림과 같이 한글로 변경되었죠? 영어로만 보다가 한글로 보니깐 왠지 생소하네요 ㅎㅎ;

    kkWQjyt.png

     

     

    이제 파이썬을 설치 해볼까요? Extensions(Ctrl+Shift+X)를 눌러서 python을 검색합니다. 저는 이미 설치되어 있는데요. 여러분들은 아래 3가지를 모두 설치해야 합니다.

    8I4d5TV.png

     

     

    프로그래밍 언어를 처음 시작할 때 항상 하는게 있는데요. 바로~ "Hello NGMsoftware!"입니다. 개발자들이 이런걸 항상 하는 이유는 간단합니다. 개발 환경이 잘 갖춰지고 정상적으로 동작하는지 확인하기 위함이죠. 그리고, 언어를 가르치는 대부분의 전문 서적이나 사이트에서 저렇게 하기 때문에 의례 하는것 정도로 이해하시면 됩니다. 그렇게 큰 의미를 가진건 아닙니다. 아래 그림과 같이 좌측 상단 메뉴에서 파일 > 새 파일을 클릭하세요.

    KPFHkct.png

     

     

    새로운 파일이 만들어졌습니다. 이상태에서 Ctrl+S를 눌러서 저장할 수 있는데요. VSCode는 대부분의 언어를 개발할 있도록 만들어진 IDE이기 때문에 단순히 파일만 만들어서는 어떤걸 할지 알 수 없는 상태가 됩니다. 그래서, 파일을 저장하면서 확장자를 지정하거나 아래 그림처럼 "언어 선택"을 통해 명시적으로 Visual Studio Code에게 알려줘야 합니다. "언어 선택"을 클릭해보세요.

    ※ 파일을 py 확장자로 저장하면 자동으로 파이썬으로 인식합니다. 파이썬 확장이 없으면 알려줍니다.

    m8ZozK1.png

     

     

    python을 입력하고, 검색된 항목을 클릭해줍니다.

    RGpS2SA.png

     

     

    아래와 같이 코딩을 추가하고, Ctrl+S를 눌러서 "start.py"로 저장합니다. 프린트 함수는 인자로 텍스트를 받고, 실행하면 텍스트를 출력해주는 기능을 합니다. 이제 막 시작 단계라서 함수와 인자에 대한 설명은 건너뛰고 동작이 되는지만 확인하시면 됩니다. 그리고, 처음에는 어쩔 수 없이 무조건 외우는 수밖에 없습니다.

    ※ 컴파일(실행)하면 자동으로 저장됩니다. 하지만, 가능하면 저장하는 습관을 들이는게 좋습니다.

    print("Hello NGMsoftware!")

    98jCEHB.png

     

     

    혹시라도 F5로 실행이 되지 않는다면, 우측 하단에 표시되는 알람 "Select Interpriter"를 클릭하고 설치되어 있는 파이썬을 선택하세요.

    ※ 설치된 확장의 종류에 따라 실행 단축키가 다른 기능에 연결되어 있을수도 있습니다.

    Zkm8fW7.png

     

     

    파이썬을 실행할 단축키를 설정하고 갑시다. 영문 버전이면 "File > Preferences > Keyboard Shortcuts"로 이동하면 됩니다. 한글 버전은 아래와 같이 이동하세요.

    dQVUSvs.png

     

     

    저는 주로 빌드 또는 컴파일 또는 실행을 F5로 사용합니다. 자신의 취향에 맞게 설정하면 됩니다. 바로 가기 키에서 "Type to search in keybindings"에 "run python file in terminal"을 입력하세요. 검색에서 나온 항목에서 좌측에 + 버튼을 클릭합니다.

    DmQXiW6.png

     

     

    F5를 누르고 엔터를 치면 입력됩니다. 만약, 중복이 있거나 자신이 원하는 조합키가 있다면 그걸 넣어도 상관 없습니다.

    2B5H9nH.png

     

     

    아래와 같이 키 바인딩이 설정되었습니다.

    AE556a0.png

     

     

    start.py 파일을 선택하고, F5를 눌러보세요. 하단에 출력 결과를 확인할 수 있습니다.

    img.png

     

     

    아래 동영상을 참고해서 hardware_macro.py 파일을 하나 추가하세요. 저는 예제로 만들어둔 매크로 프로그램들이 있어서 파일이 많지만, 여러분들은 아마도 파일이 한두개밖에 없을겁니다.

    5O3qjme.gif

     

     

    아두이노를 이용해서 하드웨어 매크로를 만들려면 시리얼 통신을 이용해야 합니다. 물론, 아두이노도 컴퓨터에 연결되어 있어야겠죠?

    import serial

     

    컴퓨터에 연결된 아두이노가 몇번째 콤 포트를 사용하는지 알아내야 합니다. 윈도우의 장치 관리자를 실행해보세요.

    BYEmaHn.png

     

     

    장치 관리자(Device Manager)의 포트(COM & LPT)를 보면, 컴퓨터에 연결된 아두이노가 COM3 포트를 사용하고 있다는걸 확인할 수 있습니다.

    1No1GdK.png

     

     

    엔지엠 매크로를 사용하면 아두이노에 쉽게 연결할 수 있습니다. 자동으로 컴퓨터의 포트를 보여줍니다. 포트는 컴퓨터마다 다를 수 있으므로 선택적으로 사용할 수 있게 해주는게 좋습니다. 개인적으로 사용하는거라면~ 이렇게 옵셔널하게 할 필요까지는 없긴하죠^^

    AUoKCJI.png

     

     

    파이썬으로 다시 돌아와서 아래와 같이 코드를 작성해보세요. 이 코드는 마우스를 Y축으로 5만큼 이동한 후 클릭하도록 해줍니다.

    import serial
    
    mySerial = serial.Serial("COM3", 115200, timeout = 1)
    mySerial.write(str.encode("Y5"))
    mySerial.write(str.encode("0"))

     

    실행 해보면, 마우스가 5만큼 아래로 이동한 후 클릭이 발생합니다.  아래로 5만큼 이동한 후 클릭한 파일이 helloTypeScript.ts 입니다. 파일을 클릭했기 때문에 파일이 자동으로 열립니다.

    0NEQVjA.gif

     

     

    아두이노는 한번에 8비트만 처리할 수 있습니다. 그래서, 마우스가 -128~127까지 이동합니다. 8비트 범위를 벗어나는 거리를 이동하려면 반복문을 사용해서 127만큼 잘라서 이동시켜줘야 합니다. 엔지엠 매크로에서 아두이노 설정을 봐도 기본값이 127로 되어 있는걸 확인할 수 있습니다. 아래 동영상은 엔지엠 매크로에서 시리얼 통신에 연결한 후 마우스 클릭 좌표를 설정하고 클릭하도록 만든 간단한 스크립트입니다. 실행하면 클릭 좌표로 이동한 후 마우스 클릭이 발생합니다.

    3GO1eKM.gif

     

     

    간단하게 파이썬으로 아두이노를 연결해서 마우스로 클릭하는 방법을 알아봤습니다. 아두이노가 아니더라도 하드웨어 신호로 변환해주는 클래스디디(ClassDD)를 사용해도 됩니다. 클래스 디디의 경우는 아래와 같이 코드를 작성할 수 있습니다. 코드는 크게 어렵지 않죠? 클래스 디디 모듈은 깃헙에서 다운로드 받을 수 있습니다.

    [ 클래스 디디 다운로드 ]

    from ctypes import *
    import time
    
    print("DD!")
    dd_dll = windll.LoadLibrary('c:\DD94687.64.dll')
    
    #키보드 win
    dd_dll.DD_key(601, 1)
    dd_dll.DD_key(602, 2)
    
    time.sleep(2)
    
    #절대 좌표
    dd_dll.DD_mov(200, 200)
    
    time.sleep(2)
    
    #마우스 우클릭
    dd_dll.DD_btn(4)
    dd_dll.DD_btn(8)
    
    #상대 좌표
    dd_dll.DD_movR(200, 200)

     

    이외에도 다양한 방법으로 하드웨어 방식으로 마우스와 키보드를 입력시킬 수 있습니다. 파이썬으로 매크로를 만들고 싶으면, 아래 글들을 참고해보세요. 또한, C#으로 매크로를 만드는 방법도 잘 설명되어 있으니 참고하시면 프로그래밍하는데 많은 도움이 될듯 합니다.

    [ 파이썬, C# 매크로 만들기 ]

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.