본문 바로가기

DIY Atelier


카메라 무선 컨트롤러 (Wireless Pan-Tilt-Zoom Controller) - 3. 수신부 및 모터 구동부

페이지 정보

작성자 최고관리자 댓글 0건 조회 2,842회 작성일 18-07-27 04:15

본문

1.JPG

 


신부의 회로는 송신부에 비해 복잡하진 않으나, 소프트웨어는 여러가지 판단과 수행량이 많은 편이라 조금 복잡해질 수 있습니다.

2.JPG  

 

 1  수신기 회로


{이미지:12}

- 수신회로부의 전체 구조도 -

 

 2  RF Receiver 

 

송신부와 마찬가지로, 출력단에 TR을 연결하여 파형을 반전시켜줍니다.

같은 5V 전원을 사용하므로 레벨 보정을 위한다기 보다는 그냥 버퍼와 역상 변화를 위한 용도입니다.

 

{이미지:1}

- 수신 출력단 -

 

프로그램에서는 데이터가 수신되는 시점은 알 수 없으므로 수신 인터럽트를 발생시키도록 했습니다. 

어드레스 코드가 수신되길 기다렸다가 두번째에 해당 명령코드를 버퍼에 저장하는 간단한 코드입니다.


////////////////////////////////// RX Interrupt //////////////////////////////////////

ISR(USART_RX_vect)

{

if (rcv_flag == 0){

if (UDR == addr_servo_1) rcv_flag = 1;

}

else {

rcv_data = UDR;

rcv_flag = 0;

}

}



 3  PWM 모터 제어부

 

서보모터에 관한 지식과 정보는 시중에 널려 있으므로 자세한 설명은 배제하겠습니다.

앞의 포스팅에서 설명했듯이, 서보모터는 펄스로 동작하며 위치제어의 개념을 가지고 있습니다.

펄스의 주기는 20msec 이상이면 되고, 펄스폭(high)은 -모터마다 조금씩 차이는 있지만- 0.7msec ~ 2.5msec 사이에서 펄스폭에 따라 위치가 결정됩니다.

범용 서보모터는 연속 회전을 하는 제품은 거의 없고 대부분 180º 정도의 위치 제어가 가능합니다. Pan-Tilt에서 180도 이상 회전할 필요는 없기 때문에 저에게는 문제 없는 특성입니다.

 

   PWM 프로그래밍

 

최대한 부드럽고 세밀한 움직임을 위해서는 펄스폭의 정밀도를 높여야 합니다.

만일 8bit resolusion 의 타이머를 쓴다면 펄스 간의 정밀도가 최소 0.08msec가 되며, 유효한 제어 각도가 30단계 밖에 되지 않고모터의 회전 각도로는 펄스당 6도 정도가 됩니다. 즉 제어시 갑작스런 움직임이 생기게 되죠. 그래서 16bit 타이머인 timer1을 사용하여 정밀도를 256배 높였습니다. 펄스당 회전각도를 0.02도의 미세한 정밀도로 제어할 수 있습니다 (이론상).


void pwm_setup (void)

{

TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);

TCCR1B = (1<<WGM13)|(1<<WGM12)|(1<<CS11);

ICR1 = 2800;// 주파수

}


안전상 전체 주기는 22msec 정도로 세팅했습니다.

 

{이미지:2}

- PWM 출력 파형 -

 


   포토커플러로 전원 분리

 

굳이 포토커플러를 쓰지 않아도 동작에 큰 문제는 없습니다만, 다음과 같은 목적에서 사용하게 되었습니다.

 

1. 모터에 별도의 전원 인가 : 서보모터는 5V에서도 동작하지만, 전원이 높을 수록 토크가 높아지기 때문에 최대한 높은 전원을 인가하는 것이 유리합니다. 허용 전원이 7V인 관계로 6V의 별도 전원(납축전지)을 사용했습니다. 크기도 그리 크지 않으면서 1.2AH 용량이어서 꽤 긴 시간도 구동 가능합니다. (물론 별도의 전원을 사용할 목적뿐이라면 TR을 사용해도 무방합니다)

{이미지:3}

- 6V 납축전지 -

 

이 납축전지(또는 연축전지)는 두개를 사용하는데, 나중에 영상 송신기(FPV Transmitter)의 전원으로 12V가 필요하기 때문입니다.

 

