레고와 아두이노로 컨트롤러를 만들어보았습니다.
영상 참고
코드
#include <Encoder.h>
#include <Joystick.h>
// 로터리 엔코더 핀
const int pinCLK = 2; // CLK 핀
const int pinDT = 3; // DT 핀
Encoder myEnc(pinCLK, pinDT);
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_GAMEPAD,
2, 0, // 2 Buttons, no Hat Switch
false, false, false, // No X, Y, Z Axis
false, false, false, // No Rx, Ry, Rz
false, false, // No rudder or throttle
false, false, false); // No accelerator, brake, or steering
long oldPosition = -999;
void setup() {
Joystick.begin();
}
void loop() {
long newPosition = myEnc.read(); // 엔코더의 현재 위치 읽기
if (newPosition > oldPosition) {
// 오른쪽으로 회전
Joystick.setButton(0, true); // 버튼 1 활성화
delay(50); // 짧은 딜레이
Joystick.setButton(0, false); // 버튼 1 비활성화
} else if (newPosition < oldPosition) {
// 왼쪽으로 회전
Joystick.setButton(1, true); // 버튼 2 활성화
delay(50); // 짧은 딜레이
Joystick.setButton(1, false); // 버튼 2 비활성화
}
oldPosition = newPosition; // 위치 업데이트
delay(10); // 반복 지연
}
3D 프린터 파일