颜射猫咪!一个超酷的宠物行为矫正机

这是一个风和日丽的周末,我把美味的鲈鱼从冰箱里拿出来解冻,睡个午觉打个游戏后,准备晚上大吃一顿……

美好的剧本都会紧接着一个可怕的转折……这并不是一个应该有的套路,当我准备对鱼下手的时候,万万没想到,鱼不见了?!

不用多想,没谁了,也就家里那只馋猫能干得出来!随后,我便在屋子的某个角落,找到了正在品尝我的晚餐的那只馋猫……

没错,今天的主角就是这只馋猫,它总会趁人不注意的时候潜入厨房偷吃没封装的食材,或者趁家里人都去上班的时候,将垃圾桶翻个底朝天,并且屡教不改。这次,我决定给它一些颜色看看。

我的脑海中浮现了一个“残忍邪恶”的报复计划:

更详细地说,这个被我命名为“贼猫终结者”的设备将使用计算机视觉识别运动的物体,当有猫进入摄像头监视的范围内时,便控制水枪跟随标准运动物体,并启动喷雾水枪喷射。水雾不会对猫造成伤害,但对于这只怕水的猫,足以让它忌惮三分。 

为了防止世界被破坏,为了保护世界的和平,贯彻爱与真实的邪恶……今天我就来教大家如何自制一个“贼猫终结者”,让你从此远离垃圾、饿肚子烦恼!

选择一个核心控制器

首先一个“贼猫终结者”的核心控制所在就是树莓派了,价格低廉性能好是树莓派的优点。

“贼猫终结者”中,树莓派负责计算出视频信号中是否有运动的物体、判断是否有人正在周围、控制水枪喷水。我在制作的过程中分别使用了Raspberry Pi 2B和3B,相比Raspberry Pi 2B,最新的3B版本计算能力更强,而且集成了Wi-Fi模块,少了一些牵网线或配置无线网卡之类的烦恼。

为它找个“眼睛”

有了核心部分,接着就是视觉处理方面了,你要看到周围运动的物体,当然免不了一个摄像头了!

我用一个免驱USB摄像头用来获取环境图像信号。树莓派上运行Python脚本,调用OpenCV视觉库,判断出运动的物体并计算出运动物体所在的位置。由于我对计算机视觉学习还不够深入,没办法判断出运动物体是人还是猫,所以我又加了一块人体红外感应的模块。当人体红外感应模块判断有人在场时便禁止水枪运行,当没人在场时,便会允许水枪喷水。

水枪部分制作

“贼猫终结者”的水枪是由一个雾化喷头做成,当看到有贼猫来偷东西时,喷头就能喷出水雾驱赶它。通常雾化喷头需要有比较强的水压才能喷射出水雾,采用一台12V微型的隔膜泵和一个可调的雾化喷头。隔膜泵通过一个继电器控制开关,当猫进入监控的范围内,树莓派会控制继电器闭合,让隔膜泵开始运行。

由于单个摄像头无法分辨出运动物体的空间位置,因此我将雾化喷头的喷水面积尽量调大已确保能喷到猫,这时水雾也完全没有冲击力。

为了让水枪跟随瞄准运动的物体,我找了一个FPV舵机云台用来控制水枪喷射的方向。

用3D打印机打印了一个固定模块用来将喷头固定在云台上,固定模块上预留了一个圆孔用来安装激光二极管。激光二极管用来调整水枪的喷射范围与摄像头的拍摄范围重合。

晶体振荡器是指从一块石英晶体上按一定方位角切下薄片,石英晶体谐振器,简称为石英晶体,简称晶振;在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。

GIF使用3D打印技术做的支架

FPV运动状态

OpenCV运行环境配置

Linux系统的终端

在树莓派操作系统中打开终端,输入指令:
sudo apt-get install libcv-dev  libcvaux-dev  libhighgui-dev  opencv-doc python-opencv 
按回车,按系统要求输入管理员密码执行安装。安装完后,在终端输入指令:
python
按回车进入python的shell编程环境,然后输入指令
import cv2
当shell返回“>>>”说明OpenCV计算机视觉库已经安装在树莓派上了。

在终端中查看相关库是否安装成功

系统接线图与组装

直接上图!

启动终结者!

用Pyhton的IDLE打开程序,按F5运行程序。程序运行的状态如下:

当贼猫过来的时候,哼哼哼……看!被吓到贼猫,还敢来捣乱?

完整视频如下:

想获得源代码?

想完善作品功能?

想和更多创客交流?

想获得源代码?并参与产品后续创作?扫描下方二维码,添加作者@Deiki 的个人微信吧!


果壳空间和果壳实验室联手组成果壳双创空间!在这里,创业团队可以享受果壳实验室提供的评测报告,获得来自创客的建议;创客们也可以在这里提供你的脑洞想法,我们共同实现!此外,还有更多有趣好玩的线上、线下活动等着你的参与,精彩内容,联手奉上。

不点赞?下一个被教育的就是你!

那么,单片机到底是不是嵌入式呢?简单来说:是。因为很多嵌入式产品中被嵌入的计算机系统就是单片机,譬如空调中嵌入的控制板其实核心就是个单片机。实际上大部分家电产品中嵌入的计算机系统都是单片机。

生成海报
点赞 0

Abin

我还没有学会写个人说明!

相关推荐

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许

ESP8266 ds18b20温度传感器

先到GitHub上下载库OneWire和DallasTemperature 下载好的例程,此程序是arduino上的例程,可以修改引脚为ESP8266的引脚 // Include the libraries we