2월 292016
 

지난 주말을 통해 재미있는 프로젝트를 시작했습니다. 캐논 EF – 삼성 NX AF 어댑터 자작…

뭐… 언제 이 것이 완성이 될지는 장담할 수는 없습니다. 어쨌든 시작해 봤습니다.

일단, 그간 프로젝트를 통해 NX 마운트의 카메라와 렌즈의 프로토콜은 이미 파악은 한 상태입니다. 하지만 그 것 역시도 오래전 NX 최초 모델인 NX10을 대상으로 한 것이라… 다시 NX1을 기준으로 재조사를 하기는 해야 하겠지만, 아주 생소하지는 않을 것 같습니다.

그럼, 캐논 EF 마운트 프로토콜은 어떨지…

 

캐논 EF 마운트 접점의 개략적 규격

인터넷을 검색하면서 아래 게시글을 찾았습니다. 이정도면 시작하기에 충분하고도 남을 정도의 정보를 가지고 있습니다.
Canon EF-S Protocol and Electronic Follow Focus

 

일단 마운트의 통신을 위한 접점의 구조를 보면 아래와 같습니다.

EF-PinOut

 

이름 기능 주석
VBat +6 V 로 내부 촛점용 모터 구동 모든 EOS 카메라와 렌즈에 사용. 전원은 카메라에서 뭔가 렌즈에게 일을 시킬 때만 공급됨.
P-Gnd 파워 접지 (대형 접점으로 2개의 접점 영역 차지)
P-Gnd
VDD +5.5 V로 디지털 로직 전원
DCL 카메라에서 렌즈로 가는 데이터 (MOSI)
DLC 렌즈에서 카메라로 가는 데이터 (MISO)
LCLK 카메라 바디에서 생성하는 클록 시그널(SCLK, CPOL=1)
D-GND 디지털 로직 접지

 

대략의 통신 특징을 본다면.

  • 카메라 바디가 Master이고, 렌즈가 Slave가 되는 SPI 통신 방법을 따른다.
  • 8비트 데이터
  • 클록 스피드는 약 80KHz 정도. 이 속도도 그다지 까다롭게 체크하지는 않는다.

 

캐논 EF 마운트 디자인

아무래도 역사도 깊고 많이 알려지고, 사용되는 마운트라 CAD 치수 정도는 찾을 수 있을 것 같았는데, 그게 여의치 않습니다. 내친김에 마운트 치수를 측정해 만들었습니다.

대충 아래와 같은 구조를 가집니다.

EF-Mount

 

캐논 EF 렌즈 컨트롤 테스트

위 웹사이트에 올라온 정보를 규합하여, Arduino에 SPI 프로그램을 작성하여, 캐논 EF 렌즈를 제어하는 테스트를 해봤습니다.

캐논 EF 렌즈를 컨트롤 하는 것은 Arduino를 이용하였고, 이 Arduino와 연결을 위해, 포고 플러그를 납땜한 연장 케이블을 이용했습니다.

좀더 재미있는 테스를 위해, 로터리 인코더를 사용하려, 로터리 인코더의 움직이는 방향에 따라 조금씩 포커스를 전후로 움직이는 테스트를 진행했습니다.

아래 동영상은 이 테스트 영상입니다. 동영상에는 포커스 위치 제어에 대한 영상만 있지만, 코드 속에는 조리개 조절, 렌즈 정보 수집에 관한 코드도 들어있습니다.

아무래도 캐논 EF 마운트 시스템이야 사용하는 사람들도 많고, 정보도 많아서, 여기까지는 비교적 수월하게 올 수 있었습니다.

딱 요정도까지 주말동안 알차게 시도해본 결과입니다. 이제 막 첫걸음을 디뎠습니다.

 

 

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)