来自C ++应用程序的IP摄像机设置和控制

时间:2013-04-22 12:46:53

标签: network-programming wifi arduino

我想通过WIFI控制基于arduino的小机器人和来自PC的IP摄像头,但我现在已经浏览互联网很长一段时间了,我仍然不确定如何设置它。

我想在机器人上安装一个WIFI路由器,例如this one,通过以太网连接到一个控制电机的arduino,并通过WIFI连接到它旁边的IP motorised camera(I找不到这么小的路由器有几个端口)。我会将笔记本电脑连接到此路由器播放的网络(我无法使用我学校的网络)向摄像机或arduino发送命令,并从摄像机检索视频。

现在,我已经到处寻找,但无法找到我如何通过笔记本电脑上的客户端应用程序(C ++ / Qt / Windows)与相机连接? OpenCV听起来很适合直播,但它的电机呢?

4 个答案:

答案 0 :(得分:2)

目前还不完全清楚你要做什么(具体如范围;也就是构建硬件或使用硬件),你已经拥有的硬件(例如你已经拥有机器人等) ,以及你的经验水平。

如果您正在使用相机谈论移动机器人,我建议您查看Scribbler/Fluke组合(链接适用于两者的早期版本 - 更新版本更全面),或者是解决方案或者您可以构建的想法和示例代码。

Scribbler / Fluke使用蓝牙与主机通信,Fluke有一个用于成像的板载相机。范围是@ 100米。 Fluke运行的是linux版本,因此处理视频和许多其他操作是不可能的。

答案 1 :(得分:2)

IP摄像机无需与Arduino软件链接。有时最好使用最简单的解决方案来达到良好的效果。我在我的一个机器人上做了同样的事情,我从Arduino网络分开运行IP摄像头,所以我可以使用拥有自己的应用程序的相机的所有功能。 可以从定制的应用程序运行机器人,该应用程序也在同一应用程序的单独窗口中启动相机应用程序。通过这种方式,您可以使用运动电机控制装置,并在应用程序的窗口中托管相机软件并使客户体验统一。只需处理您的控件和颜色,以协调表单的布局。 您可以找到有关如何对其进行编码的更多参考资料herehere来开始。

答案 2 :(得分:1)

知道了!我用WireShark嗅探了用我的相机建立的通信端口(用“HTTP端口99”过滤了捕获),并注意到HTTP请求“/decoder_control.cgi?command=0”,“/ decode_control.cgi?command = 2”等。从我的浏览器发送它们:“192.168.1.99:99/decoder_control.cgi?command=0”等,结果证明这个IP摄像机的命令与this address的命令相同,它就像一个魅力!

虽然无法调整速度太糟糕了(它在设置中设置,也许我可以通过相同的方式动态改变它的值)但这是一个开始。

感谢您在任何情况下的帮助,保持迄今为止我最喜欢的专业论坛的良好工作。

答案 3 :(得分:1)

我将使用OpenWrt闪存的路由器作为机器人上线通信中心。从这里你可以直接连接IP摄像机,并将串行命令发送到Arduino进行控制。

您可以使用OpenCV直接连接到IP摄像机流。

我还会编写一个小型服务器,在路由器上作为后台服务运行。该服务器负责向arduino发送串行命令以控制机器人的电机。

总而言之,这将需要几个软件:arduino代码将串行命令解释为H桥用于电机控制,服务器(python很容易)接收tcp数据包(或标准Web请求)并转换信息到串口,您的gui接口从IP摄像机加载当前图像(它看起来像您已经想到的),以及与服务器的TCP套接字连接,用于执行电机的命令和控制。