我正在尝试将相机模块连接到我的 Arduino Mega,将我的 Mega 连接到我的 Android 手机(通过蓝牙或其他方式)并将相机的实时视图发送到手机。
我在网上看到了一段视频,其中显示了静态图像 - Arduino 上的相机模块捕获的图像被发送到 Android,几秒钟后查看输出图像(通过蓝牙发送图像的时间)。
这对实时视频而不是图像可行吗?如果是,如何?如果没有,有哪些解决方法?
我不认为你可以做实时视频——Arduino 上的串行带宽不是很高。它的最大值为每秒 115200 位。要获得每秒字节数,除以 10(通常为 8 + 2 位开销),即为每秒 11.5 KB。
一帧 640 x 480 视频是 640 x 480 x 3(每个颜色分量 RGB 一个字节)大约是 1000 KB。JPEG相机使用M-JPEG,它可以为您提供大约 20:1 的压缩率(请参阅 Wikipedia 文章),因此这可能会压缩到大约 1000K / 20 = 50K。所以相机需要以每秒11.5KB的速度传输50K,所以传输一帧至少需要四秒。然后它需要通过蓝牙传输或其他一些串行通信,至少需要四秒钟,所以总共八秒钟。您可能可以更快地并行执行此操作以使其总共达到 4 秒,但我对此表示怀疑,因为 Mega 芯片仅以 16 MHz 运行,因此在高度理想化的世界中,它最多只能处理 16 KB/秒。
在视频中,图像从相机到手机大约需要 10 秒,这与 8 秒的估计相当吻合。
您可以尝试较小的图像 - 比如 320 x 240,带有灰度(如果相机可以做到的话)。这将字节数减少了 12 倍,因此您每秒可能会获得 1.5 帧。
也许更好的解决方案是使用Raspberry Pi,它具有 1 GHz 处理器和 USB 2.0最高速度 280 Mbits/s,比 115200 bit/s 快一千多倍。
这是不可能的。你可以试试我的例子。通过蓝牙 4.0 将 320x240 图像传输到 Android 手机需要 15 秒。 http://privateblog.by/peredacha-kartinki-s-ov7670-cherez-arduino-uno-na-android-telefon/
这是我设法解决问题的方法,我安装了旧的野火IP网络摄像头,从我的nexus4设置了一个wifi热点,从野火连接到它,获取了野火的IP并将其放入nexus4的网络查看器中。