4

我想通过 WIFI 从 PC 上控制一个基于 arduino 和 IP 摄像头的小型机器人,但是我已经浏览了很长一段时间的互联网,但我仍然不知道如何设置它。

我想在机器人上安装一个 WIFI 路由器,比如这个,通过以太网连接到控制电机的 arduino,还通过 WIFI 连接到旁边的IP 电动摄像头(我找不到这么小的路由器有几个端口)。我会将我的笔记本电脑连接到这个路由器广播的网络(我不能使用我学校的网络)向相机或 arduino 发送命令,并从相机中检索视频。

现在,我到处寻找,但找不到如何从笔记本电脑上的客户端应用程序(C++/Qt/Windows)与相机交互?OpenCV 听起来很适合直播,但它的电机呢?

4

4 回答 4

3

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

于 2013-05-06T19:00:33.530 回答
2

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

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

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

于 2013-05-01T14:30:29.793 回答
1

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

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

无论如何,感谢您的帮助,保持我最喜欢的专业论坛的出色工作。

于 2013-05-01T18:34:20.537 回答
1

我会使用一个带有 OpenWrt 的路由器作为你的机器人通讯中心。从这里您可以直接连接 IP 摄像机以及向您的 Arduino 发送串行命令进行控制。

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

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

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

于 2013-05-07T17:34:19.493 回答