在本DIY环节中,我们将使用树莓派和网络摄像头建造一个网络控制的监控机器人汽车。这可能是一种有用且便宜的安全和间谍工具,它具有许多可配置的选项,可以在几个小时内完成构建。在此物联网项目中,我们主要使用 Raspberry Pi,USB网络摄像头和两个带机器人底盘的直流电动机来构建此机器人车。
它上面装有网络摄像头,通过它可以获取实时视频,这里有趣的部分是我们可以通过Internet通过网络浏览器控制和移动该机器人。由于可以使用网页进行控制,因此也可以使用Mobile中的网页进行控制。我们用HTML构建了一个网页,该网页具有向左,向右,向前,向后的链接,单击该页面可以向任意方向移动机器人。在这里,我们使用“ Motion”从USB摄像头获取实时视频供稿,并使用“ Flask” 使用python从网页向Raspberry Pi发送命令移动机器人,这将在本教程的后续部分中详细介绍。我们在Raspberry Pi板上安装了Raspbian Jessie OS。您可以查看本文以安装Raspbian OS并开始使用Raspberry Pi。
安装和配置“ Motion”以获取视频供稿:
Motion(监视软件)是针对Linux开发的免费开放源代码运动检测器CCTV软件。它检测到动作并开始录制其视频。通过在Raspberry Pi中安装“ Motion”,您可以将Raspberry Pi神奇地 变成安全摄像机。它用于获取实时视频提要,制作延时视频和定期拍摄快照。每当它在视图区域中检测到运动或任何干扰时,它都会记录并保存视频。通过输入Pi的IP地址和端口,可以在Web浏览器上观看实时视频源。
我们已经创建了有关在Raspberry Pi和USB摄像头上使用Motion的详细教程,在这里我们简要解释了如何将其安装在Raspberry pi上,以便我们的机器人将实时视频流发送到网页。
在这里,您只需要运行几个命令即可开始通过网络获取第一个视频。在此之前,请使用LAN或Wi-Fi正确检查Raspberry Pi是否已连接到Internet,然后执行以下步骤:
步骤1:首先运行以下命令以更新Raspberry Pi上的Raspbian OS:
sudo apt-get更新
步骤2:然后使用以下命令安装“ Motion”库:
sudo apt-get安装动作
步骤3:现在,通过编辑文件 / etc / default / motion 将Motion守护程序设置为yes,以使其始终运行。如下所示,使用带有“ sudo”的“ nano”编辑器编辑此文件:
须藤nano / etc / default / motion
然后按“ CTRL + X”,“ Y”和Enter键保存文件。
步骤4:现在,我们需要设置目标目录 (/ var / lib / motion /) 的权限,Motion会在其中保存所有视频记录和图片文件。我们需要通过发出以下命令来将“ Motion”设置为该目录的所有者:
须藤弦运动:运动/ var / lib / motion /
此权限是必需的,否则在检查Motion服务状态时会出错。
您可以使用以下命令检查服务状态: sudo服务运动状态
步骤5:现在我们差不多完成了,只需要更改Motion配置文件 (/etc/motion/motion.conf )中的一个配置选项,该配置文件已 stream_localhost关闭。 我们必须关闭此本地主机流,否则我们将无法访问网络上的视频提要,并且只能从Raspberry Pi本身进行访问。为此,请使用“ nano”编辑器编辑“运动配置”文件并将其关闭,如下所示:
须藤nano /etc/motion/motion.conf
现在,我们已经准备好并准备好从连接到Pi的USB网络摄像头获取实时供稿。只需使用以下命令启动(或重启)Motion服务,然后在浏览器中使用端口8081打开Raspberry Pi的IP(例如192.168.43.199:8081)。在此项目中,我们已将该IP嵌入到 img src 标签的HTML代码中。
sudo /etc/init.d/motion重新启动
您将看到来自网络摄像机的实时提要。在这里,我们使用了一款低成本的USB网络摄像头,该摄像头可与我们的Raspberry Pi完美配合,但您可以进一步使用高质量的摄像头以获得更好的分辨率。正如它将在浏览器中显示的那样,您可以使用任何设备来观看提要,该提要支持诸如Mobile,Tablet等Web浏览器。
必要时尝试重新启动Raspberry Pi,作为故障排除步骤:
须藤重启
这就是将Motion用于我们的监控机器人的全部内容,此外,它还具有几个配置选项,我们在上一教程中已经讨论过。
注意:如果您是低于版本3的Raspberry Pi型号,则可能需要Wi-Fi加密狗才能将raspberry Pi无线连接到路由器。
Raspberry Pi中的Flask设置,用于通过网页控制机器人:
在这里,我们使用Flask创建了一个Web服务器,该服务器提供了一种从网页向Raspberry Pi发送命令以通过网络控制机器人的方法。Flask允许我们通过网页运行python脚本,并且我们可以从Raspberry Pi向网络浏览器发送和接收数据,反之亦然。Flask是Python的微框架。该工具基于Unicode,具有内置的开发服务器和调试器,集成的单元测试支持,对安全cookie的支持及其易于使用,这些使它对爱好者有用。
使用给定命令将烧瓶支持包安装到Raspberry Pi中:
$ pip安装Flask
然后,只需在程序中导入Flask就可以使用Flask,就像我们为该项目导入了以下flask软件包一样:
从烧瓶导入烧瓶从烧瓶导入烧瓶,render_template,请求
您可以在此处了解有关使用Flask进行编程的更多信息,还可以查看我们以前使用Flask将消息从网页发送到Raspberry Pi并将权重值发送到Smart Container中的Raspberry Pi的先前项目。
网页的HTML代码:
我们已经使用HTML语言创建了一个网页,用于显示控制链接(左,右,前进,后退),以便从网络浏览器中移动机器人。我们已经使用jQuery脚本来调用Python程序中的函数。Python代码中有五个功能可将机器人向左,向右,向前,向后移动并停止。最后给出了完整的Python代码。这些功能将通过单击网页上的“控制链接”来执行,电动机将根据所单击的链接而移动。在这里,我们以如下方式编写了代码:Robot将在单击并按住链接的同时朝特定方向移动,并且一旦释放鼠标按钮,Robot就会停止。以下是包含jQuery的网页HTML代码:
在这里,您可以看到我们已经使用 img src 标签将视频流在其上的IP地址嵌入到网页中。根据您的Raspberry Pi更改IP地址,但保持端口不变。
用户需要在某些文本编辑器(记事本)中复制粘贴上述给定的HTML代码,并以.HTML扩展名(robot.html)保存文件。然后根据您的python脚本位置将此HTML文件放在/ templates文件夹中。意味着您需要创建一个名为template的文件夹,在该文件夹中为此Raspberry Surveillance Robot放置了Python代码文件 ,然后将robot.html文件放入此template文件夹。此步骤很重要,否则我们的项目将无法正常工作。您可以通过双击robot.html文件直接打开它,以查看控件链接的外观。在演示视频中进一步检查整个过程 在最后。在完成所有编程之后,我们可以在Raspberry Pi中运行Python代码并在Web浏览器中打开IP_address_of_your_Pi:5010(例如http://192.168.43.199:5010)
您可以使用 ifconfig 命令检查Raspberry Pi的IP地址:
ifconfig
电路图和设置:
在测试了Live Video feed和HTML代码之后,我们需要使用手工或现成的机器人底盘,车轮和螺母螺栓来构建机器人。然后在其上放置移动电源以为Raspberry pi供电,然后将Raspberry Pi和网络摄像头放在移动电源上,并使用Cello胶带或橡皮筋固定设置,将USB摄像头与Raspberry Pi连接。
在这个物联网项目中,我们不需要做很多连接,只需要连接一些用于电机驱动器IC L293D和DC Motors的电线。连接在下面的电路图中显示。在这里,我们使用通用PCB来安装L293D IC,以减小空间,但您也可以使用小型面包板将直流电机与L293D连接起来。
操作方法:
该监控机器人的操作和工作非常简单。创建一个python文件(扩展名为.py)并将以下代码复制到其中,然后将其保存在Raspberry Pi中。然后按照上述说明将HTML文件放在 模板 文件夹中。不要忘记更改HTML文件中的IP地址。
然后通过输入以下命令运行Python代码:
python name_of_file.py
然后使用端口5010打开您的Raspberry Pi IP地址,例如http://192.168.43.199:5010(再次用您的地址替换IP地址)。现在,您将看到包含四个机器人控制链接和实时流视频的网页。用户可以通过单击并按住链接来控制机器人。如果用户单击并按住链接,则机器人将根据单击的链接移动,并且当用户释放链接时,机器人将自动停止。
完整的Python代码如下所示,其中我们编写了各种功能来控制机器人,只需单击网页上的链接即可。您可以轻松理解它们,或者如果您是初学者,请查看我们以前的Raspberry Pi教程。另请访问我们的机器人技术部分,以获取更有趣且易于构建的机器人。