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

[만들오토] 기본 사용법

by 만들오 2024. 6. 17.
웹페이지 접속

만들오토는 웹페이지 접속으로 사용할 수 있습니다.

 

 

만들오토ver 240615.01

 

sein-oh.github.io

 

 


설정

1. 화면캡처

1.1. Web RTC

Web RTC는 브라우저의 기본 기능으로, 체크 후 "캡처시작" 버튼을 누르면 캡처할 창을 선택할 수 있습니다. 윈도우에서만 사용 가능합니다.

 

※ 캡처시작 버튼은 opencv.js 라이브러리의 로딩이 끝나야 활성화 됩니다. 기다려도 활성화 되지 않는다면, 새로고침을 해보시기 바랍니다.

 

1.2. From URL

Web RTC는 안드로이드에서 지원되지 않기 때문에 별도의 스트리밍 서버로부터 읽어와야 합니다. 이때 From URL을 선택하고 캡처시작 버튼을 누르면, 읽어올 URL을 입력합니다. 한번 입력한 주소는 브라우저에 저장됩니다.

 

 

 

 

윈도우 PC에서는 파이썬을 이용해 손쉽게 스트리밍 서버를 만들 수 있습니다. 다음 소개한 글을 참고해 주세요.

 

 

[파이썬] 윈도우 화면 캡처 웹 스트리밍(with flask, dxcam, opencv)

윈도우 화면 캡처는 여러 버전으로 글을 쓰고 있습니다.이번 글은, 캡처한 윈도우 화면을 웹으로 스트리밍하는 버전입니다. app.py#!/usr/bin/env pythonfrom flask import Flask, Responsefrom flask_cors import CORSimp

mandloh.tistory.com


 

2. 입력장치

2.1. Serial

Web Serial API를 이용해 브라우저와 입력장치(Arduino Leonardo)를 Serial 통신으로 연결합니다. 윈도우에서만 사용 가능합니다.

Arduino Leonardo를 사용하기 위한 스케치 업로드는 다음 글을 참고해 주세요.

관련 글들도 블로그 내에 있으니 찾아보시면 좋겠습니다.

 

[아두이노] 아두이노 레오나르도 시리얼 키보드 만들기

안녕하세요? 만들오 입니다. 아두이노 레오나르도를 이용해 시리얼 입력을 키보드 입력으로 넣어주는 코드입니다.1) 아두이노 IDE 실행윈도우 시작 버튼을 누르고, Arduino를 검색하면 나오는 아

mandloh.tistory.com

 

 

2.2. From URL

Web Serial API는 안드로이드에서 지원되지 않습니다. 별도의 입력 서버를 만들어, 해당 주소로 신호를 보내는 방식입니다. 한번 입력한 주소는 브라우저에 저장됩니다.

 

윈도우 PC에서 파이썬을 이용해 입력 서버를 만드는 예제는 아래 글을 참고해 주세요.

win32 API를 이용해 입력 이벤트를 발생시키므로, 일반적인 사용은 가능하지만 게임에는 적용 불가능 합니다.

 

[파이썬] 파이썬 키보드/마우스 입력 서버

파이썬의 keyboard, mouse 라이브러리를 이용해 윈도우에 키보드/마우스 입력 이벤트를 발생시킵니다. 만들오토와 함께 사무 자동화에 사용할 수 있습니다. ※ win32 api를 이용하기 때문에 게임화면

mandloh.tistory.com

 


3. 기타

3.1. FPS설정

앱은 캡처->알고리즘처리->입력처리를 무한히 반복합니다. 초당 몇번 처리할지를 입력해줄 수 있으며, 기본값은 10 (1초에 10번) 으로 설정되어 있습니다.

안드로이드에서 사용할 경우, FPS를 0.5 또는 1 수준으로 사용하시길 권장합니다.

 

3.2. 새창열기

앱처럼 브라우저 크기를 최소화 하여 창을 새로 엽니다. 윈도우 PC에서 사용 가능합니다.

 

3.3. 캡처저장

현재 캡처중인 이미지를 저장합니다. 이미지처리 알고리즘을 사용하는 경우, 이 이미지가 기준이 됩니다. 윈도우 PC와 안드로이드 모두 사용 가능합니다.

