작품/쿼드콥터

무선 조종기와 카메라 테스트

youjin.A 2016. 2. 8. 02:56

무선 조종기

드론을 먼 거리에서도 조종 할 수 있으려면 블루투스로는 텍도없기 때문에 무선 RF 조종기를 구입하였습니다.

Manual for WFT06X.pdf

WFLY-6-2__ ___.pdf


무선 조종기는 아래 동영상을 보면 알 수 있는데 수신부에서는 일정 주파수의 펄스가 계속 들어옵니다.

이때 펄스의 듀티비에 따라 우리는 값을 처리 할 수 있고 그 값을 이용해서 쿼드콥터를 조종할 수 있습니다.

이 듀티비를 받아서 처리할 수 있는 아두이노 코드는 아래에 있어요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#define CH1 15 // yaw
#define CH2 16 //pitch
#define CH3 17 //hover
#define CH4 18 //roll
 
#define CH1_MIN 1270//200 1264
#define CH1_MID 1464
#define CH1_MAX 1632//168
 
#define CH2_MIN 1224//304 1176
#define CH2_MID 1480
#define CH2_MAX 1736//256
 
#define CH3_MIN 1028
#define CH3_MID 1448
#define CH3_MAX 1808
 
#define CH4_MIN 1296//208 1264
#define CH4_MID 1472
#define CH4_MAX 1648//176
 
#define CUTFORZERO 3
#define DEGRANGE  45
#define TROTTLERANGE  150
#define WFLYOFFSET 10
 
int pin = 15;
int val;
unsigned long duration;
int storage[4];
int CH1_val, CH2_val, CH3_val, CH4_val;
 
void setup()
{
  Serial.begin(115200);
  pinMode(pin, INPUT);
}
 
void loop()
{
  duration = pulseIn(pin, HIGH, 25000);
  
   if(duration>CH1_val+WFLYOFFSET | duration<CH1_val-WFLYOFFSET)
  CH1_val = duration;
  
  storage[0= map(CH1_val, CH1_MIN, CH1_MAX, (DEGRANGE*-1), DEGRANGE);
 
  if(storage[0>=(CUTFORZERO*-1& storage[0<=CUTFORZERO)
  storage[0]  = 0;
  Serial.println( storage[0] );
  delay(10);
  
}
 
cs



카메라
RF카메라는 아두이노와 전혀 연결되어 있지 않아요.
단지 카메라로 찍은 영상은 아두이노를 거치지 않고 바로 공중으로 전송됩니다.
그러면 컴퓨터에 연결되어 있는 수신기가 영상을 받아 컴퓨터에 띄워줌니다.