OV7670 Arduino Camera Sensor Module Framecapture Tutorial

188,633

135

103

Introduction: OV7670 Arduino Camera Sensor Module Framecapture Tutorial

Description

The camera module is powered from a single +3.3V power supply. An external oscillator provide the clock source for camera module XCLK pin. With proper configuration to the camera internal registers via I2C bus, then the camera supply pixel clock (PCLK) and camera data back to the host with synchronize signal like HREF and VSYNC. The OV7670 camera module is a low cost 0.3 mega pixel CMOS color camera module, it can output 640x480 VGA resolution image at 30fps. The OV7670 camera module build in onboard LDO regulator only single 3.3V power needed and can be used in Arduino, STM32,Chipkit, ARM, DSP , FPGA and etc.

Specification

  • Optical size 1/6 inch
  • Resolution 640x480 VGA
  • Onboard regulator, only single 3.3V supply needed
  • Mounted with high quality F1.8 / 6mm lens
  • High sensitivity for low-light operation
  • VarioPixel® method for sub-sampling
  • Automatic image control functions including: Automatic
  • Exposure Control (AEC), Automatic Gain Control (AGC), Automatic White Balance (AWB), Automatic
  • Band Filter (ABF), and Automatic Black-Level Calibration (ABLC)
  • Image quality controls including color saturation, hue, gamma, sharpness (edge enhancement), and anti-blooming
  • ISP includes noise reduction and defect correction
  • Supports LED and flash strobe mode
  • Supports scaling
  • Lens shading correction
  • Flicker (50/60 Hz) auto detection
  • Saturation level auto adjust (UV adjust)
  • Edge enhancement level auto adjust
  • De-noise level auto adjust

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Material Preparation

In this tutorial, you will need :

1. Arduino Uno Board and USB
2. OV7670 Arduino Camera Sensor Module STM32
3.10K resistor X 2
4. 4.7K Resistor X2
5. Breadboard

and you will be using Arduino IDE and Java.

Step 2: Pinout Connection

Connect your circuit as illustrated on the picture above.

Step 3: Java

You have to download this to be able to interface this camera sensor module on your pc.Open the zip file and install to your computer. By default, this will be install to your c drive in your program files folder. As for mine, it is stored in C:\Program Files\Java\jdk1.8.0_74. You can refer picture above.

NOTE : This jdk-8u74-windows-i586.rar file is quite big.

Step 4: Sample Source Code

This sample source code is originally from this link. Download this sample source code, open it on your Arduino IDE, connect your Arduino Uno Board to your computer and upload it. Select the correct board and port before uploading this source code. Refer image above for help.

NOTE : Don't mind that it does not recognize some libraries in the beginning of the file. If it bothers you, comment the whole line out with //

Step 5: Checking Your Port

Find out what USB port your Arduino is connected to, something like COM4 or COM5. You could check it on your Control Panel > Device Manager > Ports (COM & LPT) > right click > Properties > Port Settings > Advanced > COM Port Number > /Select Your Port Number/. You can refer the image above for help. As for mine, it is port COM5.

Step 6: Com_#.rar

Depending on what port number your Arduino is connected to, download the corresponding file. COM1 = com_1.rar , COM2 = com_2.rar and etc. Open your com#.rar on WinRaR, extract/copy the 'code' folder from com_#.rar, go to Local Disk > Program Files > Java > jdk1.8.0_74 > bin and paste it there. you can refer the picture above for a better understanding.

Step 7: C:\out

You have to create a new folder on your c drive / Local Disk (C:). This will be your camera module sensor's taken picture's destination. Name this folder as out (it could be anything though).

Step 8: Extra.rar

1. Download and extract the Extra.rar file below and open it. As you could see, there is src folder, lib folder and "win32com.dll". You have to copy and placed "win32com.dll" in the "C:\Program Files\Java\jdk1.8.0_74\jre\bin" directory.

2. Then, open the lib and you could see the "comm.jar" and "javax.comm.properties" in it. Copy and paste the "comm.jar" in "C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext" and "javax.comm.properties" in the "C:\Program Files\Java\jdk1.8.0_74\jre\lib" directory.

NOTE : it may ask for administrator permission, just proceed anyway.

Step 9: CMD

Open cmd and open the folder wherein the code folder is by writing its address. mine is "C:\Program Files\Java\jdk1.8.0_74\bin". Click enter and it will give u "C:\Program Files\Java\jdk1.8.0_74\bin>". Now, write "java code.SimpleRead". It supposed to be like this---> C:\Program Files\Java\jdk1.8.0_74\bin>java code. SimpleRead. You can refer image for help.