2. 모터에서 발생하는 역기전력 유입 방지 : 서보모터도 DC 모터인지라, 기동시 또는 정지시에 역기전력이 발생하고, 이 전류나 노이즈가 역으로 MCU에 유입될 수 있습니다. 물론 실제 상황에서 큰 역기전력이 발생할 경우는 많지 않지만, 이 역전류는 PWM 출력의 교란이나 시그널 오류를 발생할 가능성이 있기에 미리 방지하는게 좋다는 판단입니다. 


{이미지:4}

- 모터의 역기전력으로 발생하는 노이즈 -

 

3. PWM 출력의 스위칭 : 서아레에 설명할 출력 포트의 확장 목적으로도 의미가 있습니다.


   PWM 출력 포트의 확장

 

ATtiny 2313의 PWM 출력 포트는 2개 밖에 없습니다. 그런데 제어해야 할 모터는 3개이기 때문에, 한 개의 포트를 두 개로 확장해야 할 필요가 있습니다. 다행히 두 가지의 출력이 동시에 진행되지 않아도 되므로, 하나의 PWM 포트로 나누어 출력하고, 필요할 때 마다 해당 출력을 전달해 주는 스위치를 온오프 해주면 됩니다.

 

전자적인 스위치야 TR이나 릴레이 등 여러가지가 가능하겠지만, 이미 회로에 포토커플러를 쓰고 있으므로 각 cathod에 다른 추가 포트를 연결하여 온오프하는 방식을 택했습니다.

 

{이미지:5}

- 포토커플러의 스위칭으로 PWM 확장 -

 

1. Pan 구동시 : ①에 low, ②에 high, ③에 Pan 구동 신호 출력

2. Tilt 구동시 : ①에 high, ②에 low, ③에 Tilt 구동 신호 출력 

 

각각의 최종 값(PWM 값)은 매번 구동시 저장해 두었다가 다음번에 불러오면 됩니다.

동시에 진행하지 않아도 되는 경우라면, 이처럼 여분의 포트로 얼마든지 출력을 확장할 수 있습니다.

 

 

 4  Shutter (shutter release) 제어부

 

원격으로 셔터를 조작하는 단자는 거의 모든 카메라에 다 있습니다. 그 모양과 내부 회로 및 핀아웃이 메이커마다 천차만별이지만 원리는 비슷합니다. 여기서는 파나소닉 카메라의 경우만 다루고자 합니다. 이 원격제어장치를 보통 셔터릴리즈라고 부릅니다.

 

{이미지:6}

- 파나소닉 shutter release 단자 -

 

{이미지:7}

shutter release 내부 회로 -

 

Focus 부분을 On(shut) 하면 반셔터가 되고, Shutter 부분을 on(shut) 하면 촬영이 됩니다.

영상 촬영시 반셔터는 크게 의미가 없으므로 그냥 shuuter 부분만 콘트롤 해도 상관 없습니다.

이 부분은 회로상에서 GND나 VCC 등에 연결되어 있지 않기 때문에, 어쩔 수 없이 따로 릴레이를 사용해야 합니다.

 

연결잭은 2.5파이 4극 케이블을 구매하면 됩니다. 천원 좀 넘습니다.

 

{이미지:8}

- 2.5- 4극 케이블 -

 

 

 5  영상 송수신부 (FPV Transmitter) 

 

FPV는 First Person View의 약자로서 1인칭 시점이라는 의미이고, 드론이나 RC 세계에서 많이 통용되는 용어입니다.

쉽게 말해서 영상송수신장치입니다.

 

만일 그다지 멀지 않은 거리(10m 내외)에서의 컨트롤이라면 이 항목은 굳이 볼 필요 없습니다. 와이파이로 충분합니다.

그리고 영상 송수신 분야는 정말 돈*랄이기 때문입니다. 

여기서도 가장 간단하고 손이 덜 가는 방법으로 실험해본 것 뿐이라 사실 거리도 많이 보장되지 않습니다. (30m 미만)

사실상 원하는 결과가 가장 나오지 않은 부분이라 실패작이라고 할 수 있는데, 그래도 다음번 업그레이드나 다른 누군가에게는 도움이 될 수 있다는 가정에서 올려봅니다.

 

일단 다음과 같은 한계와 문제점들이 있습니다.

 

