Arduino Due + CMOS Camera (Image Sensor)

Hi All,

I am new to the Arduino world and have very little background in micro-controllers. But I am required to work on a project that captures an image using a CMOS camera and transfers it initially to a PC. At some point in the future there will be a SD card involved and bluetooth. But for now my first goal is to interface with the CMOS camera, grab an image, and transfer it to a PC using an Arduino for analysis purposes.

There are no strict requirements as of now for speed etc.

From what I have gathered so far in the posts and replies related to the Arduino/CMOS camera, the Arduino may be limited or a "work around" is required to perform this task due to memory issues. But I have not seen anyone use the Arduino Due yet and I understand this is a fairly new board. But my question is, the Arduino Due seems to be a better performing board with increased memory, can I still use this board ? I plan on initially talking to the sensor through the USB 2.0 interface

The Arduino due link is: http://arduino.cc/en/Main/ArduinoBoardDue
The Aptina Image sensor i plan to use is here e.x.: http://www.1stvision.com/cameras/sensor_specs/Aptina-MT9T031_3100_PB.pdf

If anyone has had any experience/success with Image sensors and can guide me in anyway I would appreciate it. Thanks !

Yes a Due would be possible to use for this unlike all the other arduino boards.
However, I don't think a USB driver for input has been written yet and seeing how new you are I don't think you will be writing one.
In the mean time just calculate how long it will take to transfer an image through the serial port.

Hi Grumpy_Mike,

Thank you for the reply and info.

The TWI or I2C interface for the Atmel chip has a max of 400Kbits per second. The sensor has active pixels of 2,048H x 1,536V. Assuming that I had an image that is 3.1 MB ((uncompressed 8 bits/pixel - Bayer mask)), the transfer rate would be ~7.75 seconds for a Raw image without compression.

The TWI or I2C interface for the Atmel chip has a max of 400Kbits per second.

Are you going to use the I2C to transfer the data? If so what will pick it up?
Even so you are out on those calculations. 400Kbits per second transfer speed but it thakes 10 bits to transfer a byte with a start and stop bit so that gives you a transfer time of 78 seconds.

Hi msingh,
Here is a website for interfacing CMOS camera modules with Arduino.
www.arducam.com
I looked into their opensource library, they use the Arduino hardware I2C and Wire library to configurate camera registers. It maybe useful for you to configurate your camera module.
They also give out a tutorial which transfer the image wirelessly with bluetooth, you can find it here:

Hope these will help you.
Regards

Here is a website for interfacing CMOS camera modules with Arduino.
www.arducam.com

A very odd web site.

It says it is an open source project but I could not find any schematics on the site. I could not find out where to buy one from or even the price. Is is hard to say exactly what part the arduino plays in the image capture and data processing process.

Those are actually not cheap, they go for about $80 on ebay, and thats just the LCD and standard camera unit.

Grumpy_Mike:

Here is a website for interfacing CMOS camera modules with Arduino.
www.arducam.com

A very odd web site.

Agreed. There doesn't seem to be any information about how to make/buy any of the hardware, and the number of spelling and grammatical mistakes is unusually high.

@Grumpy_Mike

Thank you for correcting my calculations. Just looking at the schematic for the sensor, there is a SData and SClk input that feeds in from the microcontroller, so I assumed that would require the TWI or I2C interface. And if this is case, with a 78 second transfer, I would probably have to compress the image prior to releasing it for a reduced transfer time. Is this correct ? Are there any other methods ? Also how how do I begin looking into compression ?

I was not sure about your reference to "pick up" ? Is it the pick up resistors ? If so they are 1.5Kohm for the clock and data line and 10Kohm for reset.

@ArduFans

Thank you for the link. I will look into it shortly.