CMUcam3 帧抓取器#
The CMUcam3 Frame Grabber is a simple utility that can be used to test your CMUcam3. Its primary purpose is to act as a terminal program similar to HyperTerminal or Minicom. It also allows you to view jpeg images returned from the camera. You need run the CMUcam2 Emulation firmware on the camera to use this program. The Frame Grabber requires that you install .NET version 2.0 or later which can be found on our software page. Unfortunately, the CMUcam3 Frame Grabber only works in Windows. The source can be found in the tools directory (called cc3_image_viewer). For Linux or Mac, please try using the CMUcam2GUI.
要启动应用程序:
双击 CMUcam3 帧抓取器
从 "Available COM Ports" 下拉菜单中选择正确的 COM 端口
单击 "Connect" 按钮
打开运行 CMUcam2 仿真固件的 CMUcam3 电源(如果已开启则重启)
您应该会看到文本出现在 "Terminal Console" 窗口中
按 "Grab Image" 拍照
以下是界面 "Main" 选项卡上各字段的说明:
可用 COM 端口
这显示 Windows 识别的串行端口列表
波特率
如果您想将此程序用作终端客户端,这允许您更改波特率
超时
这设置程序可能正在等待的任何串行回复的超时
这通常不需要更改
连接
打开串行连接
断开连接
关闭串行连接
发送
此按钮将传输您在按钮左侧的文本框中键入的任何文本
文本框会自动添加一个回车符,因此只需单击 "Send" 就应该能从 CMUcam2 获得 ACK 响应
默认情况下,焦点在输入文本框上,因此您只需键入并按回车键即可发送数据
CIF / QCIF
这些按钮设置正在显示的图像的分辨率
默认情况下,CMUcam3 将发送一幅经过缩放以填满整个窗口的低分辨率图像
抓取图像
这将 "SJ"(发送 JPEG)命令发送到 CMUcam3 并显示结果
循环
此复选框使客户端每隔 "Refresh Interval" 毫秒自动按下 "Grab Frame"
如果 CMUcam3 无法在指定时间内生成图像,程序将超时并报错
如果发生这种情况,请增加刷新间隔,或降低图像分辨率
刷新间隔
此参数设置当勾选 "Loop" 时发送 "Grab Image" 命令的频率
停止
这将停止抓取循环图像
"Settings" 选项卡允许您设置一些常用的 CMUcam3 功能。您按下的每个按钮只是通过串行端口传输相应的 CMUcam2 命令。
以下是界面 "Setting" 选项卡上各字段的说明:
低分辨率 / 高分辨率
这些按钮在高分辨率 CIF (352x288) 或低分辨率 QCIF (176x144) 之间切换
这对应于 "HR 1" 和 "HR 0" 串行命令
RGB / YCrCb
这将相机的原生像素模式选择为 RGB 或 YCrCb
这对应于 "CR 18 44" 或 "CR 18 36" CMUcam2 命令
降采样
这设置基于固件的降采样量
这对应于 "DS X Y",其中 X 和 Y 是在每个选择框中设置的值
窗口
这为相机设置虚拟窗口参数
这对应于 "VW x0 y0 x1 y1" CMUcam2 命令
舵机控制器
这允许您设置 4 个 CMUcam3 舵机端口的舵机位置
这将导致连接到 CMUcam3 的任何舵机移动
这对应于 "SV" CMUcam2 命令
You can send any CMUcam2 command using the "Send" button and the text input box. For example, sending "GM" (Get Mean) returns the mean color of the image. To stop the streaming, simply click "Send" or press return. This program does not visualize most of the CMUcam2 commands. For visualization try using the CMUcam2GUI java program.
故障排除#
为什么当我在循环抓取图像时更改属性会导致相机冻结?
遗憾的是,CMUcam3 帧抓取器不够智能,无法真正跟踪您正在做的事情。因此,如果您正在循环图像并将分辨率更改为更大的值,那么它可能会在高分辨率图像传输完成之前就发送下一个 "Grab Frame" 命令。这种情况发生几次后,帧抓取器就会与相机失去同步,串行超时。通常,如果您在更改参数之前先按 "Stop",并确保为高分辨率图像将 "Refresh Interval" 设置为较大的值,那么您就不会遇到通信或超时错误。
为什么我不能使用高分辨率图像进行循环?
这与前一个问题所描述的是同一个问题。如果 "Refresh Interval" 太小,那么相机请求图像的速度将快于它生成图像的速度。