Key Input Board 0.8
- 시리얼 신호를 읽어 WinAPI를 호출합니다.
- 원하는 키 조합 입력 기능
- 키 조합 파일 로드 기능
프로그램 다운로드 : https://github.com/dang-gun/KeyInputBoard/releases
프로그램 소스 : github - dang-gun/KeyInputBoard
Author : Dang-Gun Roleeyas ( http://blog.danggun.net/ )
Create date : 2020.04.24
License : MIT( https://opensource.org/licenses/MIT )
사용기술 : c# 4.7.2, WinForm
시리얼의 데이터의 신호를 받아 WinAPI 키보드를 호출하는 프로그램입니다.
이 동작은 낮은 수준의 키보드 매크로와 같습니다.
외부 프로그램과 조합한다면 하드웨어 신호를 받아 키보드와 마우스 매크로로 활용할 수 있습니다.
외부 장치에서 시리얼로 신호를 받아
이 신호를 사용자가 지정한 매크로로 변환하여
윈도우를 동작시킵니다.
주의할 것은 이 프로젝트는 키보드를 보조하려는 목적이 아니라
하드웨어 신호로 매크로를 동작시키려는 목적입니다.
만약 키보드를 보조하기 위한다면 아두이노 레오나르도나 키보드를 직접 분해하여 사용하는 것이 좋습니다.
- 시리얼 신호 읽기
- 사용자 정의 동작 리스트
- 시리얼 신호와 사용자 정의 동작 리스트를 매칭 시켜 동작
샘플 코드는 아두이노를 기준으로 합니다.
기판을 아두이노와 함께 다음과 같이 세팅합니다.
아두이노를 다음과 같이 작성합니다.
아래 코드에는 'ButtonClickCheck.h'가 필요합니다.
(참고 : [Arduino] 버튼 처리를 위한 라이브러리 - ButtonClickCheck)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <ButtonClickCheck.h> //버튼 리스트 ButtonClickCheck BtnList[] = { ButtonClickCheck(1, HIGH), ButtonClickCheck(2, HIGH), ButtonClickCheck(3, HIGH) }; //핀 리스트 개수 int nBtnCount = 0; void setup() { Serial.begin(9600); //버튼 리스트 개수 nBtnCount = sizeof(BtnList) / sizeof(ButtonClickCheck); //Serial.println("count:" + (String)nBtnCount ); //버튼 풀업 설정 for(int i = 0; i < nBtnCount; ++i ) { pinMode(BtnList[i].Pin, INPUT_PULLUP); Serial.println("Pin:" + (String)BtnList[i].Pin ); } } void loop() { if(Serial.available()) { char temp[20]; byte leng = Serial.readBytesUntil('\n', temp, 20); String sResult = ((String)temp).substring(0, leng); if("GetInfo" == sResult) {//인포 요청 Serial.println("KeyInputBoard"); } } else { //Serial.println((String)digitalRead(Button02)); for(int i = 0; i < nBtnCount; ++i ) { if(3 == BtnList[i].ClickCheck()) {//첫클릭 //컴퓨터에 신호를 준다. Serial.println("BtnKey:" + (String)BtnList[i].Pin ); //Serial.println("count:" + (String)nPinListCount); } } //Serial.println(" "); } delay(50); } | cs |
github - KeyInputBoard/Arduino/KeyInputBoard_Defult/
이렇게 작성하면 버튼을 눌렀을 때
BtnKey:[핀 번호]
가 넘어옵니다.
프로그램을 실행하고 아두이노와 연결된 포트를 설정합니다.
필요한 핀정보가 넘어왔을때 할 동작을 작성하고 'Add'버튼을 눌러 리스트에 추가합니다.
'Start'버튼을 눌러 시리얼 포트 감시를 시작합니다.
아두이노에 연결된 버튼을 눌러 지정한 동작이 하는지 확인해 봅시다.
버튼을 누르면 등록된 동작(지포스 스크린 숏, Alt + F1)을 하는 것을 볼 수 있습니다.
개발 완료