1. 파나소닉 카메라의 영상 출력 단자가 HDMI 밖에 없다 - AVout 단자가 있지만 유용성이 떨어짐. HDMI 송수신기를 저렴하게 구하기 어려움.

2. 대부분의 기종은 플레이백 시에만 영상 출력이 가능하다 - 가진 기종 중에는 유일하게 G7만이 레코딩중 송출이 가능했고, 이 마저도 플레이백과 동시에 사용은 불가 (레코딩 중에는 모니터 꺼짐)

3. 송신기 대부분이 고전압을 필요로 한다 - 고전압일 수록 출력은 높아지겠지만, 보통 6V ~ 24V 정도이니 일반 배터리 이용이 제한적입니다. 나중에 드론용 시스템으로 다시 연구해 볼 필요가 있을듯 합니다.

 

일단, 송신부의 구조는 아래와 같습니다.

 

   카메라 - HDMI - HDMI to AV Converter - 송신기 

 


   5.8GHz 40CH FPV Video Transmitter

 

이런 종류의 제품은 국내에서 구하기가 무척 힘듭니다. 아마존 등의 해외 사이트에는 발에 채일 정도로 많고, 가격도 20$ 정도에서 구매 가능합니다.

노지에서 2km 까지 가능하다고 하지만, 12V 전원에서의 실험으로는 30m 정도 밖에 안나오니 수신기와의 궁합도 중요하겠지만 일단 감안하고 보시기 바랍니다.

전원은 6V 납축전지 2개를 직결하여 사용했습니다. 

 

Specification:

Transmitting Power: 200mW/23dbm
Transmitting Distance: 2000m(open area)
Frequency control: built-in frequency and phase lock loop
ANT connector: RPSMA (device with inner pin , antenna with inner hole)
AV input: analog AV signal input
Power supply: 6-28V
Current supply: 12V/160mA
Power output: 6-28V
Size:57*27.2*12mm (no cable and antenna)
Net Weight: 16g (no cable and antenna) 

 

{이미지:9}

- FPV transmitter -

 

{이미지:10}

- 카메라와 송신기를 연결한 모습 -

 

 

   FPV Mini 5.8G 150CH UVC Capture Card OTG Receiver

 

영상 수신을 위해서 따로 모니터와 거창한 수신기를 달고 싶진 않아서, 스마트폰을 이용할 방법을 찾아보니 이런게 있네요.

스마트폰에 연결만 하면 자동으로 수신 채널을 찾아주는 기능도 있습니다.

작고 가볍고 따로 전원도 필요 없어서 편리하긴 합니다.

 

어플은 몇가지 있지만, 스토어에서 'FPViewer' 등으로 검색하면 구할 수 있습니다. 대부분 중국산이라 언어가...

 

{이미지:11}

FPV OTG Receiver -

 

 

아래 영상에서처럼, 빨간 버튼을 길게 누르면 5.8GHz 대역을 스캔하여 가장 감도가 높은 채널을 자동으로 찾아서 보여줍니다.

편하긴 한데 실제 감도나 성능은 기대만큼 안나오니 송신기와의 궁합 문제인지는 좀더 실험해봐야 알것 같습니다.

 

 





 8  사용 재료 및 가격
 : 기구물과 송신기에서 중복된 재료는 제외했습니다.

 

재료 사진

재료명

가격

구입처(비고)

{이미지:13}

 ATtiny 2313A

 약 3,000원

 http://bitly.kr/UEBk

{이미지:14}

 PC817

 약 500원

 자상가

 

 PCB

 약 2,000원

 자상가

{이미지:15}

 FPV Transmitter

 약 30,000원

 http://bitly.kr/rGfs

{이미지:16}

 OTG Receiver

 약 35,000원

 http://bitly.kr/56VM

{이미지:17} 

 HDMI TO AV HDMI 변환기

 약 12,500원

 http://bitly.kr/5uVC

{이미지:18} 

 4극 케이블

 약 6,000원

 http://bitly.kr/atug

{이미지:19} 

 HDMI to Mini HDMI

 약 4,000원

 http://bitly.kr/z9bT

{이미지:20} 

 납축전지 6V/1.2AH

 약 4,500원

 http://bitly.kr/Fijj

 

 보조배터리

 약 3,000원

 

 

 총계

 약 104,000원

 배송비 미포함


 

댓글목록

등록된 댓글이 없습니다.