새로 출시한 아두이노 우도 R4는 펌웨어 코드로 컴퓨터의 키보드와아 마우스 제어를 훔치게 할 수가 있다. 그러니까 사용자는 평상시 처럼 키보드와 마우스를 사용하고 중간에 제어를 통해 키입력이나 마우스를 움직여 클릭하는 기능을 구현 할 수 있다.
아래는 그 기능을 구현한 이미지와 코드이다.
각 버튼 기능은 아래와 같이 정의한다.
| 파랑 | 검정 | 노랑 | 흰 | 빨강 |
| 복사 Ctrl-c |
붙여넣기 Ctrl-v |
크롬에서 이미지를 다른 이름으로 저장 기능 | 잘라내기 Ctrl-x |
모두선택 Ctrl-A |
마우스를 움직여 드래그 하고 버튼을 누르면 잘 동작한다.
크롬에서 이미지 위에서 노랑 버튼을 누르면 순식간에 저장 된다. 그냥 크롬 전용으로 사용하게 끔 만들까? 흠~
해자성자 선배를 대동천에서 만났다. 다음주 금요일 따님이 화성 근처에 살고 쿠팡 로켓 배송을 염두에 두고 이사를 가신다고 한다. 자초지종을 설명하니 선배가 조언을 하신다.
"모든 척수 손상 환자가 나와 같지는 않다. 모두 상황이 다르고 정도가 다르다. 충분히 알아야 한다."
"너에게 도움이 된다면 내가 도와 줄게. 이 녀석아!"
일단 전진이다. 우리가 인생을 살아보기 전까지는 정말 아무것도 모른다. 그렇다고 범죄를 저지르거나 남들에게 피해를 주거나 이상한 약물에 중독되는 것을 하라는 것은 절대 아니다. 어떤 일에서건 극단은 항상 좋지 않은 결과를 가져온다.
보완할 것: 지우기 키, 전체선택 키, 실행 키가 없다. 다 추가하지 않도록 조심해라.
인터페이스 고려 사항
- 바로미터를 이용해 바람으로 명령 입력
- 발로도 입력 가능한지?
- 이런 장비를 가지고 일하는 것은 무엇이 있는지
- 무슨 일을 어떻게 만들 수 있는지?
- 네이버 카페 '척수야! 사랑해'
- 마라톤 온라인 사진 회원가입하면 공짜로 보내준다. 정보 입력하고면 사진을 찾아 인공지능이 편집한다. 무료!
현재까지 구현한 소스코드
#include "Keyboard.h"
#include "Mouse.h"
// set pin numbers for the five buttons:
const int startlow = 8;
const int blue = 6;
const int black = 5;
const int yellow = 4;
const int white = 3;
const int red = 2;
void setup() { // initialize the buttons' inputs:
pinMode(startlow, INPUT_PULLUP); //when num 8pin goes Low, Start!
pinMode(blue, INPUT);
pinMode(black, INPUT);
pinMode(yellow, INPUT);
pinMode(white, INPUT);
pinMode(red, INPUT); // mouse drag
Serial.begin(9600);
// initialize mouse control:
Mouse.begin();
Keyboard.begin();
while (digitalRead(startlow) == HIGH) { // 2번 핀 LOW 입력받을때 시작 High 면 정지상태 유지
delay(100);
}
}
void loop() {
while (digitalRead(startlow) == HIGH) { // 2번 핀 점퍼 제거 시 중단 기능, 반드시 추가
delay(100);
}
// use the pushbuttons to control the keyboard:
if (digitalRead(blue) == HIGH) {
Keyboard.press(KEY_LEFT_CTRL); //ctrl
Keyboard.press('c'); //c
delay(100);
Keyboard.releaseAll();
delay(500);
}
if (digitalRead(black) == HIGH) {
Keyboard.press(KEY_LEFT_CTRL); //ctrl
Keyboard.press('v'); //c
delay(100);
Keyboard.releaseAll();
delay(500);
}
if (digitalRead(yellow) == HIGH) {
Mouse.press(MOUSE_RIGHT);
delay(100);
Mouse.release(MOUSE_RIGHT);
Keyboard.press('v');
Keyboard.releaseAll(); //c
delay(500);
Keyboard.press(KEY_RETURN);
delay(100);
Keyboard.releaseAll();
}
if (digitalRead(white) == HIGH) {
Keyboard.press(KEY_LEFT_CTRL); //ctrl
Keyboard.press('x'); //c
delay(100);
Keyboard.releaseAll();
delay(500);
}
if (digitalRead(red) == HIGH) {
Keyboard.press(KEY_LEFT_CTRL); //모두선택
Keyboard.press('a'); //
delay(100);
Keyboard.releaseAll();
delay(500);
Keyboard.press(KEY_LEFT_CTRL); //복사
Keyboard.press('c'); //
delay(100);
Keyboard.releaseAll();
delay(100);
}
}
개발 노트 2장


'아두이노우노 R4' 카테고리의 다른 글
| uno r4 키보드 기능 안 될 때 시도해볼 것 (0) | 2024.03.09 |
|---|---|
| 아두이노 우노 R4 HID 키보드 제어 API (1) | 2024.03.07 |
| 아두이노 우노 R4 WiFi 마우스, 키보드 제어 방법 (1) | 2024.03.06 |
| Arduino Uno R4 빠르게 시작하기 (1) | 2024.03.04 |
| 16*2 LCD 디스플레이 두 개를 아두이노와 연결하기 (1) | 2024.02.26 |
| 아두이노에서 인터럽트를 사용하는 방법 (1) | 2023.11.24 |
| 만능 멤브레인 키패드 4X4-D 제어 (1) | 2023.11.06 |
| 아두이노 통합 개발 환경 IDE 2 가이드 (1) | 2023.11.03 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