Reputation: 9
I have a CMOS camera and it just has 3 pins (v+,gnd and video out), the video output is an analog signal.
Doing some rechearch, I find that this camera uses a PC1089K CMOS sensor, whish has a digital output and an I2C connection used to communicate with a Serial EEPROM memory ( a AT24C16K chip).
I located the I2C pins, and I need to know if I can use Arduino or Raspberry-pi to get the data from the camera so I can send the video stream over Xbee.
Upvotes: -1
Views: 8493
Reputation: 1
Old answer, old mistake. I2C has several speed modes: Standard-mode (100kbps), Fast-mode (400kbps), Fast-mode Plus (1Mbps), High-speed mode (3.4Mbps) and Ultra-Fast mode (5Mbps).
UM10204 I2C-bus specification and user manual Rev. 6 - 4 April 2014, section 3.2 (page 23-64) Explains about Ultra-Fast mode, ok? 2014!
So, telling someone to give up a project, being unfamiliar with a subjec or having no or limited knowledge of a topic, that's stupid!
Today, basically all cellphones comunicates in I2C with all modules, even the camera!
Upvotes: 0
Reputation: 2880
Short answer? Absolutely not. It is practically impossible to send video data through a low bandwidth connection (like the I2C) without a dedicated hardware compressor.
The reason? I2C maximum clock speed is 400kHz. Let's say that every byte is sent in 10 clock cycles (it is a bit more, since you have to send out also the address, but anyway...). This means 40kB/s. Let's say you are coding each pixel with only one byte (VERY poor, it's the 256 colors setting, see for instance this image). You have 40k pixels per second. A proper video speed is 25 frames per second, but let's go down to 1 frame per second (you will see ONE image every second, like whn you open low quality cam view). so every image is 40k pixels. This means a frame about 240x180. So you have a VERY little view (smaller than the worst image setting in youtube), with one picture per second, with only 256 colors and that is the best you can achieve in the best conditions... Well, no, you definitely can't.
Moreover when you are in doubt, read the manual (or in the electronics field, the datasheet). You can find it here, for instance.
You can see that the I2C interface is labelled as master (this means that the camera OWNS the bus) and, reading a bit more, you will find that the only usage for this is to allow the user (or designer) to put an I2C EEPROM to provide initialization values for the registers.
So, the only way to get the video from your camera is through the analog port. There is no other interface, nor you can use a low bandwidth channel (like I2C or even the XBee one) without a compression.
Now, if you have to transmit video wirelessly I suggest you to, in order of preference,
Upvotes: 6