VC0703 Camera tutorial - cchamchi/cansat GitHub Wiki
์ด tutorial์ VC0703๋ชจ๋(NTSC๋น๋์ค ์ถ๋ ฅ์ด ์๋ ์๋ก์ด TTL์ง๋ ฌ ์นด๋ฉ๋ผ)์ ์ํ ๊ฒ์ ๋๋ค. ์ด ๋ชจ๋์ ์ฌ์ง์ ์ฐ๊ฑฐ๋ ๋น๋์ค ์คํธ๋ฆผ์ ์ ์ดํ๋ ค๋ ๊ฒฝ์ฐ ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ ํ๋ก์ ํธ์ ์ถ๊ฐํ๊ธฐ์ ์ ํฉํฉ๋๋ค. ์ด ๋ชจ๋์๋ ์ด๋ฏธ์ง ๋ฐ๊ธฐ/๋ง์กฑ๋/์๊ฐํ/์๊ฐํ, ์๋ ๋ฐ๊ธฐ ์กฐ์ ๋ฐ ์๋ ๋ฐ๊ธฐ ์กฐ์ ๋ฑ์ ๋ช๊ฐ์ง ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค.

์ด๊ฒ์ด ์ด๋ป๊ฒ ์ค๋ ์ท๊ณผ ๋น๋์ค ์นด๋ฉ๋ผ์ธ์ง๋ ์ฝ๊ฐ ํผ๋์ค๋ฝ๊ธฐ ๋๋ฌธ์ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ์ด ๋ชจ๋์ ์ฒ์์ ๋ณด์ ๊ฐ์์ฉ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด๋ ๋น๋์ค ํ(NTSC๋จ์ ํ์)์์ TVํด์๋ ๋น๋์ค๋ฅผ ์ง์์ ์ผ๋ก ์คํธ๋ฆฌ๋ฐํ๊ณ ์ง๋ ฌ ํฌํธ์์๋ ๋ช ๋ น์ ๋ด๋ฆฌ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ์ง๋ ฌ ํฌํธ ๋ช ๋ น์ ๋ชจ๋์ด ๋น๋์ค๋ฅผ ์ผ์ ์ค์งํ ๋ค์ JPEG์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๋๋ก ์์ฒญํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ฐ์ ์ผ๋ก ๋ณด์ ๋ชจ๋ํฐ์ ๋น๋์ค๋ฅผ ํ์ํฉ๋๋ค. ์์ง์์ด ๊ฒ์ถ๋๋ฉด ์ฌ์ง์ ์ฐ์ด ๋์ค์ ๋ถ์ํ ์ ์๋๋ก ๋์คํฌ์ ์ ์ฅํฉ๋๋ค. ์ด ๋ชจ๋์ ๋งค์ฐ ๋์ ํด์๋๊ฐ ์๋๋ผ๋ ์ ์ ์ธ์ ํ ์ ์์ต๋๋ค. ์ฆ, ์ต๋ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ 640x480ํฝ์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ ์ธ์ ์ ๋ฏผ๊ฐํ๋ฐ, ๊ทธ๊ฒ์ ์ ์ฌํ์ ์ด๋ ์ ๋ ๋ณํ์ํจ๋ค. ์ด ๋ชจ๋ ์ด์ ๋ ์ด ์ฌ์ง์ด ์์ฐ ์ฌ์ง์ด ์๋๋ผ ๊ฐ์์ฉ์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง, ์ฐ๋ฆฌ๊ฐ ์๋ ํ, ์ด ๋ชจ๋์ด ์์ค์ ๋์ ์๋ ์ต๊ณ ์ ๋ชจ๋์ ๋๋ค.
- Module size: 32mm x 32mm
- Image sensor: CMOS 1/4 inch
- CMOS Pixels: 0.3M
- Pixel size: 5.6um*5.6um
- Output format: Standard JPEG/M-JPEG White balance: Automatic
- Exposure: Automatic
- Gain: Automatic
- Shutter: Electronic rolling shutter SNR: 45DB
- Dynamic Range: 60DB
- Max analog gain: 16DB
- Frame speed: 640*480 30fps
- Scan mode: Progressive scan
- Viewing angle: 60 degrees
- Monitoring distance: 10 meters, maximum 15meters (adjustable)
- Image size: VGA (640480), QVGA (320240), QQVGA (160*120)
- Baud rate: Default 38400 (the datasheet claims you can change the baud rate with a command but it does not work reliably)
- Current draw: 75mA
- Operating voltage: DC +5V
- Communication: 5V TTL (Three wire TX, RX, GND)
comm tool(์๋ ๋ค์ด๋ก๋ ๋งํฌ์ฐธ์กฐ) ์ ์ฌ์ฉํ์ฌ ์บก์ณํ ์ฌ์ง์
๋๋ค.
cansat serial ํฌํธ๋ก camera( serial1) ๋ฐ์ดํฐ๋ฅผ passthru ํ์ฌ ์ฐ์์ต๋๋ค.

์๋์ฐ ์ ํธ๋ฆฌํฐ์ธ comm tool์ ์ฌ์ฉํ๋ ค๋ฉด ์นด๋ฉ๋ผ์ ๋ํ ์ง๋ ฌ ๋งํฌ๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. ์ ์ํ๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํ๋๋ FTDI๋ ๋ค๋ฅธ USB/FTDI์๋ฆฌ์ผ ๋ณํ๊ธฐ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ํ๋๋ cansat์ passthru ์ค์ผ์น๋ฅผ ์ ๋ก๋ํ์ฌ camera์ ๋ฐ์ดํฐ๋ฅผ serial port๋ก passthruํ์ฌ USB ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐ๋ ๋ ธํธ๋ถ์ coom tool๊ณผ ์ฐ๊ฒฐํ์ฌ ์ฌ์ง์ ์บก์ณ ํ ์ ์์ต๋๋ค.
#include <VC0703.h>
#include <CansatSystem.h>
VC0703 cam = VC0703(&Serial1);
void setup() {
CansatSystemInit();
cam.begin();
Serial.begin(38400);
}
void loop() {
while (Serial.available()) Serial1.write(Serial.read());
while (Serial1.available()) Serial.write(Serial1.read());
}
์ด์ VC0706 Comm tool์ํํธ์จ์ด๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํฉ๋๋ค(์๋ ๋งํฌ). ์ํํธ์จ์ด๋ฅผ ์์ํ๊ณ cansat์ COMํฌํธ๋ฅผ ์ ํํ ํ open ๋ฒํผ์ ๋๋ฆ ๋๋ค.
http://www.adafruit.com/datasheets/VC0706CommTool(EN)%20Setup%20V1-00.exe
์ค๋ฅธ์ชฝ Data show์ฐฝ์ VC0703 1.00์ด๋ผ๋ ๋ฒ์ ์ ๋ณด์ Init end๋ผ๊ณ ์ฐํ๋ฉด ์ ์ ๋์์ ๋๋ค.

๋ค์์ผ๋ก ๋๋ฌ์ผ ํ ๋ฒํผ์ FB_CTRLํ๋จ์ ์์ต๋๋ค.

์ด๊ฒ์ ๊ฝค ๋ง์ ๋ฒํผ์ด ์์ง๋ง, ์ด๋ฏธ์ง๋ฅผ ์บก์ณํ๋ ค๋ฉด ๊ทธ๋ฆผ์ ๋์์๋ ์์๋๋ก 3๊ฐ์ง ๋ง ๋๋ฅด๋ฉด ๋ฉ๋๋ค.
- ์นด๋ฉ๋ผ ๋ฐฉํฅ์ ์ฌ์ง ์ฐ์ ๋์์ ๊ฐ๋ฆฌํค๋๋ก ํ์ญ์์ค
- ํ๋ ์ ๋ฒํผ๋ฅผ ๊ณ ์ ํ๊ธฐ ์ํด Stop CFBuf๋ฒํผ์ ๋๋ฆ ๋๋ค.
- Sel File์ ํด๋ฆญํ์ฌ JPG๋ฅผ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ฅํ ํ์ผ์ ์ ํํฉ๋๋ค.
- ๋ค์์ผ๋ก Read(SelFile)๋ฅผ ๋๋ฌ ์นด๋ฉ๋ผ์์ ์ด๋ฏธ์ง๋ฅผ ์ฝ์ด ์ต๋๋ค.
์ด์ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง๋ฅผ ์ฝ๋ ๊ฒ์ ์ฝ๊ฒ ํ ์คํธํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ์ง์ ์ฐ์ผ๋ ค๋ฉด ๋น๋์ค๋ฅผ ๋ค์ ์์ํ๊ธฐ์ํด ๋งจ ์์ ์๋[Resume]์ ๋๋ฅด์ญ์์ค. ๊ทธ๋ฐ ๋ค์ ๋ค๋ฅธ ์ฌ์ง์ ์ค๋ ํ๋ ค๋ฉด Stop CFbuf๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์์ ํ์ง์ ํฅ์์ํค๊ฑฐ๋ ์ ํ์ํค๋ ๋์์ ์์ ์ ์ก ์๊ฐ์ ๋ณ๊ฒฝํ๋ ์์ถ๋ฅ ์ ์ ํํ ์ ์์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์์๋ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ๋ฐฉ๋ฒ์ด ์์ง๋ง cansat ์ค์ผ์น์์๋ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
baud rate๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ ๋๋กญ ๋ค์ด์ด ์์ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก baud rate๋ 38400 ๋ณด๋์
๋๋ค.