달력

5

« 2024/5 »

  • 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

무선 조종기

드론을 먼 거리에서도 조종 할 수 있으려면 블루투스로는 텍도없기 때문에 무선 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카메라는 아두이노와 전혀 연결되어 있지 않아요.
단지 카메라로 찍은 영상은 아두이노를 거치지 않고 바로 공중으로 전송됩니다.
그러면 컴퓨터에 연결되어 있는 수신기가 영상을 받아 컴퓨터에 띄워줌니다.


'작품 > 쿼드콥터' 카테고리의 다른 글

보드를 바꾼 후 ESC에 400Hz제어를 시도했지만...  (0) 2016.02.08
아두이노 메가2560으로 MCU를 교체하다  (0) 2016.02.08
롤 제어  (0) 2016.02.08
호버링 제어  (0) 2016.02.08
조립 후 테스트  (0) 2016.02.08
:
Posted by youjin.A