DIY 듀얼축 FPV 카메라 크래들: 아두이노 조이스틱 제어 튜토리얼
부품 및 소모품
| 아두이노 UNO |
×1 |
| SG90 마이크로 서보 모터 |
×2 |
프로젝트 소개
안녕하세요, 오늘은 조이스틱 모듈로 2축 FPV 카메라 크래들을 제어하는 전체 튜토리얼을 진행하겠습니다. 카메라 크래들은 아크릴 지지대, 나사, 서보 모터 2개로 구성된 작은 패키지로 제공됩니다.
사전 지식: 조이스틱이나 서보 모터에 익숙하지 않다면 다음 튜토리얼을 먼저 보세요:
서보 제어에는 두 가지 방식을 사용합니다:
- 직접 추적 모드: 서보가 조이스틱 위치를 따라 실시간으로 움직임
- 방향 유지 모드: 조이스틱이 가리키는 방향으로 서보가 이동 후 그 위치 유지
최종 결과물 데모는 영상에서 확인할 수 있습니다. 배선과 캘리브레이션 과정을 단계별로 설명했지만, 여기서는 전체 배선도와 최종 코드 2가지만 제공합니다.
조이스틱 축이 헷갈리지 않도록 주의하세요. 제 조이스틱은 X축이 위, Y축이 아래에 있지만 그림에서는 다를 수 있습니다. 배선은 자유롭게 변경 가능합니다(서보 핀, 조이스틱 입력, 방향 등).
코드
코드 1: 직접 추적 모드 (영상 버전)
아두이노 코드 Arduino
// 듀얼축 FPV 카메라 크래들용 코드 (서보 2개 + 조이스틱 모듈)
// 아날로그 스틱을 움직이면 크래들이 조이스틱 움직임을 따라감
// 자세한 내용은 surtrtech.com 참조
#include
Servo myservo1;
Servo myservo2;
int YAxis = 1; // 조이스틱 X축 핀
int XAxis = 0; // 조이스틱 Y축 핀 (아날로그 입력)
void setup() {
Serial.begin(9600);
pinMode(XAxis, INPUT);
myservo1.attach(8);
pinMode(YAxis, INPUT);
myservo2.attach(9);
}
void loop() {
int X = analogRead(XAxis); // X축 포텐쇼미터 읽기
X = X * 0.1756; // 0-1023 → 0-180 변환 (서보 범위)
X = 180 - X; // 서보 방향 보정
myservo1.write(X); // 첫 번째 서보에 값 전달
int Y = analogRead(YAxis); // Y축 읽기
Y = Y * 0.1466; // 0-1023 → 0-150 변환
myservo2.write(Y); // 두 번째 서보에 값 전달
}
코드 2: 방향 유지 모드 (영상 버전)
아두이노 코드 Arduino
// 듀얼축 FPV 카메라 크래들용 코드 (서보 2개 + 조이스틱 모듈)
// 조이스틱이 가리키는 방향으로 크래들이 이동 후 그 위치 유지
// 자세한 내용은 surtrtech.com 참조
#include
Servo myservo1;
Servo myservo2;
int a, b, X, Y;
int YAxis = 1;
int XAxis = 0;
void setup() {
Serial.begin(9600);
pinMode(XAxis, INPUT);
myservo1.attach(8);
pinMode(YAxis, INPUT);
myservo2.attach(9);
}
void loop() {
a = myservo1.read(); // 이전 서보 위치 읽기 (중요!)
b = myservo2.read();
X = analogRead(XAxis);
Y = analogRead(YAxis);
// 조이스틱 3구간: 왼쪽(>550) | 중앙 | 오른쪽(<450)
if (X > 550) { a = a - 1; myservo1.write(a); delay(50); }
if (X < 450) { a = a + 1; myservo1.write(a); delay(50); }
// 조이스틱 3구간: 위(>600) | 중앙 | 아래(<450)
if (Y > 600) { b = b + 1; myservo2.write(b); delay(50); }
if (Y < 450) { b = b - 1; myservo2.write(b); delay(50); }
}
회로도
상단 서보와 하단 서보를 헷갈리지 마세요.