연속적으로 이미지를 저장하는 경우, 브라우저에서 별도 권한을 요청합니다. 초반에 여러번 다운로드를 시도하여 권한을 받아놓길 권장합니다.

 

3.4. 사용방법

이 글로 연결되는 링크입니다.


 

실행제어

각 기능의 단위를 슬롯이라고 표현했습니다. 슬롯을 추가하고, 사용 여부를 체크할 수 있습니다. 슬롯의 종류는 현재 3가지가 있습니다.

  • timer : 일정 시간마다 입력을 반복하는 기능
  • imgslot : 이미지를 인식하여 입력을 반복하는 기능
  • hpslot : 게임용으로, 캐릭터의 HP 이미지를 백분율 값으로 반환하고, 특정 구간에서 입력을 반복하는 기능

모든 슬롯 파일은 OOO.json 파일형식으로 저장해야 합니다.

 

1. timer 슬롯 만들기

{
    "type" : "timer",
    "name" : "예제",
    "key" : "Hello",
    "cooltime" : 5.0,
    "tele_token" : "",
    "tele_room" : ""
}

※ 문자열 값은 쌍따옴표가 필수입니다.

타이머.json
0.00MB

 

위 양식을  메모장에 붙여넣고 "아무파일명.json"으로 저장한 후 불러오면 위 이미지의 예제와 같이 슬롯이 생성됩니다.

위 예제는 5초에 한번씩 Hello를 키보드로 입력해주는 예제입니다.

 

각 키워드에 관한 설명은 다음과 같습니다.

  • type : timer로 타입을 선언합니다.
  • name : 앱으로 불러왔을 때 적용할 이름입니다.
  • key : 사용할 키를 기입합니다. key에 관한 부분은 뒤에서 더 다루도록 하겠습니다.
  • cooltime : 한번 실행하고 재실행까지 적용할 쿨타임 입니다.
  • tele_token : 텔레그램으로 알람을 사용할 경우에 기입하며, 토큰을 입력합니다.
  • tele_room : 텔레그램으로 알림을 사용할 경우에 기입하며, 채팅방 번호를 입력합니다.

2. imgslot 만들기

아래 더보기를 눌러 펼쳐보세요

더보기
{
    "type" : "imgslot",
    "name" : "만들오",
    "key" : "click",
    "cooltime" : 5.0,
    "roi_p1" : [0, 0],
    "roi_p2" : [1920, 1080],
    "thres" : 2000000,
    "src" : "data:image/png;base64,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",
    "capture_size" : [1920,1080],
    "tele_token" : "",
    "tele_room" : ""
}

 

만들오.json
0.03MB

 

위 예제는 제 블로그의 아이콘을 찾아 클릭하는 예제입니다.

  • type : imgslot으로 타입을 선언합니다.
  • name : 앱으로 불러왔을 때 적용할 이름입니다.
  • key : 사용할 키를 기입합니다. click 키워드는 imgslot에서만 사용할 수 있으며, 찾은 이미지를 클릭하는 기능입니다.
  • cooltime : 한번 실행하고 재실행까지 적용할 쿨타임 입니다.
  • roi_p1 : 이미지를 찾을 영역 중 좌측 상단 기준점 입니다.
  • roi_p2 : 이미지를 찾을 영역 중 우측 하단 기준점 입니다.
  • thres : 찾은 결과의 수치가 이 값보다 크면 key를 입력합니다.
  • 1) src : 이미지를 base64 형태로 변환한 텍스트를 입력합니다.
  • 2) capture_size : 이미지를 캡처한 크기입니다.
  • tele_token : 텔레그램으로 알람을 사용할 경우에 기입하며, 토큰을 입력합니다.
  • tele_room : 텔레그램으로 알림을 사용할 경우에 기입하며, 채팅방 번호를 입력합니다.

1) src

한 파일에 이미지와 설정을 모두 담기위해 이미지를 base64 문자열로 변환하여 관리합니다.

이미지를 base64로 변환하는건 아래 사이트에서 손쉽게 할 수 있습니다.

 

Base64 Image Encoder (base64-image.de)

 

