我有一个 CMOS 摄像头,它只有 3 个引脚(v+、gnd 和视频输出),视频输出是模拟信号。
经过一些研究,我发现这款相机使用PC1089K CMOS传感器,它具有数字输出和用于与串行EEPROM存储器(AT24C16K芯片)通信的I2C连接。
我找到了 I2C 引脚,我需要知道是否可以使用 Arduino 或 Raspberry-pi 从摄像头获取数据,以便我可以通过 Xbee 发送视频流。
简答?绝对不是。如果没有专用的硬件压缩器,实际上不可能通过低带宽连接(如 I2C)发送视频数据。
原因是什么? I2C 最大时钟速度为 400kHz。假设每个字节在 10 个时钟周期内发送(这有点多,因为您还必须发送地址,但无论如何......)。这意味着 40kB/s。假设您仅使用一个字节对每个像素进行编码(非常差,它是 256 色设置,请参见例如此图像)。每秒有 40k 像素。正确的视频速度是每秒 25 帧,但让我们降低到每秒 1 帧(您每秒会看到一张图像,就像您打开低质量凸轮视图时一样)。所以每张图像都是 40k 像素。这意味着帧大小约为 240x180。因此,您的视图非常小(比 youtube 中最差的图像设置还要小),每秒一张图片,只有 256 种颜色,这是您在最佳条件下可以实现的最佳效果...好吧,不,您绝对可以
此外,当您有疑问时,请阅读手册(或在电子领域,阅读数据表)。例如,您可以在here找到它。
您可以看到 I2C 接口被标记为主接口(这意味着相机拥有总线),并且,多读一点,您会发现它的唯一用途是允许用户(或设计人员)放置一个I2C EEPROM 为寄存器提供初始化值。
因此,从相机获取视频的唯一方法是通过模拟端口。没有其他接口,您也不能在不进行压缩的情况下使用低带宽通道(如 I2C 甚至 XBee 通道)。
现在,如果您必须无线传输视频,我建议您按照偏好顺序,
旧答案,旧错误。 I2C有多种速度模式: 标准模式(100kbps), 快速模式(400kbps), 快速模式 Plus (1Mbps), 高速模式(3.4Mbps)和 超快速模式 (5Mbps)。
UM10204 I2C 总线规范和用户手册 Rev. 6 - 2014 年 4 月 4 日,第 3.2 节(第 23-64 页) 解释一下超快速模式,好吗? 2014!
因此,告诉某人放弃一个项目、不熟悉某个主题或者对某个主题没有或了解有限,这是愚蠢的!
如今,基本上所有手机都通过 I2C 与所有模块进行通信,甚至包括相机!