올드스쿨 게이머라면 1985년경 닌텐도 NES R.O.B.를 기억하실 겁니다. 이제 막 게임을 시작한 세대에게 설명하자면, NES 컨트롤러를 잡고 화면을 보며 여러분과 함께 또는 대결하는 로봇이었습니다.
네, 1985년 맞습니다.
네, 닌텐도 로봇이라고 했습니다.
비디오 게임에서 반복적인 작업을 강요받을 때마다 R.O.B가 떠오릅니다. 컨트롤러를 로봇 동료에게 맡겨 지루한 일을 처리하게 하면 좋지 않을까요? Elder Scrolls Online에서 수백 마리의 생선을 손질해야 하는 상황에 직면해 더 나은 해결책을 마련했습니다. 안타깝게도 R.O.B 2.0은 아니고, 아직 저를 위해 생선을 잡아주지는 못합니다. 하지만 콘솔 컨트롤러의 버튼을 몇 초마다 누르도록 프로그래밍된 장치입니다... 스카넷 조심하세요.
프로젝트 제작
SparkFun 배송 상자와 폼 시트를 재활용해 Xbox 컨트롤러용 딱 맞는 홀더를 만들었습니다.
자작나무 시트를 접착해 서보 홀더를 만들었습니다. 스티렌 튜브에 고무 범퍼를 한쪽 끝에 붙여 '자동 엄지'를 만들고, 아크릴 시트로 '엄지'를 고정했습니다. (3년 넘게 지난 지금 3D 프린터를 소유하게 된 시점에서 이 제작 방식은 용납할 수 없는 메이커의 장인정신이라 바로 수정하겠습니다. :D)
코드
IBM 왓슨도 조심해야 할지도 모릅니다. 이 코드에 인류를 멸망시킬 미래의 AI가 들어있을지도 모르니까요... 농담입니다.
진지하게 말하면, 정말 간단한 스케치입니다.
#include // 라이브러리에서 가져옴
Servo servoMain; // 서보 정의
void setup() {
servoMain.attach(9); // 디지털 핀 9에 서보 연결
}
void loop() {
servoMain.write(45); // 서보를 왼쪽으로 45도 회전
delay(1500); // 1.5초 대기
servoMain.write(0); // 서보를 왼쪽으로 0도 회전
delay(750); // 0.75초 대기
}
마무리
이 프로젝트는 친구들 사이의 농담으로 시작해 눈덩이처럼 불어났습니다. 게이머들이 약간의 창의성으로 큰 웃음을 얻었습니다. 설계상 개선할 점은 많지만, 때로는 단순하게 유지하는 것이 최선입니다.
향후 버전
언젠가 오토 컨트롤러를 다시 다룰 계획입니다. 3D 프린트 케이지 부착, 화면(사진) 및 컨트롤러(진동)에서 감각 피드백을 받아 모든 기능 추가. 자동 레이싱도 흥미로운 도전이 될 것입니다. 먼 훗날 80년대 체스 컴퓨터처럼 인간 최고수와 경쟁하는 모습도 상상해볼 수 있습니다. 제안이나 피드백이 있으면 들려주세요. 해결하기 귀찮은 작업이 있는 게임을 아시나요? 아래에 댓글 남겨주세요.
Exit
y(o.o)y
코드
O 버튼 누르기 (Arduino)
서보를 x초마다 작동시켜 리모컨 버튼을 누름.
#include // 라이브러리에서 가져옴
Servo servoMain; // 서보 정의
void setup() {
servoMain.attach(9); // 디지털 핀 9에 서보 연결
}
void loop() {
servoMain.write(45); // 서보를 왼쪽으로 45도 회전
delay(1500); // 1.5초 대기
servoMain.write(0); // 서보를 왼쪽으로 0도 회전
delay(750); // 0.75초 대기
}