C328R 串行摄像头与 xBee 的 C# 示例





3.00/5 (6投票s)
C328R 串行摄像头与 xBee 的 C# 示例
引言
这是一个示例程序,展示了如何使用连接到您的 PC 的 xBee 模块和连接到 CR328R 摄像头的 xBee 模块,通过 CR328R 串口摄像头捕获图像。理论上,您应该能够使用直接连接到摄像头的 PC 上的串口接口,并使用此软件。
背景
我正在构建一个坦克机器人,它可以通过连接到我的 PC 的 Wii 遥控器驱动,然后我的 PC 使用 xBee Pro 将命令转发到我的坦克,xBee Pro 的范围是 1 英里。 当我这样做时,我想升级我正在使用的摄像头的范围,因为我的旧摄像头的范围只有 100 英尺或更短。 所以我决定使用串口摄像头和 xBee 模块,这样我的摄像头的范围就和我的坦克的范围一样了。
我的工作基于 Pavel Bánský 的出色工作,他创建了一个类,用于从使用 .NET Micro Framework 的名为 Tahoe 开发板的硬件设备中获取 CR328R 摄像头的图像。 因为他使用了 .NET Micro Framework,所以我只需要修改代码以使用 SerialPort 类并考虑 xBee 的小缓冲区大小。
硬件连接
我将摄像头的 TX 引脚连接到 xBee 的 DIN 引脚。 然后我将摄像头的 Rx 引脚连接到 xBee 的 DOUT。 因为摄像头和 xBee 模块都在 3.3 伏电压下工作,所以我使用 3.3V 稳压器为摄像头和 xBee 供电。 我还在 PWM0 引脚和地之间串联了一个电阻和一个 LED。 这会让你知道你的 xBee 何时收到信息。
我的 xBee Pro 设置为 57600 波特。
软件
当程序启动时,点击“Init”,以便摄像头可以启动并初始化为 xBee 的波特率。 之后,您可以点击“Get Now”,它使用 GetJpegPicture 函数来拍摄照片并立即开始将其传输到您的计算机。 或者您可以点击“Snapshot”,它将 JPEG 图像存储在摄像头上的内置内存中,然后开始将其传输到您的计算机。 一旦这些工作对您有用,点击“Movie”以显示 10 个连续图片的剪辑。
关注点
我只能让这个摄像头的 JPEG 选项工作,所以 GetRawPicture 函数不起作用。 我认为这是由于 xBee 的小缓冲区大小。 因为 GetRawPicture 函数不起作用,所以帧速率受到限制。 在 80X64 中,我只能每 1.14 秒获得 1 帧,在 160x128 中,我只能每 2.5 秒获得一帧,并且从那里开始变得越来越糟。 我希望以后能找到一种方法让 GetRawPicture 工作。
使用这款相机可能会令人沮丧。 有时它似乎不想拍照,所以你必须点击 Reset 或 Init Camera。 似乎如果你不不断地拍照,相机或 xBee 就会进入睡眠状态,所以我必须点击 Reset 来唤醒它。 其他时候我必须重新启动应用程序。
未完成的任务
1. 使其更可靠。
2. 速度。 尝试让 GetRawPicture 工作,看看我是否可以通过降低颜色深度来提高帧速率。
历史
2009 年 4 月 4 日 - 首次发布