声明:该项目设计来源DF创客社区,仅供学习参考,不可用于商业用途。
前言:
宠物自动感应相机设计目的是为了能够随时随地和家人朋友分享家中爱宠的照片信息,由于工作繁忙,没有太多时间去关照家里的宠物,更别说拍照片了,所以萌发了想给家中的狗狗拍照片的想法。
之前想过用山狗和树莓派来搭建,但是都没有去做,因为两个问题,第一个如果用树莓派的官方摄像头,不太好集成到我的程序里面,只能通过shell脚本来实现,不够高端大气上档次。。。如果用arduino有觉得摄像头不好控制。。。。后来参加blueeye做无人船的时候,大熊借给我一块Edison,所以决定用edison去实现拍照的功能,是不是有作死的感觉,通过查阅资料,看到edison的运算性能非常不错,又非常的低功耗,也有大神已经实现了在edison上跑opencv的实践。
宠物自动感应相机视频演示:
用edison结合传感器来实现拍照原理:
也许在大牛的眼里,就是小儿科啊。。。我只用了一个传感器,就是人体红外热释传感器,也叫运动传感器,就是如果传感器感应到有运动物体就会产生电平的高低变化(因为这是一个数字传感器),通过程序判断电平的高低变化就可以实现对运动物体的检测,然后通过edison结合opencv的视觉库,进行抓图的操作,并存入一张照片,然后利用定时脚本将拍摄的照片通过wifi传入阿里云服务器,再通过编辑好的页面展示出来。这样,不管是在任何地方,任何时间,只要萌宠经过传感器的前方,就会被感应到,并且被拍照上传服务器。我和我的朋友家人就可以通过手机或者电脑,随时随地的访问这些图片了。
当然,后期会考虑如果涉及到安全和隐私的话,我们会加入验证环节。另外,通过在喂食盆附近的放置该设备,还可以通过对图片的统计算出宠物被感应到的次数,就可以绘制出一个曲线,判断萌宠饥饿的程度,然后提供的数据可以总结后设置一个自动喂食机构,在达到阈值就投放食物,真是宠物用品界的大数据分析和应用啊!
想法诞生的时候只是简单画了个图:
现场制作过程中由于大家都太专注,拍摄的图片少,大家凑合看啦,头骨是用502粘到俞廷同学设计和打印的3D外壳上的。
制作需要的物件:
- Edison 一块
- Edison扩展板 一块
- 还要一块很重要的设备,就是DFRobot的一块I/O extended sheild,有了它,一切变得更加简单了。
- 母对母头杜邦线 x 3
- 270度摄像头一个
- 人体红外热释传感器 一个
- 构建过程极其简单,我将人体红外热释传感器通过线缆接入到i/o扩展板的7号接口,记得看清楚pin脚的描述。
- vcc----接5v
- GND---接地
- sign----接io扩展板的pin脚。
- 摄像头-----接usb接口(唯一一个宽口的USB)
然后刷入yoctolinux系统,这个过程需要用到:
具体刷系统的过程就不写了。很简单,intel官方网站有,请自行搜索。
然后启动edison的时候通过串口连入edison。这里要简单说明一下,edison有两个microusb的接口。和我们用的android手机充电接口一样,最下面的那个是调试串口,上面的一个小的microusb是和大口usb共用的,靠一个switch来控制。
这个实验里面我已经把switch拨到靠近大usb口的位置了,所以大的usb将会得到应用。小的可以做为供电。然后通过电脑连接串口进行查看。因为我的电脑是mac,所以我用的的方法和大家不一样,如果是windows就用putty去连接设备。
更多操心讲解详见附件内容。
opencv的源代码,见附件内容下载:
shell脚本记得加执行权限:
#chmod +x upload.sh
还有一个Makefile: