Digital Camera Interface

Iņaki Navarro Oiza

Report ::: Code ::: Slides


The aim of this project is the development and construction of an interface between a CMOS camera and a computer. This interface allows a user to get images from the camera, to change some of the properties of the camera as brightness, luminance, etc from a computer. Also some image process is implemented allowing the camera to track white objects and follow them with a servomotor. The interface was implemented using the Atmel AVR ATmega16 microcontroller.

The Camera

The Camera called c3088 uses a CMOS image sensor OV6620 from Omnivision . It has a digital video port that supplies a continuous 8/16 bit image data stream. All the camera functions, such as exposure, gamma, gain, white balance, windowing, can be changed through I2C interface by writing in some registers.

The System

The communication from the microcontroller to the camera to change the properties of the camera is made using the I2C. The images from the camera are read following the Zoom Video Port Format implemented by the camera. The images read are in black and white because only the Y channel is read. To control all this communications the microcontroller is connected to the computer via serial port. The microcontroller read commands from the computer and perform the appropriate actions. The serial port is also used to receive the images in BMP format

Some image process is made to detect the center of a white object. The microcontroller can use this information to track white objects with a servo motor. The servomotor is also used to get panoramic images by changing the position of the camera while taking the photo

Some pictures taken with the camera

Normal Images

Panoramic Image

More information

More information about electronics and robotics can be found in and in