やってること
Arducam OV2640で写真を撮影し、接続したSDカードに保存する。
環境
マイコン:Raspberry Pi Pico
プログラミング言語:MicroPython
カメラ:Arducam OV2640
SDカードモジュール:AE-MICRO-SD-DIP
参考サイト
stack overflow「Arducam ov2640 camera not taking/returning data on pico」
注意
・circuit pythonではありません
・他のArducamやSPI Camで使えるかはわかりません
・JPEGでの撮影のみです
・stack overflowのページの一番下のコメントに記載されていたプログラムをAI(たしかCopilot)に修正させたのちSDカードに保存するコードを追加しました。
・SDカードではなく、Pico本体に写真を保存するプログラムもあります。必要な方はコメントで教えて下さい。
接続
↑上記の画像のPicoとOV2640の接続のみ真似してくれればOKです。
↓下記はPicoとSD-DIPとの接続dえす。
Pico | SD-DIP |
---|---|
GP13 | 2(CD/DAT3) |
GP11 | 3(CMD) |
VSYS | 4(VDD 3.3v) |
GP10 | 5(CLK) |
GND | 6(VSS GND) |
GP12 | 7(DAT0) |
プログラム
メインプログラム
OV2640_sd.py
from ov2640_reg import *
from machine import Pin, I2C, SPI
import time
import os
import sdcard
class ov2640(object):
def __init__(self):
# SPI 設定
self.spi = SPI(id=0, baudrate=4000000, bits=8, sck=Pin(2), mosi=Pin(3), miso=Pin(4))
self.cspin = Pin(5, Pin.OUT, value=1)
# SDカード SPI設定
self.sd_spi = SPI(1, baudrate=1000000, sck=Pin(10), mosi=Pin(11), miso=Pin(12))
self.sd_cs = Pin(13, Pin.OUT)
self.sd = sdcard.SDCard(self.sd_spi, self.sd_cs)
# SDカードをマウント
self.mount_sdcard()
# I2C 設定
self.I2cAddress = 0x30 # SENSORADDR
self.i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=1000000)
print("I2Cデバイス:", self.i2c.scan())
def Camera_Detection(self):
self.wrSensorReg8_8(0xff, 0x01)
id_h = self.rdSensorReg8_8(0x0a)
id_l = self.rdSensorReg8_8(0x0b)
print("id_h", id_h, "id_l", id_l)
def mount_sdcard(self):
# SDカードをマウント
self.sd_root = "/sd"
os.mount(self.sd, self.sd_root)
print("SDカードマウント完了")
def spi_Test(self):
self.spi_write(0x00, 0x56)
value = self.spi_read(0x00)
if value[0] == 0x56:
print("SPI interface OK")
else:
print("SPI interface Error")
def spi_write(self, address, value):
maskbits = 0x80
buffer = bytearray(2)
buffer[0] = address | maskbits
buffer[1] = value
self.cspin(0)
self.spi.write(buffer)
self.cspin(1)
def spi_read(self, address):
maskbits = 0x7F
buffer = bytearray(1)
buffer[0] = address & maskbits
self.cspin(0)
self.spi.write(buffer) # アドレス送信
data = self.spi.read(1) # データ受信
self.cspin(1)
return data
def spi_read_father(self, number, address):
maskbits = 0x7f
buffer = bytearray(1)
buffer[0] = address & maskbits
self.cspin(0)
self.spi.write(buffer)
val = self.spi.read(number)
self.cspin(1)
return val
def spi_read(self, address):
return self.spi_read_father(1, address)
def spi_reads(self, number, address):
return self.spi_read_father(number, address)
def iic_write(self, buffer):
self.i2c.writeto(self.I2cAddress, buffer)
def iic_read(self, buffer):
self.i2c.readfrom_into(self.I2cAddress, buffer)
def wrSensorReg8_8(self, address, val):
buffer = bytearray(2)
buffer[0] = address
buffer[1] = val
self.iic_write(buffer)
def rdSensorReg8_8(self, address):
buffer = bytearray(1)
buffer[0] = address
self.iic_write(buffer)
self.iic_read(buffer)
return buffer[0]
def wrSensorRegs8_8(self, reg_value):
for data in reg_value:
addr = data[0]
val = data[1]
if addr == 0xff and val == 0xff:
return
self.wrSensorReg8_8(addr, val)
def Camera_Init(self):
self.wrSensorReg8_8(0xff,0x01)
self.wrSensorReg8_8(0x12,0x80)
time.sleep(0.1)
self.wrSensorRegs8_8(OV2640_JPEG_INIT);
self.wrSensorRegs8_8(OV2640_YUV422);
self.wrSensorRegs8_8(OV2640_JPEG);
self.wrSensorReg8_8(0xff,0x01)
self.wrSensorReg8_8(0x15,0x00)
self.wrSensorRegs8_8(OV2640_1600x1200_JPEG);
#OV2640_set_Light_Mode
self.wrSensorReg8_8(0xff,0x00)
self.wrSensorReg8_8(0xc7,0x40)
self.wrSensorReg8_8(0xcc,0x52)
self.wrSensorReg8_8(0xcd,0x41)
self.wrSensorReg8_8(0xce,0x66)
#OV2640_set_Color_Saturation 色度
self.wrSensorReg8_8(0xff, 0x00)
self.wrSensorReg8_8(0x7c, 0x00)
self.wrSensorReg8_8(0x7d, 0x02)
self.wrSensorReg8_8(0x7c, 0x03)
self.wrSensorReg8_8(0x7d, 0x28)
self.wrSensorReg8_8(0x7d, 0x28)
#OV2640_set_Brightness 亮度
self.wrSensorReg8_8(0xff, 0x00)
self.wrSensorReg8_8(0x7c, 0x00)
self.wrSensorReg8_8(0x7d, 0x04)
self.wrSensorReg8_8(0x7c, 0x09)
self.wrSensorReg8_8(0x7d, 0x00)
self.wrSensorReg8_8(0x7d, 0x00)
#OV2640_set_Contrast 對比
self.wrSensorReg8_8(0xff, 0x00)
self.wrSensorReg8_8(0x7c, 0x00)
self.wrSensorReg8_8(0x7d, 0x04)
self.wrSensorReg8_8(0x7c, 0x07)
self.wrSensorReg8_8(0x7d, 0x20)
self.wrSensorReg8_8(0x7d, 0x18)
self.wrSensorReg8_8(0x7d, 0x34)
self.wrSensorReg8_8(0x7d, 0x06)
def read_fifo_length(self):
len1 = self.spi_read(0x42)[0]
len2 = self.spi_read(0x43)[0]
len3 = self.spi_read(0x44)[0] & 0x7f
length = ((len3 << 16) | (len2 << 8) | len1) & 0x07fffff
print("FIFO length:", length)
return length
def flush_fifo(self):
self.spi_write(0x04, 0x01)
def clear_fifo_flag(self):
self.spi_write(0x04, 0x01)
def start_capture(self):
self.spi_write(0x04, 0x02)
def get_unique_filename(self, base_name):
number = 1
while True:
filename = f"{base_name}_{number}.jpg"
filepath = f"{self.sd_root}/{filename}"
# SDカード内のファイル名一覧を取得
files = os.listdir(self.sd_root)
if filename not in files:
return filename
number += 1
def appendbuf(self, base_name, picbuf, howmany):
# ユニークなファイル名を生成
filename = self.get_unique_filename(base_name)
sd_filename = f"{self.sd_root}/{filename}"
try:
with open(sd_filename, 'ab') as f: # 'ab'でバイナリ追加モード
f.write(picbuf)
print(f"SDカードに{filename}を書き込み:", howmany, "バイト")
except OSError:
print("SDカード書き込みエラー")
def read_fifo_burst(self):
self.flush_fifo()
self.start_capture()
length = self.read_fifo_length()
buffer = self.spi_reads(length, 0x3d)
self.appendbuf("image", buffer, length) # "image"を基に番号付きファイル名を作成
self.clear_fifo_flag()
def test():
cam = ov2640()
cam.spi_Test()
cam.Camera_Init()
cam.clear_fifo_flag()
time.sleep(0.01)
cam.read_fifo_length()
cam.read_fifo_burst()
if __name__ == '__main__':
test()
OV2640_SD.pyでimportしているファイル
ov2640_reg.py
OV2640_JPEG_INIT =[
[ 0xff, 0x00 ],
[ 0x2c, 0xff ],
[ 0x2e, 0xdf ],
[ 0xff, 0x01 ],
[ 0x3c, 0x32 ],
[ 0x11, 0x00 ],
[ 0x09, 0x02 ],
[ 0x04, 0x28 ],
[ 0x13, 0xe5 ],
[ 0x14, 0x48 ],
[ 0x2c, 0x0c ],
[ 0x33, 0x78 ],
[ 0x3a, 0x33 ],
[ 0x3b, 0xfB ],
[ 0x3e, 0x00 ],
[ 0x43, 0x11 ],
[ 0x16, 0x10 ],
[ 0x39, 0x92 ],
[ 0x35, 0xda ],
[ 0x22, 0x1a ],
[ 0x37, 0xc3 ],
[ 0x23, 0x00 ],
[ 0x34, 0xc0 ],
[ 0x36, 0x1a ],
[ 0x06, 0x88 ],
[ 0x07, 0xc0 ],
[ 0x0d, 0x87 ],
[ 0x0e, 0x41 ],
[ 0x4c, 0x00 ],
[ 0x48, 0x00 ],
[ 0x5B, 0x00 ],
[ 0x42, 0x03 ],
[ 0x4a, 0x81 ],
[ 0x21, 0x99 ],
[ 0x24, 0x40 ],
[ 0x25, 0x38 ],
[ 0x26, 0x82 ],
[ 0x5c, 0x00 ],
[ 0x63, 0x00 ],
[ 0x61, 0x70 ],
[ 0x62, 0x80 ],
[ 0x7c, 0x05 ],
[ 0x20, 0x80 ],
[ 0x28, 0x30 ],
[ 0x6c, 0x00 ],
[ 0x6d, 0x80 ],
[ 0x6e, 0x00 ],
[ 0x70, 0x02 ],
[ 0x71, 0x94 ],
[ 0x73, 0xc1 ],
[ 0x12, 0x40 ],
[ 0x17, 0x11 ],
[ 0x18, 0x43 ],
[ 0x19, 0x00 ],
[ 0x1a, 0x4b ],
[ 0x32, 0x09 ],
[ 0x37, 0xc0 ],
[ 0x4f, 0x60 ],
[ 0x50, 0xa8 ],
[ 0x6d, 0x00 ],
[ 0x3d, 0x38 ],
[ 0x46, 0x3f ],
[ 0x4f, 0x60 ],
[ 0x0c, 0x3c ],
[ 0xff, 0x00 ],
[ 0xe5, 0x7f ],
[ 0xf9, 0xc0 ],
[ 0x41, 0x24 ],
[ 0xe0, 0x14 ],
[ 0x76, 0xff ],
[ 0x33, 0xa0 ],
[ 0x42, 0x20 ],
[ 0x43, 0x18 ],
[ 0x4c, 0x00 ],
[ 0x87, 0xd5 ],
[ 0x88, 0x3f ],
[ 0xd7, 0x03 ],
[ 0xd9, 0x10 ],
[ 0xd3, 0x82 ],
[ 0xc8, 0x08 ],
[ 0xc9, 0x80 ],
[ 0x7c, 0x00 ],
[ 0x7d, 0x00 ],
[ 0x7c, 0x03 ],
[ 0x7d, 0x48 ],
[ 0x7d, 0x48 ],
[ 0x7c, 0x08 ],
[ 0x7d, 0x20 ],
[ 0x7d, 0x10 ],
[ 0x7d, 0x0e ],
[ 0x90, 0x00 ],
[ 0x91, 0x0e ],
[ 0x91, 0x1a ],
[ 0x91, 0x31 ],
[ 0x91, 0x5a ],
[ 0x91, 0x69 ],
[ 0x91, 0x75 ],
[ 0x91, 0x7e ],
[ 0x91, 0x88 ],
[ 0x91, 0x8f ],
[ 0x91, 0x96 ],
[ 0x91, 0xa3 ],
[ 0x91, 0xaf ],
[ 0x91, 0xc4 ],
[ 0x91, 0xd7 ],
[ 0x91, 0xe8 ],
[ 0x91, 0x20 ],
[ 0x92, 0x00 ],
[ 0x93, 0x06 ],
[ 0x93, 0xe3 ],
[ 0x93, 0x05 ],
[ 0x93, 0x05 ],
[ 0x93, 0x00 ],
[ 0x93, 0x04 ],
[ 0x93, 0x00 ],
[ 0x93, 0x00 ],
[ 0x93, 0x00 ],
[ 0x93, 0x00 ],
[ 0x93, 0x00 ],
[ 0x93, 0x00 ],
[ 0x93, 0x00 ],
[ 0x96, 0x00 ],
[ 0x97, 0x08 ],
[ 0x97, 0x19 ],
[ 0x97, 0x02 ],
[ 0x97, 0x0c ],
[ 0x97, 0x24 ],
[ 0x97, 0x30 ],
[ 0x97, 0x28 ],
[ 0x97, 0x26 ],
[ 0x97, 0x02 ],
[ 0x97, 0x98 ],
[ 0x97, 0x80 ],
[ 0x97, 0x00 ],
[ 0x97, 0x00 ],
[ 0xc3, 0xed ],
[ 0xa4, 0x00 ],
[ 0xa8, 0x00 ],
[ 0xc5, 0x11 ],
[ 0xc6, 0x51 ],
[ 0xbf, 0x80 ],
[ 0xc7, 0x10 ],
[ 0xb6, 0x66 ],
[ 0xb8, 0xA5 ],
[ 0xb7, 0x64 ],
[ 0xb9, 0x7C ],
[ 0xb3, 0xaf ],
[ 0xb4, 0x97 ],
[ 0xb5, 0xFF ],
[ 0xb0, 0xC5 ],
[ 0xb1, 0x94 ],
[ 0xb2, 0x0f ],
[ 0xc4, 0x5c ],
[ 0xc0, 0x64 ],
[ 0xc1, 0x4B ],
[ 0x8c, 0x00 ],
[ 0x86, 0x3D ],
[ 0x50, 0x00 ],
[ 0x51, 0xC8 ],
[ 0x52, 0x96 ],
[ 0x53, 0x00 ],
[ 0x54, 0x00 ],
[ 0x55, 0x00 ],
[ 0x5a, 0xC8 ],
[ 0x5b, 0x96 ],
[ 0x5c, 0x00 ],
[ 0xd3, 0x00 ],
[ 0xc3, 0xed ],
[ 0x7f, 0x00 ],
[ 0xda, 0x00 ],
[ 0xe5, 0x1f ],
[ 0xe1, 0x67 ],
[ 0xe0, 0x00 ],
[ 0xdd, 0x7f ],
[ 0x05, 0x00 ],
[ 0x12, 0x40 ],
[ 0xd3, 0x04 ],
[ 0xc0, 0x16 ],
[ 0xC1, 0x12 ],
[ 0x8c, 0x00 ],
[ 0x86, 0x3d ],
[ 0x50, 0x00 ],
[ 0x51, 0x2C ],
[ 0x52, 0x24 ],
[ 0x53, 0x00 ],
[ 0x54, 0x00 ],
[ 0x55, 0x00 ],
[ 0x5A, 0x2c ],
[ 0x5b, 0x24 ],
[ 0x5c, 0x00 ],
[ 0xff, 0xff ],
]
OV2640_YUV422=[
[ 0xFF, 0x00 ],
[ 0x05, 0x00 ],
[ 0xDA, 0x10 ],
[ 0xD7, 0x03 ],
[ 0xDF, 0x00 ],
[ 0x33, 0x80 ],
[ 0x3C, 0x40 ],
[ 0xe1, 0x77 ],
[ 0x00, 0x00 ],
[ 0xff, 0xff ],
]
OV2640_JPEG= [
[ 0xe0, 0x14 ],
[ 0xe1, 0x77 ],
[ 0xe5, 0x1f ],
[ 0xd7, 0x03 ],
[ 0xda, 0x10 ],
[ 0xe0, 0x00 ],
[ 0xFF, 0x01 ],
[ 0x04, 0x08 ],
[ 0xff, 0xff ],
]
OV2640_160x120_JPEG = [
[ 0xff, 0x01 ],
[ 0x12, 0x40 ],
[ 0x17, 0x11 ],
[ 0x18, 0x43 ],
[ 0x19, 0x00 ],
[ 0x1a, 0x4b ],
[ 0x32, 0x09 ],
[ 0x4f, 0xca ],
[ 0x50, 0xa8 ],
[ 0x5a, 0x23 ],
[ 0x6d, 0x00 ],
[ 0x39, 0x12 ],
[ 0x35, 0xda ],
[ 0x22, 0x1a ],
[ 0x37, 0xc3 ],
[ 0x23, 0x00 ],
[ 0x34, 0xc0 ],
[ 0x36, 0x1a ],
[ 0x06, 0x88 ],
[ 0x07, 0xc0 ],
[ 0x0d, 0x87 ],
[ 0x0e, 0x41 ],
[ 0x4c, 0x00 ],
[ 0xff, 0x00 ],
[ 0xe0, 0x04 ],
[ 0xc0, 0x64 ],
[ 0xc1, 0x4b ],
[ 0x86, 0x35 ],
[ 0x50, 0x92 ],
[ 0x51, 0xc8 ],
[ 0x52, 0x96 ],
[ 0x53, 0x00 ],
[ 0x54, 0x00 ],
[ 0x55, 0x00 ],
[ 0x57, 0x00 ],
[ 0x5a, 0x28 ],
[ 0x5b, 0x1e ],
[ 0x5c, 0x00 ],
[ 0xe0, 0x00 ],
[ 0xff, 0xff ],
]
OV2640_176x144_JPEG=[
[ 0xff, 0x01 ],
[ 0x12, 0x40 ],
[ 0x17, 0x11 ],
[ 0x18, 0x43 ],
[ 0x19, 0x00 ],
[ 0x1a, 0x4b ],
[ 0x32, 0x09 ],
[ 0x4f, 0xca ],
[ 0x50, 0xa8 ],
[ 0x5a, 0x23 ],
[ 0x6d, 0x00 ],
[ 0x39, 0x12 ],
[ 0x35, 0xda ],
[ 0x22, 0x1a ],
[ 0x37, 0xc3 ],
[ 0x23, 0x00 ],
[ 0x34, 0xc0 ],
[ 0x36, 0x1a ],
[ 0x06, 0x88 ],
[ 0x07, 0xc0 ],
[ 0x0d, 0x87 ],
[ 0x0e, 0x41 ],
[ 0x4c, 0x00 ],
[ 0xff, 0x00 ],
[ 0xe0, 0x04 ],
[ 0xc0, 0x64 ],
[ 0xc1, 0x4b ],
[ 0x86, 0x35 ],
[ 0x50, 0x92 ],
[ 0x51, 0xc8 ],
[ 0x52, 0x96 ],
[ 0x53, 0x00 ],
[ 0x54, 0x00 ],
[ 0x55, 0x00 ],
[ 0x57, 0x00 ],
[ 0x5a, 0x2c ],
[ 0x5b, 0x24 ],
[ 0x5c, 0x00 ],
[ 0xe0, 0x00 ],
[ 0xff, 0xff ],
]
OV2640_320x240_JPEG=[
[ 0xff, 0x01 ],
[ 0x12, 0x40 ],
[ 0x17, 0x11 ],
[ 0x18, 0x43 ],
[ 0x19, 0x00 ],
[ 0x1a, 0x4b ],
[ 0x32, 0x09 ],
[ 0x4f, 0xca ],
[ 0x50, 0xa8 ],
[ 0x5a, 0x23 ],
[ 0x6d, 0x00 ],
[ 0x39, 0x12 ],
[ 0x35, 0xda ],
[ 0x22, 0x1a ],
[ 0x37, 0xc3 ],
[ 0x23, 0x00 ],
[ 0x34, 0xc0 ],
[ 0x36, 0x1a ],
[ 0x06, 0x88 ],
[ 0x07, 0xc0 ],
[ 0x0d, 0x87 ],
[ 0x0e, 0x41 ],
[ 0x4c, 0x00 ],
[ 0xff, 0x00 ],
[ 0xe0, 0x04 ],
[ 0xc0, 0x64 ],
[ 0xc1, 0x4b ],
[ 0x86, 0x35 ],
[ 0x50, 0x89 ],
[ 0x51, 0xc8 ],
[ 0x52, 0x96 ],
[ 0x53, 0x00 ],
[ 0x54, 0x00 ],
[ 0x55, 0x00 ],
[ 0x57, 0x00 ],
[ 0x5a, 0x50 ],
[ 0x5b, 0x3c ],
[ 0x5c, 0x00 ],
[ 0xe0, 0x00 ],
[ 0xff, 0xff ],
]
OV2640_352x288_JPEG=[
[ 0xff, 0x01 ],
[ 0x12, 0x40 ],
[ 0x17, 0x11 ],
[ 0x18, 0x43 ],
[ 0x19, 0x00 ],
[ 0x1a, 0x4b ],
[ 0x32, 0x09 ],
[ 0x4f, 0xca ],
[ 0x50, 0xa8 ],
[ 0x5a, 0x23 ],
[ 0x6d, 0x00 ],
[ 0x39, 0x12 ],
[ 0x35, 0xda ],
[ 0x22, 0x1a ],
[ 0x37, 0xc3 ],
[ 0x23, 0x00 ],
[ 0x34, 0xc0 ],
[ 0x36, 0x1a ],
[ 0x06, 0x88 ],
[ 0x07, 0xc0 ],
[ 0x0d, 0x87 ],
[ 0x0e, 0x41 ],
[ 0x4c, 0x00 ],
[ 0xff, 0x00 ],
[ 0xe0, 0x04 ],
[ 0xc0, 0x64 ],
[ 0xc1, 0x4b ],
[ 0x86, 0x35 ],
[ 0x50, 0x89 ],
[ 0x51, 0xc8 ],
[ 0x52, 0x96 ],
[ 0x53, 0x00 ],
[ 0x54, 0x00 ],
[ 0x55, 0x00 ],
[ 0x57, 0x00 ],
[ 0x5a, 0x58 ],
[ 0x5b, 0x48 ],
[ 0x5c, 0x00 ],
[ 0xe0, 0x00 ],
[ 0xff, 0xff ],
]
OV2640_640x480_JPEG=[
[0xff, 0x01],
[0x11, 0x01],
[0x12, 0x00],
[0x17, 0x11],
[0x18, 0x75],
[0x32, 0x36],
[0x19, 0x01],
[0x1a, 0x97],
[0x03, 0x0f],
[0x37, 0x40],
[0x4f, 0xbb],
[0x50, 0x9c],
[0x5a, 0x57],
[0x6d, 0x80],
[0x3d, 0x34],
[0x39, 0x02],
[0x35, 0x88],
[0x22, 0x0a],
[0x37, 0x40],
[0x34, 0xa0],
[0x06, 0x02],
[0x0d, 0xb7],
[0x0e, 0x01],
[0xff, 0x00],
[0xe0, 0x04],
[0xc0, 0xc8],
[0xc1, 0x96],
[0x86, 0x3d],
[0x50, 0x89],
[0x51, 0x90],
[0x52, 0x2c],
[0x53, 0x00],
[0x54, 0x00],
[0x55, 0x88],
[0x57, 0x00],
[0x5a, 0xa0],
[0x5b, 0x78],
[0x5c, 0x00],
[0xd3, 0x04],
[0xe0, 0x00],
[0xff, 0xff],
]
OV2640_800x600_JPEG=[
[0xff, 0x01],
[0x11, 0x01],
[0x12, 0x00],
[0x17, 0x11],
[0x18, 0x75],
[0x32, 0x36],
[0x19, 0x01],
[0x1a, 0x97],
[0x03, 0x0f],
[0x37, 0x40],
[0x4f, 0xbb],
[0x50, 0x9c],
[0x5a, 0x57],
[0x6d, 0x80],
[0x3d, 0x34],
[0x39, 0x02],
[0x35, 0x88],
[0x22, 0x0a],
[0x37, 0x40],
[0x34, 0xa0],
[0x06, 0x02],
[0x0d, 0xb7],
[0x0e, 0x01],
[0xff, 0x00],
[0xe0, 0x04],
[0xc0, 0xc8],
[0xc1, 0x96],
[0x86, 0x35],
[0x50, 0x89],
[0x51, 0x90],
[0x52, 0x2c],
[0x53, 0x00],
[0x54, 0x00],
[0x55, 0x88],
[0x57, 0x00],
[0x5a, 0xc8],
[0x5b, 0x96],
[0x5c, 0x00],
[0xd3, 0x02],
[0xe0, 0x00],
[0xff, 0xff],
]
OV2640_1024x768_JPEG=[
[0xff, 0x01],
[0x11, 0x01],
[0x12, 0x00],
[0x17, 0x11],
[0x18, 0x75],
[0x32, 0x36],
[0x19, 0x01],
[0x1a, 0x97],
[0x03, 0x0f],
[0x37, 0x40],
[0x4f, 0xbb],
[0x50, 0x9c],
[0x5a, 0x57],
[0x6d, 0x80],
[0x3d, 0x34],
[0x39, 0x02],
[0x35, 0x88],
[0x22, 0x0a],
[0x37, 0x40],
[0x34, 0xa0],
[0x06, 0x02],
[0x0d, 0xb7],
[0x0e, 0x01],
[0xff, 0x00],
[0xc0, 0xC8],
[0xc1, 0x96],
[0x8c, 0x00],
[0x86, 0x3D],
[0x50, 0x00],
[0x51, 0x90],
[0x52, 0x2C],
[0x53, 0x00],
[0x54, 0x00],
[0x55, 0x88],
[0x5a, 0x00],
[0x5b, 0xC0],
[0x5c, 0x01],
[0xd3, 0x02],
[0xff, 0xff],
]
OV2640_1280x1024_JPEG=[
[0xff, 0x01],
[0x11, 0x01],
[0x12, 0x00],
[0x17, 0x11],
[0x18, 0x75],
[0x32, 0x36],
[0x19, 0x01],
[0x1a, 0x97],
[0x03, 0x0f],
[0x37, 0x40],
[0x4f, 0xbb],
[0x50, 0x9c],
[0x5a, 0x57],
[0x6d, 0x80],
[0x3d, 0x34],
[0x39, 0x02],
[0x35, 0x88],
[0x22, 0x0a],
[0x37, 0x40],
[0x34, 0xa0],
[0x06, 0x02],
[0x0d, 0xb7],
[0x0e, 0x01],
[0xff, 0x00],
[0xe0, 0x04],
[0xc0, 0xc8],
[0xc1, 0x96],
[0x86, 0x3d],
[0x50, 0x00],
[0x51, 0x90],
[0x52, 0x2c],
[0x53, 0x00],
[0x54, 0x00],
[0x55, 0x88],
[0x57, 0x00],
[0x5a, 0x40],
[0x5b, 0xf0],
[0x5c, 0x01],
[0xd3, 0x02],
[0xe0, 0x00],
[0xff, 0xff],
]
OV2640_1600x1200_JPEG=[
[0xff, 0x01],
[0x11, 0x01],
[0x12, 0x00],
[0x17, 0x11],
[0x18, 0x75],
[0x32, 0x36],
[0x19, 0x01],
[0x1a, 0x97],
[0x03, 0x0f],
[0x37, 0x40],
[0x4f, 0xbb],
[0x50, 0x9c],
[0x5a, 0x57],
[0x6d, 0x80],
[0x3d, 0x34],
[0x39, 0x02],
[0x35, 0x88],
[0x22, 0x0a],
[0x37, 0x40],
[0x34, 0xa0],
[0x06, 0x02],
[0x0d, 0xb7],
[0x0e, 0x01],
[0xff, 0x00],
[0xe0, 0x04],
[0xc0, 0xc8],
[0xc1, 0x96],
[0x86, 0x3d],
[0x50, 0x00],
[0x51, 0x90],
[0x52, 0x2c],
[0x53, 0x00],
[0x54, 0x00],
[0x55, 0x88],
[0x57, 0x00],
[0x5a, 0x90],
[0x5b, 0x2C],
[0x5c, 0x05],
[0xd3, 0x02],
[0xe0, 0x00],
[0xff, 0xff],
]
終わり
初投稿の記事ですので読みにくいところや、マナー違反等があるかもしれませんが、その時は教えて下さい。また、何かご質問等があればとりあえず聞いてみてください。