아두이노로 크롬 공룡 게임 제어하기 - 실생활 하드웨어 프로젝트
부품 및 소모품
| 부품 |
수량 |
비고 |
| 아두이노 MKR Zero |
1 |
키보드 라이브러리 지원 보드면 모두 가능 (Leonardo, Esplora, Zero, Due, MKR 시리즈) |
| 브레드보드 (일반) |
1 |
|
| 힘 감지 저항 (FSR, Force Sensing Resistor) |
1 |
점프 감지용 |
| 신축 센서 (전도성 고무줄, Stretch Sensor) |
1 |
앉기/숙이기 감지용 |
| 저항 10k 옴 |
2 |
풀다운용 |
| 점퍼 와이어 |
1묶음 |
|
앱 및 온라인 서비스
프로젝트 소개
개요 및 시연
크롬 브라우저의 숨겨진 공룡 게임(인터넷 끊김 시 플레이 가능)에서 장애물을 피하려면 점프(스페이스바)하거나 숙이기(아래 화살표)를 해야 합니다. 이 장치는 실제 점프와 앉기 동작을 감지해 키보드 입력을 전송함으로써 게임을 현실에서 몸으로 조작하게 해줍니다.
- 힘 감지 저항(FSR): 발밑에 두고 점프 시 가해지는 힘 감지 → 스페이스바 입력
- 신축 센서(전도성 고무줄): 허리나 무릎에 감아 숙일 때 늘어남 감지 → 아래 화살표 입력
- 아두이노 MKR Zero:
Keyboard.h 라이브러리로 HID 키보드 에뮬레이션
제작 순서
- 회로도(Schematics 섹션)대로 브레드보드에 회로 구성
- 코드(Code 섹션) 업로드
- 코드 3~4번째 줄의 임계값(
stretchThreshold, forceThreshold)을 본인 센서 값에 맞게 조정
- (선택) 3D 프린트로 벨트 클립 출력해 브레드보드 뒤에 부착
- 장치를 PC에 연결, 인터넷 끄기, 크롬 열기 → 게임 시작! (끝나면 인터넷 다시 켜기)
코드
#include <Keyboard.h>
int stretchThreshold = 990; // 신축 센서 임계값 (조정 필요)
int forceThreshold = 1000; // FSR 임계값 (조정 필요)
void setup() {
Keyboard.begin();
pinMode(A1, INPUT); // 신축 센서
pinMode(A2, INPUT); // FSR
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int stretchValue = analogRead(A1);
int forceValue = analogRead(A2);
Serial.print("stretch: "); Serial.print(stretchValue);
Serial.print(" force: "); Serial.println(forceValue);
// 숙이기 감지 (신축 센서 값이 임계값 미만)
if (stretchValue < stretchThreshold) {
digitalWrite(LED_BUILTIN, HIGH);
Keyboard.press(KEY_DOWN_ARROW);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
}
// 점프 감지 (FSR 값이 임계값 미만 - 눌리면 저항값 낮아짐)
if (forceValue < forceThreshold) {
digitalWrite(LED_BUILTIN, HIGH);
Keyboard.press(' '); // 스페이스바
delay(200);
digitalWrite(LED_BUILTIN, LOW);
}
Keyboard.releaseAll();
}
회로도
회로도 이미지 참조: FSR과 신축 센서를 각각 10kΩ 풀다운 저항과 함께 A1, A2에 연결. 아두이노 USB로 PC와 연결.
커스텀 파트 및 인클로저
벨트 클립 3D 모델 파일 제공 (Custom Parts 섹션)