×

使用超声波传感器的自动宠物喂食器

消耗积分:2 | 格式:zip | 大小:0.29 MB | 2023-06-09

h1654155701.3944

分享资料个

描述

该项目展示了使用超声波传感器自动喂养宠物的小型演示。如果在指定范围内检测到物体,则会发送信号以打开网络摄像头。然后进行测试,看看是猫还是狗,然后根据检测结果提供猫或狗粮。

这个项目中使用的东西

1.硬件

WIZNET W5100S EVB微微

超声波传感器

步进电机

跳线

面包板

2.软件

Arduino集成开发环境

PyCharm公司

问题说明:

宠物是人类的好伴侣。它有助于缓解繁忙生活中的紧张情绪,并对抢劫犯起到威慑作用。如今,宠物被视为家庭成员。因此,必须考虑宠物的整体健康,并优先考虑均衡饮食。根据宠物的体型,需要不同数量的食物和营养素。根据民意调查,李宠物的肥胖问题是由宠物主人的繁忙日程造成的。此外,宠物无法独立获得食物,必须依靠宠物主人喂养。因此,自动宠物喂食器被设计出来,现在正被用来处理喂养宠物的问题。

自动宠物喂食器是一种可以编程取代手动喂食的产品,并且可以设置为特定的喂食量和时间。宠物喂食器的创新用于克服宠物主人对喂养宠物的健忘,并将宠物留在宠物酒店以避免额外的消费费用。

组成部分:

超声波传感器:

超声波传感器是一种电子设备,它使用超声波来检测目标物品之间的距离,并将反射的声音转换为电信号。超声波比可听声波(即人类能听到的声音)传播得更快。发射器(使用压电晶体产生声音)和接收器是超声波传感器的两个主要部件(在声音往返于目标后会遇到声音)。该计算公式为D=1⁄2 T x C(其中D为距离,T为时间,C为声速~343米/秒)。

步进电机:

将整个旋转分为几个相等步骤的无刷直流电动机被称为步进电动机或步进电动机。只要电机在扭矩和速度方面被适当地缩放以用于应用,就可以指示电机的位置在这些步骤中的一个步骤处移动和保持,而无需任何用于反馈的位置传感器(开环控制器)。

W5100S EVB Pico:

W5100S EVB Pico是一款微控制器评估板,使用树莓派RP2040微处理器芯片和W5100S全硬接线TCP/IP控制器芯片。由于W5100S EVB Pico执行与Raspberry Pi Pico平台相同的功能,并且包括W5100S,因此基本上包含了以太网功能。

ULN2003步进电机驱动器:

电机由IN1–IN4引脚驱动。将它们连接到微微板

GND代表“公共接地引脚”

电机由VDD引脚供电。将其连接到5V外部电源。

电机连接器电机插入其中。连接器只有一种方式,因为它是键控的。

MCU Micro USB Breadboard 5V电源模块:

5V电源模块5Pin母连接器B型PCB转换器,用于MCU Micro USB Breadboard。这个转接板非常适合将USB信号连接到您专门创建的微控制器板上。如果您只需要为面包板、穿孔板或Vero板原型威廉希尔官方网站 提供5V USB电源,这也很有帮助。

引脚:

VCC:5V信号,D+:USB D+电源,D-:USB D-信号,ID:OTG设备USB标识符信号,电源接地:GND

三维模型:

三维模型可用于控制施工中的机械。这些复制包括物理环境的点、线和曲面。它们利用坐标信息,显示水平点和垂直点相对于固定点的位置。这些空间联系使您能够从不同的角度观察表示。

用于打印阿基米德螺旋的3D打印机。

阿基米德螺旋:

阿基米德螺旋的螺旋部件可以在里面,但在这个例子中,它将被放置在空心圆柱体内。排放区在一端,而低洼的食物源在另一端。只要转动螺丝就可以移动食物。螺杆旋转时,会舀起少量食物。

pYYBAGSBn0KAQPFBAAGHo1LWimw000.jpg

poYBAGSBn0WAZ1ORAACzMxcJDnU794.jpg

说明:

❖ 步进电机和超声波传感器通过其相应的VCC和GND引脚连接到VCC和地线,以提供电源(12V)。

❖ 超声波传感器的Trig引脚连接到Wiznet Pico板的GP16。

❖ Echo引脚连接到Wiznet Pico板的GP17。

❖ GP2、GP3、GP4、GP5分别连接到一个步进电机的IN1、IN2、IN3、IN4,并且GP6、GP7、GP8、GP9分别连接到另一个步步进电机。

❖ 如果在超声波传感器前看到物体,则会向Pycharm发送一个串行写入,以激活摄像头来识别猫或狗。

❖ 如果网络摄像头检测到猫或狗,任何一个步进电机都会旋转。

代码说明:

步进电机:我们可以用这个库操作单极或双极步进电机。我们将需要一个步进电机和必要的硬件来控制它来利用它。

引脚1(Vcc):此引脚为传感器提供+5V电源。

引脚2(触发器):此输入引脚用于发送超声波,并通过保持高电平10us来启动测量。连接到GP15

引脚3(回声):该输出引脚在预定的时间内变高,这与波返回传感器所需的时间相对应。连接到GP14

引脚4(接地):此GND引脚用于连接到系统的GND。

然后根据等待声音反射回来所需的时间来计算距离。

此公式可用于确定需要从传感器测量的精确距离:

距离=1/2 T乘以C

(T=时间,C=声波速度)

距离=(持续时间/2)/29.1

如果距离小于10厘米,则会对PyCharm“检测到”进行串行写入,从而激活网络摄像头进行额外检测。

任一步进电机将根据通过摄像头检测获得的输入数据(Cat或Dog)旋转。

在这里,只有少量的食物需要流动,因此我使用了一个for loop,如果条件为假,步进电机的旋转将立即停止。

将物联网与人工智能相结合:

人工智能驱动的物联网产生了模拟智能行为和支持决策的智能技术,几乎没有人参与。

poYBAGSBn0iAX8beAADAnexD6P0423.jpg

在这里,首先使用超声波传感器定位物体,然后,摄像机转向以确定物体是猫还是狗,根据确定结果,喂食猫粮或狗粮。

代码说明:

PySerial使用多种不同的设备,是一个支持串行连接(RS-232)的库。

首先检查在该范围内检测到的任何对象。如果是,它将读取输入,将其存储在一行中,解码,然后将其与“检测到”的响应进行比较。如果结果相同,它将调用函数start1(),其中包括启动网络摄像头来寻找猫或狗。

由于我们的主要目标是检测猫和狗,类由一组id组成。

我给了猫或狗一个条件,如果观察到其他任何东西,它不会显示标签,或者什么都不会被识别。

二进制数据被写入串行端口,str用于将字符串作为一系列字节进行传输。

这里,它涵盖了置信水平大于8的准确性。

如果找不到任何东西,相机将关闭,并重复相同的程序。

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'使用超声波传感器的自动宠物喂食器',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);