꿀팁2015. 6. 10. 23:42

노하우 : 시리얼 통신을 먼저 연결하고 카메라에 전원을 넣어줘야 정상 동작함

예를 들어 시리얼통신과 전원이 같이 있는 커넥터 전체를 한번에 꼽는다면

전원과 시리얼통신이 동시에 연결되기 때문에 잘 동작하지 않기도 한다.


제품을 보니 MAX232 칩이 붙어 있음

MAX232는 TTL 전압(5V)를 RS232 전압(14V)로 승압해주는 역할



그래서 아두이노에 직접 연결할 수 없음 (아두이노 시리얼 통신은 Tx,Rx 전압 5V - TTL Level)


※ MAX232 칩은 Tx 전압이 14V 로 나옴. 아두이노에 직접 연결하면 아두이노 파괴됨!!! (직접 해보진 않았음..)


그래서 일단 RS232(14V)->USB 통신 변환 장치를 이용해 PC에서 동작 시험하기로 함

시험에 사용한 RS232->USB 통신 변환 장치 : https://www.eleparts.co.kr/EPX6TR39




카메라 모듈 커넥터 핀 배열



카메라 모듈

 USB2.0 to Serial 변환기 9핀 D-SUB 핀번호

 Tx

 D-SUB 2번

 Rx

 D-SUB 3번

 GND

 D-SUB 5번



"RS232->USB 변환 장비"를 이용해 PC에 연결한 모습


구글검색어 : vc0706 comm tool  <== PC에서 시리얼 포트로 영상을 읽거나 카메라 설정을 변경하는 프로그램

http://www.ladyada.net/wiki/tutorials/products/camera/index.html

상기 페이지 맨 아래 링크에서 VC0706CommTool.exe 프로그램을 다운 받아서 설치

VC0706 Comm Tool - Windows control software


프로그램을 실행하고 COM포트 번호를 지정하면 시리얼 통신을 통해 캡처된 이미지를 볼 수 있다.


#2 아두이노에 연결해서 사진 찍고 SD 메모리 저장

아두이노 보드와 통신하려면 RS232 전압 레벨(14V)을 TTL 레벨(5V)로 바꿔야 함

카메라 모듈 설명서에 따르면 MAX232칩을 제거하고 R15,R16을 연결하면 커넥터로 TTL레벨 Tx,Rx가 출력 된다고 함

MAX232칩 다리를 닛퍼로 자르던가 열풍기로 녹여서 한번에 깔끔하게 떼어 내는게 좋음


MAX232칩을 제거한 모습


R15, R16 를 쇼트시키고 커넥터에서 Rx,Tx 전압을 측정해 보면 3.3V가 나옴

아두이노 UNO의 Tx 출력 전압은 5V 이므로 저항을 이용해 전압분배 회로를 만들어 3.3V로 낮춰야 함


아두이노 UNO Rx 핀 (2번핀) <-----------------------  카메라 Tx 핀

아두이노 UNO Tx 핀 (3번핀) ----> 저항(전압분배) ----> 카메라 Rx 핀

아두이노 UNO GND 핀         <-------------------------->  카메라 GND 핀


카메라에서 읽은 JPG 이미지를 SD 메모리 카드에 저장하기 위해 SD카드 리더기 연결

아두이노UNO 13번핀 -- SD카드_SCK (SPI통신 클럭)

아두이노UNO 12번핀 -- SD카드_DO (SPI통신 Data-Out)

아두이노UNO 11번핀 -- SD카드_DI (SPI통신 Data-In)

아두이노UNO 10번핀 -- SD카드_SS (SPI통신 Chip-Select)


[사진 하단에 붉은색 보드는 TFT LCD인데 붙어있는 SD 카드 리더기만 사용하느라 점프선으로 연결함]



http://www.ladyada.net/wiki/tutorials/products/camera/index.html

상기 링크 맨 아래에 있는 VC0706 Library 를 GitHub에서 다운 받은뒤 안에 포함된 example을 실행

Adafruit VC0706 Arduino library Github repository


Snapshot.ino : SD카드를 정상적으로 인식했다면 캡처된 이미지가 SD카드에 저장됨

MotionDetect.ino : 카메라가 찍는 화면에서 뭔가 변화가 생기면 그때 마다 한장씩 저장함


동작 확인 끝.



------------------------------------------------------------------------------------------------

참고 문서들


카메라 설명 : 시리얼 포트로 영상읽고 카메라 설정 변경,소스코드는 아두이노용 아님

http://wiki.iteadstudio.com/VC0706_UART_Camera_%EF%BC%88Supports_JPEG%EF%BC%89

PC기반 카메라 제어 프로그램 : vc0706 comm tool

https://learn.adafruit.com/ttl-serial-camera/downloads


150719

cv0709 comm tool이 설치파일형태로 바꼈다. Program Files 밑에 설치된 파일을 사용할것

기존 설치 없이 압축파일 풀어서 쓰는 버전은 Invalid Command 라고 에러 뜨면서 통신 잘 안된다.


PC용 USB2Serial 핀맵


vc0706 comm tool 사용법 & 아두이노 코드 : adafruit 공식인듯

pc 용 프로그램부터 adafruit 공식라이브러리 까지 다있음

http://www.ladyada.net/wiki/tutorials/products/camera/index.html

==> 아두이노를 USB2Serial hijacker로 쓸수 있다!

PC가 보내는 신호는 아두이노 0핀에서 측정됨.

PC가 받는 신호는 아두이노 1핀에서 측정됨.



사용법 pdf 링크 :PC용 프로그램 사용법만 있음

http://www.fut-electronics.com/wp-content/plugins/fe_downloads/Uploads/TTL_camera_toturial_and_testing.pdf


카메라핀맵 제품 판매 링크

http://www.aliexpress.com/snapshot/6707756002.html?orderId=67554548227055


아두이노 연동 사용법, 코드 : 다 동일한 코드, adafruit와는 코드 내용이 다름..실행은 안해봄

http://www.elecfreaks.com/projects/how-to-use-ov7670-camera-module-with-arduino/


http://www.instructables.com/id/How-to-use-OV7670-Camera-Module-with-Arduino/


http://www.element14.com/community/docs/DOC-76210/l/trying-to-use-a-camera-module-to-show-footage-to-a-lcd-tft-screen


Posted by orasman