VC0703 Camera tutorial - cchamchi/cansat GitHub Wiki

Overview

์ด 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)

Sample Images

comm tool(์•„๋ž˜ ๋‹ค์šด๋กœ๋“œ ๋งํฌ์ฐธ์กฐ) ์„ ์‚ฌ์šฉํ•˜์—ฌ ์บก์ณํ•œ ์‚ฌ์ง„์ž…๋‹ˆ๋‹ค. cansat serial ํฌํŠธ๋กœ camera( serial1) ๋ฐ์ดํ„ฐ๋ฅผ passthru ํ•˜์—ฌ ์ฐ์—ˆ์Šต๋‹ˆ๋‹ค.

Using CommTool

์œˆ๋„์šฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ 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 ๋ณด๋“œ์ž…๋‹ˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