2016. 2. 8. 02:56
무선 조종기와 카메라 테스트 작품/쿼드콥터2016. 2. 8. 02:56
무선 조종기
드론을 먼 거리에서도 조종 할 수 있으려면 블루투스로는 텍도없기 때문에 무선 RF 조종기를 구입하였습니다.
무선 조종기는 아래 동영상을 보면 알 수 있는데 수신부에서는 일정 주파수의 펄스가 계속 들어옵니다.
이때 펄스의 듀티비에 따라 우리는 값을 처리 할 수 있고 그 값을 이용해서 쿼드콥터를 조종할 수 있습니다.
이 듀티비를 받아서 처리할 수 있는 아두이노 코드는 아래에 있어요.
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 |