Base64 Image Encoder

show code opens a modal with image preview, usage examples, image width & height, ... copy image copies this base64 code to your clipboard: data:image/jpeg;base64,/9j/4AA... copy css copies this base64 code to your clipboard: url('data:image/jpeg;base64,/9

www.base64-image.de

 

캡처한 이미지를 등록하고, show code 부분을 클릭합니다.

 

copy to clipboard 버튼을 누르면 자동으로 복사가 됩니다. 이 문자를 붙여넣으면 끝.

 

2) capture_size

이미지를 떠온 해상도를 입력합니다. 위 예제는 전체화면으로 캡처를 했고, 이 해상도가 1920x1080 입니다.

특정 창을 선택한 경우, 그 창의 해상도를 입력합니다.

 

3. hpslot 만들기

{
    "type" : "hpslot",
    "name" : "힐",
    "key" : "4",
    "cooltime" : 3.0,
    "roi_p1" : [96, 43],
    "roi_p2" : [316, 53],
    "thres" : 210,
    "hp_range" : [0, 85],
    "capture_size" : [1280,720],
    "tele_token" : "",
    "tele_room" : ""
}

힐.json
0.00MB

 

hpslot은 게임 기능에 특화되어 있습니다. 위 코드는 리니지M 게임을 1280x720 해상도로 캡처하여 계산한 HP위치를 포함하고 있습니다. 체력이 0~85구간에 있다면 4번키를 입력하는 예제입니다.

  • type : hpslot으로 타입을 선언합니다.
  • name : 앱으로 불러왔을 때 적용할 이름입니다.
  • key : 사용할 키를 기입합니다.
  • cooltime : 한번 실행하고 재실행까지 적용할 쿨타임 입니다.
  • roi_p1 : HP 이미지를 찾을 영역 중 좌측 상단 기준점 입니다.
  • roi_p2 : HP 이미지를 찾을 영역 중 우측 하단 기준점 입니다.
  • thres : HP바의 빨간색만 불러온 후 cutoff 하는데 필요한 임계값 입니다. 0~255의 값을 갖습니다.
  • hp_range : 키를 입력할 체력 구간입니다.
  • capture_size : 이미지를 캡처한 크기입니다.
  • tele_token : 텔레그램으로 알람을 사용할 경우에 기입하며, 토큰을 입력합니다.
  • tele_room : 텔레그램으로 알림을 사용할 경우에 기입하며, 채팅방 번호를 입력합니다.

key 설정하기

key는 공란(스페이스)로 입력할 키를 구분하여 여러 키를 입력할 수 있으며, 버튼입력 외에도 기능을 사용할 수 있습니다. 다음 키워드를 입력하면 기능을 실행합니다.

 

  ○ noti : 텔레그램으로 메시지를 보냅니다. 텔레그램 토큰과 채팅방 번호를 입력해두어야 합니다.

    예) "key" : "noti(안녕하세요)" → 텔레그램으로 안녕하세요 메시지 발송

 

  ○ photo : 텔레그램으로 현 상황을 캡처해 보냅니다. 텔레그램 토큰과 채팅방 번호를 입력해두어야 합니다.

    예) "key" : "photo(현재상황)" → 텔레그램으로 현재상황이라는 메시지와 함께 이미지 발송

 

  ○ -숫자 : 입력한 숫자만큼 대기합니다

  예) "key" : "8 -2.5 8" → 8번키 입력, 2.5초 대기, 8번키 입력

 

  ○ click : imgslot에서만 사용 가능하며, 찾은 이미지를 클릭합니다

  예) "key" : "click" / "thres" : 300000 → 찾은 이미지의 값이 300000 이상일 때, 찾은 이미지 클릭

 

  ○ 복합 예제

    "key" : "1 -1 2 -1.5 noti(완료)" → 1번키 입력, 1초 대기, 2번키 입력, 1.5초 대기, 텔레그램 메시지 발송

 


마치며

만들오토 관련된 궁금한 부분은 댓글을 남겨주세요.

개발을 지속할 수 있도록 블로그와 유튜브 채널에 많이 방문해 주시면 감사하겠습니다.

 

[끝].

728x90

댓글