지난 주말을 통해 재미있는 프로젝트를 시작했습니다. 캐논 EF – 삼성 NX AF 어댑터 자작…
뭐… 언제 이 것이 완성이 될지는 장담할 수는 없습니다. 어쨌든 시작해 봤습니다.
일단, 그간 프로젝트를 통해 NX 마운트의 카메라와 렌즈의 프로토콜은 이미 파악은 한 상태입니다. 하지만 그 것 역시도 오래전 NX 최초 모델인 NX10을 대상으로 한 것이라… 다시 NX1을 기준으로 재조사를 하기는 해야 하겠지만, 아주 생소하지는 않을 것 같습니다.
그럼, 캐논 EF 마운트 프로토콜은 어떨지…
캐논 EF 마운트 접점의 개략적 규격
인터넷을 검색하면서 아래 게시글을 찾았습니다. 이정도면 시작하기에 충분하고도 남을 정도의 정보를 가지고 있습니다.
Canon EF-S Protocol and Electronic Follow Focus
일단 마운트의 통신을 위한 접점의 구조를 보면 아래와 같습니다.
이름 | 기능 | 주석 |
---|---|---|
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 렌즈 컨트롤 테스트
위 웹사이트에 올라온 정보를 규합하여, Arduino에 SPI 프로그램을 작성하여, 캐논 EF 렌즈를 제어하는 테스트를 해봤습니다.
캐논 EF 렌즈를 컨트롤 하는 것은 Arduino를 이용하였고, 이 Arduino와 연결을 위해, 포고 플러그를 납땜한 연장 케이블을 이용했습니다.
좀더 재미있는 테스를 위해, 로터리 인코더를 사용하려, 로터리 인코더의 움직이는 방향에 따라 조금씩 포커스를 전후로 움직이는 테스트를 진행했습니다.
아래 동영상은 이 테스트 영상입니다. 동영상에는 포커스 위치 제어에 대한 영상만 있지만, 코드 속에는 조리개 조절, 렌즈 정보 수집에 관한 코드도 들어있습니다.
아무래도 캐논 EF 마운트 시스템이야 사용하는 사람들도 많고, 정보도 많아서, 여기까지는 비교적 수월하게 올 수 있었습니다.
딱 요정도까지 주말동안 알차게 시도해본 결과입니다. 이제 막 첫걸음을 디뎠습니다.