用树莓派 DIY 180度小球追踪摄像头

MAKER: yusuf_ /译:趣无尽 Cherry(转载请注明出处)
在比赛直播或一些需要实时追踪目标物体的拍摄场合,有一台智能化的摄像设备将是非常有用的。本教程将简单说明如何用树莓派、摄像头和机械设备来 DIY 一套具有180度跟踪拍摄小球功能的智能摄像头。

先看一段最终的效果视频。

材料清单

1、树莓派
2、L298N H-Bridge 电机驱动板
3、电机齿轮箱
4、USB网络摄像头
5、跳线
6、螺母螺丝
7、齿轮
8、环氧胶/热熔胶
9、激光发射器(可选)

组装配件

1、用一块木料(我的这块木头还算不错),将电机安装到上面,不要安装到中间的位置。然后,在电机上安装一个小齿轮。齿轮上的孔可能需要扩大以便与电机配件匹配。




2、下一步将安装大齿轮(可以松动),使其大齿轮的齿与小齿轮的相连接。为加强粘合性,用砂纸打磨木板,然后使用热熔胶将其安装到位。



3、将网络摄像头安装到大齿轮上。在这里,我已将网络摄像头的外壳移除,并仅使用网络摄像头的核心电路板,以便安装。使用环氧胶将网络摄像头粘合起来,加强牢固性。



4、最后安装的组件是可选项——L298N H-Bridge 电机驱动板。只需在电路板上钻四个孔并使用机械螺钉和六角螺母安装到电路板上即可。

连线

现在将所有东西用线串起来。
1、将电机的两根电线直接连接到电路板左侧或右侧两个端口连接器之一的 L298N H-Bridge 电机驱动板上(我选择了左侧)。

2、使用两根导线将L298NH的5V和接地线与树莓派的5V和接地线与电源相连接。

3、使用两根母对母跳线将L298N分别连接到树莓派的引脚17和18上。

4、将网络摄像头连接到其中一个树莓派的USB端口上。

这就是所有的布线过程了。

部署程序

这个部分是整个项目最具挑战性的地方。
我用 Python 的 OpenCV 库来实时跟踪小球。先安装这个库。

sudo apt-get update
sudo apt-get install python-opencv

本程序还利用树莓派附带的 gpiozero 库,根据 OpenCV 库确定球的 x 坐标来转动电机。该代码能够根据黄色来确定球的位置,所以黄色是背景中独一无二的,否则无效。向程序提供较低和较高的颜色范围,以便确定球的位置。
OpenCV 使用以下参数调用 .inRange() 函数:当前帧(来自网络摄像头)以及下部和上部颜色边界。确定框架上球的坐标后,如果球不在中心(640 像素宽框架中 x 坐标范围为 240-400),程序将告诉电机转动。如果球偏离中心,则马达将加快转动,而当球更靠近中心时,马达将减少转动。
这就是代码的工作原理。
注意:如果你使用该代码,则必须安装 OpenCV。此外,如果电机转向错误,只需将 L289N 的电线反转,或反转控制 gpio 连接到树莓派的线。

所用的源代码文件在本项目文件库中可以下载。
http://make.quwj.com/project/71

运行

http://www.quwj.com/2018/09/06/diy-ball-tracking-180-camera-with-raspberry-pi.html

via

这是一篇发布于 6年 前的文章,其中的信息可能已经有所发展或是发生改变,请了解。


4 评论

  1. 楼主,方便加个联系方式吗,我最近参加了一个机器人比赛,想和你探讨一下相关问题,企鹅724690719

  2. 你好,程序报错
    Traceback (most recent call last):
    File “ballFollow.py”, line 27, in
    cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX)
    AttributeError: ‘module’ object has no attribute ‘CHAIN_APPROX’
    pi@raspberrypi:~/Desktop $

凌风曦月进行回复 取消回复

你的邮件地址不会公开


*