Step 10: Result

You can see the picture taken from your OV7670 Camera Module Sensor in your our folder in c drive.

Step 11: Troubleshooting

1. If your cmd cannot find images, try switching the USB of the arduino from a USB2.0 to a USB3.0 (blue socket) or vice versa.

2 If you receive scrambles pictures, you need to edit the sample source code. Edit line: wrReg(0x11, 12); try changing the 12 to 11/10/9/13. Upload it to the arduino and run the cmd code again.

15 People Made This Project!

Recommendations

  • Trash to Treasure Contest

    Trash to Treasure Contest
  • Raspberry Pi Contest 2020

    Raspberry Pi Contest 2020
  • Wearables Contest

    Wearables Contest

103 Discussions

0
Prabhu99
Prabhu99

4 weeks ago on Step 3

I have problem in extraction.
Please help by describing how to do the installation
Mine is Windows 10.

Winrar.png
0
ilkka.t.i.korhonen
ilkka.t.i.korhonen

2 months ago

Help! made with mac, serial port configured as stty -f /dev/cu.wchusbserial1430 76800 cs8 cstopb. Using this very same Java classes for reading from serial (except reading from file i.e. serial port which im using cu.wchusbserial1430 as above. I changed baud rate to be "25" so I think it is right since some pictures are coming from serial port. but its all distorted! trying to change that "12" value, with no success. even changed connections, and camera to another one, so it cannot be HW problem. any ideas?

1
Đăng1
Đăng1

4 months ago

i need help

Screenshot (26).png
0
Siedharrta
Siedharrta

Question 5 months ago on Step 7

Can i save this folder in another destination other than saving it in my Local Disk (C:)?

0
reebin
reebin

5 months ago

showing this error in cmd window ,,need help

Capture.JPG
0
sachinpal5888
sachinpal5888

Reply 5 months ago

same issue sir...

0
reebin
reebin

Reply 5 months ago

cmd shuld like this-"java code.SimpleRead"
not like this-"java code.simpleread",,,

1
sachinpal5888
sachinpal5888

Reply 5 months ago

Okk thank you sir

1
IbnumR
IbnumR

Question 6 months ago

Hello, i need help,
i want to use Arduino Mega 2560 to my project, what should i do with the pin?
(in step 2)

0
EonYoloAvis
EonYoloAvis

Question 7 months ago

I need help on the CMD step, it keeps saying it is not recognised or an internal or external command
0
ErwinB19
ErwinB19

Question 8 months ago on Step 11

Probably a newbie question, but I see almost all pins interfacing to camera module. Does this mean you need a 'mega' if you want additional modules /functionality?

0
sampinjons1
sampinjons1

10 months ago

Hi,
I can't understand how the arduino knows that pictures need to save in "out" folder"?
Btw, I have the same problem: Looking for image.

0
babro94
babro94

Reply 10 months ago

Hi,
I have the smae problems.....

0
gladyslau
gladyslau

Reply 8 months ago

I had this problem. I found it was due to an error in wiring: I accidentally wired XCLK to pin 10 instead of 11. The problem was solved after I corrected the wiring. Hope this helps.

0
ManojS72
ManojS72

9 months ago

Hi,

Thanks for this detailed post..
I have a requirement where image captured by camera is be sent to server in base64 format.
I guess, current captureImage function sends data to serial port.

How do we change that to capture it in base64 format and assign it to a variable?

Manoj

0
SameerD3
SameerD3

Question 9 months ago

how do i get coloured images , all i am getting are black and white images

0
ryan.avery.dev
ryan.avery.dev

2 years ago

I made it last night. I already had JDK installed b/c im a software developer but I had the 64bit JDK so when I did the instructions step by step and then tried to run the jar, it said something like "cannot run 32bit dll in 64 bit environment" so I got the 32 bit version of the latest jdk (just google "jdk 32 bit download" and then click first link. Then download the first one that says windows x86 and install that when it finishes downloading. Then you need to re-do this tutorial and any time he says "Program Files" you need to replace that with "Program Files (x86)" and then it should work.

7.bmp
0
Sujitg8
Sujitg8

Reply 10 months ago

but it says looking for image not going beyond that. please suggest something. i have cleared all errors but im stick here

Untitled.jpg
0
dhivakar183
dhivakar183

Reply 11 months ago

How to clear my problem

0
sreenum
sreenum

Reply 1 year ago

thank you so much bro!!

but still i have an error that it can found the image but the image was not saving into the system folder (out)