家庭宠物喂养机器人毕业设计_第1页
家庭宠物喂养机器人毕业设计_第2页
家庭宠物喂养机器人毕业设计_第3页
家庭宠物喂养机器人毕业设计_第4页
家庭宠物喂养机器人毕业设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1摘要 随着社会的不断发展,人们的生活节奏不断加快,压力也随之增大,因此,越来越多的家庭就会饲养宠物,以增加生活的乐趣,缓解生活压力。但是,大部分家庭都过着早出晚归的生活,导致白天家中宠物无人看管,无人喂养。因此,为了解决这一问题,我利用电话按键音的双音频检测技术,设计了家庭宠物喂养机器人。通过手机对机器人进行远程遥控,控制其行进的前后、左右的动作,以及的头部的运动,还有投喂宠物的出料机构的运动。有了这台机器人,当人们不在家中时能够远程地进行宠物的喂养,同时能够对宠物的状态进行监控,以了解其在家中的状态。关键字机器人;双音频;远程遥控

AbstractWiththerapiddevelopmentofsociety,thepaceoflifehasacceleratedandpeoplehavebeenstressedout.Therefore,moreandmorepeoplechoosetokeeppets,aimingatincreasingthejoyoflifeandrelievingthepressuresoflife.However,mostofpeopleareatworkindaytimesothattheyhavetoleavetheirpetsalone.Consequently,thepetsarelackofcaringduringthedaytime.Inordertosolvethisproblem,Iinventafeedingrobotforpetaccordingtothedual-tonedetectiontechnologywhichbasedontelephonekeypad.Peoplecanachievetelecontrolofthefeedingrobotbytheircellphone.Basedonthetelecontrol,thefeedingrobotcanmovearound,aswellitshead.What’smore,therobotcanpourpetfoodintoabowlbytelecontrol.Peoplecancompletethefeedingworkandgetthepictureoftheirpetswhentheyareatworkbytherobotbasedontelecontrol.KeywordsRobot;Dual-tonemulti-frequencysignaling;telecontrol

目录摘要 IAbstract II目录 III第1章绪论 11.1课题背景 11.2家庭宠物喂养机器人的发展概况 11.2.1国内研究发展概况 11.2.2国外研究发展概况 11.3本设计方案的确立 21.3.1机械部分的设计方案 21.3.2控制部分的设计方案 2第2章机械结构部分设计 32.1行进机构部分设计 32.1.1驱动方式设计 32.1.2履带机构设计 32.1.3机架结构设计 4履带轮支撑结构 4机身支架结构 52.2料斗结构设计 52.3头部结构设计 72.4手部结构设计 7第3章电路部分设计 93.1电源部分电路设计 93.251单片机主控系统部分电路设计 93.3舵机控制部分电路设计 103.4双音频检测电路部分设计 113.5密码掉电保护电路部分电路设计 123.6电机驱动部分电路设计 133.7比较器部分电路设计 13第4章程序部分设计 154.1自动铃音检测及摘机部分程序设计 154.2按键检测部分程序设计 154.3按键控制程序设计 164.4密码读取、写入及验证部分程序设计 164.5电机控制程序设计 164.6舵机控制程序设计 17结论 19参考文献 20致谢 21附录1 22附录2 26附录3 39附录4 40第1章绪论1.1课题背景 当今社会的飞速发展,科技的极大进步,人们的生活方式已经有了很大的不同。从前是一有空就会呆在家里与家人共天伦,和左邻右舍一齐吃下饭,聊下家常。但是现在时代变了,人们的生活方式变得忙碌而又紧张,人们待在家的时间越来越少,特别是工薪一族,他们经常是过着早出晚归的生活。而当中有很大的一部分人,为了缓解生活的压力,在自己的家中饲养了宠物。而养宠物当中,有很大一部分人养的就是小猫和小狗。因此问题就出现了,有很多的家庭因为早出晚归的问题,宠物放于家中就无法管理。例如早上如果起床匆忙,又或者中午无人在家的时候,宠物就无人管理,无人喂食,这使得宠物可能会饿倒。对于爱宠一族来说是很不忍心看到的。如果早上就准备好了宠物的食物,宠物又可能会因此早上和吃得不平均而出现饱一顿,饿一顿的状况。如果专门请人进行宠物的照看,费用也是一笔比较大的开支。更重要的是当无人在家的时候,家中的人无法了解宠物的状况。会令到一些深爱自己宠物的主人感到相当地担心。 所以,结合了当今视频电话通信技术的便捷性、安全性与稳定性,以及电子技术的发展能力,就萌生了设计制作一个家庭宠物喂养机器人的想法,以解决爱宠人士的这一大难题。1.2家庭宠物喂养机器人的发展概况1.2.1国内研究发展概况 国内关于家庭宠物喂养机器人的研究已经有了初步的发展。在2007年深圳先进技术研究院就研究出了一款可以利用互联网进行远程控制和监视宠物的机器人。该宠物护理机器人内设有用于通信的模块,用来接收控制端发过来的控制信号,然后进行处理,用于驱动系统及喂食模块的控制。驱动系统用于控制机器人本体的移动,喂食模块用于根据控制指令打开其纳置有宠物食粮的喂食盒。通过互联网,将本地的电脑与远程的电脑进行连接,由远程的电脑来控制机器人本体的运动以及监视宠物反馈图像给远程的计算机[1]。1.2.2国外研究发展概况 在国外,关于家庭宠物机器人的研究在很早也已经有了。例如在美国,微软公司的一名叫做JordanCorrea的员工制作了一台名为“DarwinBot”的宠物监护机器人,这台机器人利用了RoboticsDeveloperStudio和Kinect的技术,使得JordanCorrea能够在其工作的地方远程控制机器人,完成对其宠物狗的监视、喂养、交流以及玩耍的目的[2]。同时国外也有使用手机短信及互联网进行远程控制的投喂器,人们只需要通过手机按动手机上的一个按钮就能完成远程投喂动作。1.3本设计方案的确立1.3.1机械部分的设计方案 机械结构的设计包括有几部分,分别是行进机构的设计,投喂机构的设计,头部机构的设计,手部机构的设计等。 因为是用于家庭的环境中,所以要求机器人要具有一定的稳定性,同时为了能够翻越家中的门槛,阶梯,以及行走于柔软的地毯环境中,经对比可以知道,普通轮式机构的转向欠佳,难以跨域稍微高一点的障碍物。而仿生物结构的足部在有宠物的环境下会显得不可靠,可能会使宠物发生意外。而履带结构能够很好地适应各种的地形环境,同时其平稳性也比较高,所以初定起行进的方式为履带驱动式。 投喂机构的设计,因为设定的宠物类型为小型犬或猫,其主要的粮食为颗粒状的狗粮或猫粮,体积,外形尺寸较小。所以设计的结构为料筒装料,利用底部的送料口开关组合自然落料的方式进行投喂。 头部机构主要是用于夹持用于监视的手机,通过摄像头进行监控宠物的状态。其要求能够在两个自由度方向上进行转动,达到水平的旋转与上下摆动的目的。所以初步设想利用舵机进行控制,实现目的。 手部机构也是利用舵机来实现,达到在两个自由度上的动作,以及夹持的目的。1.3.2控制部分的设计方案控制部分,根据项目要求,主要分为四个部分,单片机最小系统控制部分,DTMF检测与分析部分,信息掉电保护部分,以及舵机、电机的控制部分。单片机主控部分是以51单片机为核心的单片机控制系统,其处理的主要内容包括:(1)处理双音频检测电路发过来的编码信号,进行识别与调用对应子程序。(2)处理电机编码器发过来的电信号。(3)对密码进行读出,写入,判断。(4)输出舵机及电机控制信号。(5)输出报警、指示信号。(6)通过无线蓝牙串口与上位机进行通信。双音频检测部分,主要利用的是MT8870这一块芯片搭建而成。然后将信号利用HC573进行锁存进行处理,继而将信号输入到单片机主控。 信息掉电保护部分使用的是24C02芯片进行掉电储存。 舵机与电机控制部分中,首先是舵机控制部分,使用的是小型单片机制作的辅助系统,可以将主控部分发过来的控制信号进行处理,进而通过四个输出I/O输出到舵机控制线中,进而控制舵机转动角度。电机控制部分使用的是三极管驱动继电器的电路,再而控制行进电机的正反转。

第2章机械结构部分设计2.1行进机构部分设计2.1.1驱动方式设计 因为该机器人用于家庭场合,所以要求体积不能太大,应尽量地小。同时因为用于喂养宠物,与宠物进行交流,所以也要具有一定的强度,以防止宠物将机器人损坏。同时还要考虑到机器人的灵活性与稳定性,最终得出了几套行进机构设计的构想。(1)第一种是类球状机架的双半球驱动方式。此种结构优点是,外形简洁,具有相当强的灵活性,特别是在家庭这种具有很多家具和门口障碍的水平环境中非常适合。同时因为它的整体结构是类球形,所以当遇到宠物的冲撞时,能够很好地进行移动,不至于因为动量过大而损坏。但是它也是有缺点的,因为是球状的结构,所以单件少量地制造会比较复杂,手工制作比较困难,同时因为是类球形,所以内部的驱动结构会比较复杂,需要运用到陀螺仪等结构平衡内部的结构。(2)第二种是最常见的四轮或三轮结构驱动方式。因为四轮和三轮结构相对简单,被玩具行业大量地运用。普通的四轮结构分为两轮驱动,四轮驱动以及四轮单独驱动。两轮驱动的结构最为简单,但它转弯半径比较大,而且通过性与动力性也比较低。四轮驱动与两轮驱动相比其通过性与动力性有很大提高,但机构复杂性有所提高,加工难度也比较大,以及它转弯半径与两驱没有太大区别。四轮的单独运动,运用的是舵机配合直流电机的结构,每一个的直流电机都可以在原地进行180°的转弯,这样使得机器人本体能够原地向各个方向移动,但此种结构相对复杂,而且对与控制部分的要求也很高。而三轮结构虽然有很好的转弯性能,但是它的稳定性比较差,很容易出现倾翻现象。(3)第三种是履带结构,被广泛用于各种的机器人上。它有很好的爬坡能力和越障能力,能够爬越比较陡的坡度,同时能够行驶在轮式结构无法行走的家庭地毯上。同时它的底盘可以做得很低,所以此种结构具有很好的稳定性,能够有效地抵抗宠物对其的冲击,不至于倾覆。同时它的结构也相对地简单,直接使用两个直流电机就能够完成前后左右的运动。经过了多种方案的一一对比,最后选择了履带式的结构,作为机器人本体的一个驱动行进方式。因为其结构和控制的方式都比较简单,加工难度也不大,而且能够很好地完成指定的动作。2.1.2履带机构设计在一般的市面上,真正能够购买到的小型履带结构非常的少,而且要拿到外面加工的话,单件加工的价格会比较地昂贵,加工的工序也会比较的复杂。为了能够方便制作与加工出本机器人的部件,所以就决定使用结构与履带类似,但结构相对简单,且市面上比较容易购买到的同步带,来替代结构比较复杂的小型履带结构。同步带的种类主要分为两种,一种是梯形齿的同步带,另一种是圆弧齿的同步带。他们的相同点是都为啮合传动的方式,能够减少对张紧机构的依赖性,而且他们的传动效率也比较高,可以达到节能的目的。同时他们运行的噪音比较小,适合于在家居的环境中使用。圆弧形的同步带与梯形齿的同步带相比,它工作时的应力集中会更加的少,更有利与减少带与轮间的摩擦,提高其工作的效率。所以最后选择了圆弧齿的同步带作为机器人的履带。因为传动的功率非常小,电机功率只有0.012Kw,转速为150r/min。而查询机械设计手册,当速度为150r/min时,9mm的带已经可以承受额定功率为0.08Kw,而且为了能够使机器人整体结构比例合理,带宽设计要宽些,所以根据市场规格,选用了25mm带宽的5M同步带,同步带轮选择为28齿的5M同步带轮,所以额定功率肯定足够。同步带轮工程图见附录1。2.1.3机架结构设计在选择了履带结构作为机器人本体的行进方式后,就要开始设计制造其结构。为了使得加工方便,所以在我的设计过程中,尽量地使用到标准件以及型材。机器人本体机架分为足部和身部。足部就是机器人的履带轮支撑结构,身部结构就是机器人的机身支架结构。履带轮支撑结构在保证机器人的机械强度的情况下,为了能够充分地减轻其质量,提高效率,履带轮的支撑结构的材料选择使用了ABS板材加上铝合金型材。使用的铝合金型材一般是用在铝合金门窗上的,其恰好可以与选定的同步带和同步带轮相配合。其思路结构如图2-1所示,图2-1履带轮支架利用两块ABS板材,通过沉头螺钉将其连接贴于铝合金型材的两侧,然后再在ABS板上加工出安装同步带轮轴轴承的阶梯孔,继而将与轴配合好后的轴承安装到轴承孔中,放入同步带轮后,就可以将带轮上的机密螺钉锁紧,便可完成一组履带轮。这样的履带轮一共两组,左右各一组。首先是侧板的设计,轴承的厚度为,所以选择的侧板厚度为,以方便轴承的安装。因为同步带轮安装的轴间距为,同步带轮直径为,轴承外径为。所以综合以上因数,ABS板材的尺寸为。为了能够充分地减少ABS板材安装后摆动,在板材上设计的螺钉安装孔为5个。最后再设计倒角等工艺,便得到侧板的工程图见附录1。 完成侧板的设计后,就要合理地选定安装侧板的铝合金支架,铝合金支架使用的是厚度为,截面尺寸为的铝合金型材。所以在强度合适的情况下,考虑的只是设计安装侧板及机身支架架的孔位,以及设计安装同步带轮及同步带避空的位置。为了能够使整体结构紧凑轻便,所以铝合金支架结构尽量做短,做到恰好能够使得ABS板材紧固,所以最后其长度选择为。则综合以上的因素,得到了铝合金支架的见附录1。机身支架结构机身支架分为前后两部分,前部是铝合金的型材,后部为ABS板材。分为两部分的主要原因是为了方便装配,以及留空给电路的安装。前部与后部的长度,主要取决的是四个部分的长度,分别是两个直流电机及其减速器的长度,以及两个连轴器的长度,还有就是主动轮轴的长度,最后还要加上安装和调试的时候要留空的位置。所以前部使用的是整体厚度为,体积为的铝合金型材,其两侧伸出长度为的安装翼,用于与履带轮支撑结构的连接。后部使用的是体积为的ABS板材。其连接方式也是通过沉头螺钉将履带轮支撑结构连接起来。两种结构的工程图见附录1。2.2料斗结构设计因为喂料系统喂的料是颗粒状的宠物饲料,他们的体积一般是圆柱形型颗粒,所以其落料的方式使用的是自然落料为主,抖动落料为辅的方式。料斗分为两部分,一部分是储存饲料的长方体形饲料盒,另一部分是落料的震动开合机构。盛放饲料的饲料盒,使用的是的ABS薄板拼制而成,结构如图2-2所示。由图可知,整个长方体结构是由8块薄板拼接而成。左右侧板及后面板的高度为,前面板是一块五边形板,底部由三块三角形的面板拼接而成,中间的一块是等腰三角形,左右两底板与中间围板以及各围板的边相拼接,最终使得饲料盒的底部呈一个前低后高的一个斜面,使得里面的饲料能够自然移动到前端,然后通过出口到达震动开合机构落入盛料的位置。顶上有一块盖板,在平时可以盖起来,防止宠物吃掉里面的食物,要补充饲料时,只要打开盖板倒入即可。整个饲料盒通过螺钉与两块对称的“L”字形的铝合金板连接,然后再固定于机器人的前部铝合金上。图2-2饲料盒落料的震动开合机构是一段圆管状的出料口,结合饲料盒的前面板大小,以及内部的开合机构用的舵机大小,最后选择了直径为,厚度为的PVC圆管作为主体。其整体结构如图2-3所示1、PVC管2、固定开口盘3、旋转开口盘4、舵机连接臂5、舵机图2-3如图2-8所示,将PVC管材通过加热、剪裁的方式做成如图的结构,用以固定舵机的位置,做到舵机的轴心与PVC管的轴心同轴。然后旋转开口盘通过螺钉与舵机连接臂连接,再利用螺钉将舵机连接臂与舵机连接起来,安装时要注意旋转开口盘的开口向下。最后就将固定开口盘安装在旋转开口盘上便可。工作的时候,一开始,旋转开口盘的开口没有对着固定开口盘,料无法下落。当喂食信号到达时,舵机开始运动,旋转开口盘不停地绕中心轴进行来回的旋转,此时料受到震动和拨动,就会自然从出料口中落下,就完成了整个投喂的动作。2.3头部结构设计头部的设计比较简单,主要用到的是舵机结构。舵机的特点是,它的输出扭力很大,在电源为4.8V的时候,可以达到。所以它能够轻易地托起一台手机,将其转换各种角度。同时舵机还有的特点是它具有很高的精准度,能够在指令程序的控制下转中的任意角度。机器人头部整体结构如图2-4所示,主要使用的是两个稍大点的舵机一个舵机控制平台的水平面上的转动,另一个控制平台的竖直方向上的一个转动。手机的平台上还安装了一个夹子用于夹持手机。因此在两个舵机的相互作用下,它的活动范围就会近似一个半球,能让手机平台在机器人上灵活地观测到周围的事物,让人们知道如何下达下条指令,完成指定的动作。图2-4头部结构2.4手部结构设计手部结构使用的也是舵机结构,用于夹持物件,例如小球类,可以通过此与宠物进行交流玩耍。整个手部结构由三个大的舵机以及一个小的舵机组成。三个大的舵机分别控制X、Y、Z三个关节的转动,小的舵机用于前部夹持作用。控制Z轴的舵机轴心与水平面垂直,用于控制手部大臂在水平面上的转动。控制X轴的舵机轴与Z轴垂直,用于控制手部中臂的旋转。控制Y轴的舵机轴同时与X轴和Z轴垂直,用于控制小臂的旋转,即控制夹持部分的旋转。夹持部分使用9g的小舵机完成动作,使用的是齿轮加上沿伸棒的机构。整体结构如图2-5所示图2-5手部结构

第3章电路部分设计3.1电源部分电路设计整个电路部分需要电源的部分有单片机、双音频检测芯片、储存芯片、直流马达、以及舵机等。因为电机选用的是12V的直流电机,所以电源选择了3块18650电池作为直流电源,每一块的电池可以提供4.2V的电源,三块电池串联起来后就能提供12.6V的电源。除了直流电机驱动系统使用的是12V的电源外,其他的系统使用的都是5V的电源。为了使电路尽量简单,所以5V的电源通过使用LM7805稳压芯片得到。为了做到控制系统与动力系统的电源隔离,所以设计最小系统与串行存储器件供电共用一块,舵机控制系统使用两块,双音频控制系统及舵机控制系统共用一块,传感器模块与扩展系统共用一块。所以一共需要5块LM7805稳压芯片。因为LM7805稳压芯片的输入最大耐压值为35V,最大输出电流为2.2A,所以可以满足该系统的供电要求。其基本电路如图3-1所示图3-15V稳压电路由图可知,当输入12V直流电压后,经过C1的滤波进入到LM7805的输入端Vin,经过一系列的降压、稳压后,从输出端Vout输出5V电压,C2起到的是缓冲滤波的作用。3.251单片机主控系统部分电路设计51单片机主控系统是根据51单片机最小系统扩展得到的HYPERLINK[3]。根据编程及I/O容量,初步选择了由宏晶公司生产的STC89C52单片机,因为STC系列的单片机在程序烧写上具有ISP烧写功能,使得程序的烧写变得非常的简洁方便。由已学的知识及资料[4]得到单片机主控系统如图3-2所示图3-2单片机主控系统单片机的最小系统包括,由电容C66、C67和晶振76所组成的晶振部分,以及电容C68、按键开关S2和电阻R89组成的复位部分,还有就是电源部分。就这几个部分单片机就能够运行程序了。然后根据控制要求,对单片机的I/O进行了分配。双音频识别的5路输入用P0.0~P0.4口,串行存储器的时钟端SCL和读写段端SDA用P0.5和P0.6口,工作信号灯用P0.7口。舵机控制端用P2.0~P2.7口。直流电机正反转的4个控制端用P1.0~P1.3口,蜂鸣器控制用P1.7口。串行通信用P3.0和P3.1口,编码器输入端用P3.2和P3.3口,手机模拟摘机用P3.7口。为了能够提供足够的电流输入和输出,提高带载的能力,在所有的I/O口都加上了上拉电阻。3.3舵机控制部分电路设计舵机控制使用的也是单片机的系统,但是单片机的型号和资源不一样。因为要控制的舵机尚且为4路。手部的舵机尚且空置,如要添加,在后面可以使用串口通信的方式进行串行控制。根据要求设计系统,如图3-3。舵机控制系统所使用的单片机型号是STC11F02,它有15个I/O可以很好地满足控制要求,其最小系统和主控的一样,都有晶振、复位和电源组成。使用的控制方式是并行控制,并行控制的速度较快,但占用资源稍多,但在此系统已足够。舵机的控制信号输入端为P1.0~P1.7口,输出端为P3.2~P3.5口。系统的电源由Vcc4供电,四路舵机电源分别由Vcc2和Vcc3供电。图3-3舵机控制系统3.4双音频检测电路部分设计双音频检测系统主要使用的是MT8870双音频检测芯片。双音频信号,顾名思义就是由两组音频组成的信号,它应用于电话系统中,用于用户与交换机之间进行交互。我们平时打电话的时候听到的按键音就是双音频信号,每一个音都由一个高音频与一个低音频组成,虽然我们人耳无法分辨出来,但是通过芯片电路就能够检测识别出来,从而识别对应出键盘上每一个键。而MT8870就是这样的一款芯片,他只要结合很少的外部元件就可以完成音频的检测,然后它会将检测到的信号转换为4位二进制码,我们只要通过单片机程序将这一4位二进制码识别出来就能够进行相应的操作了。由资料[5]得到相应的电路图,如图3-4。音频信号经过CON2进入到检测系统,先经过电容、电阻滤波后进入到芯片,经过内部的高低频分频,滤波处理识别后,将识别到的信号转化成二进制从D1~D4输出。当完成一次信号识别,芯片中的CID脚会输出一个高电平,用以确认。因为芯片输出的信号电流很小。为了保证信号输出的质量,在后面添加了一块HC573的锁存器芯片,将信号进行放大和保持。

图3-4双音频检测电路3.5密码掉电保护电路部分电路设计密码掉电保护电路主要用到的是ATMEL公司的24C02串行存储器件,这块芯片具有掉电保存的作用,可以将自定义的密码储存到芯片中,当要启动系统时,就将密码读出,与输入的密码进行比较、识别以及判断。它的外围电路同样非常的简单,参考官方的说明书中的电路后,得到电路如图3-5所示。图3-5密码掉电保护电路由图,芯片1、2、3脚为芯片的地址引脚,用于在通信协议下的芯片识别,这里将他们都接了地,及这三个引脚都为低电平,所以芯片地址就为000。两个电阻起的是上拉的作用,用以增强信号。3.6电机驱动部分电路设计电机驱动部分,开始有两种想法,一种是用三极管或场效应管搭建的“H桥”电路,另一种是用继电器搭建的电路。经过测试发现,用三极管或场效应管搭建时,当电流比较大时,芯片会大量地发热,导致能量大量损失,有时如果散热不足还会出现烧掉芯片的问题。而用继电器搭建就不会出现这一问题,因为是纯机械的接触式开关,所以其允许的功率会大些,在不需要频繁正反转和通断的情况下,继电器的工作效率会更高。设计的电路如图3-6所示图3-6电机驱动部分电路由图,每两个继电器控制一路直流电机的正反转,J5为12V电源的输入,J6和J7分别为两路电机的输出。继电器为两路常开,两路常闭型,只要线路设计好就能通过控制继电器的开合来达到电机正反转的目的,继电器线圈控制端使用的是S8550小功率的PNP型三极管,他的特点是低电平的时候导通,有效避免单片机上电时的可能出现的误动作。在线圈两个引脚上反向并联了一个二极管,是为了防止在通断的时产生不同方向的电压,叠加后击穿三极管,造成电路的损坏。3.7比较器部分电路设计比较器部分电路是在电机运动时,采集编码器信号用的。因为编码器使用的是最普通的槽型编码器,利用光栅盘切断红外光束的原理,将电机的转动转化为电信号,从而通过单片机的运算得到电机转的圈速与转速。查找芯片资料得到电路图如图3-7图3-7比较器电路如图,比较器使用的是LM339四路比较器,事实上两路信号使用LM393就已经足够,为了能够充分使用身边的材料所以选择了LM339。工作时R11与R15为一对电阻,R11阻值为15K,R15阻值为47K,电源电压为5V,所以根据公式计算得到基准电压为3.63V。所以当输入信号的电压大于3.63V的时候,OUT1就会输出5V的高电平,当低于3.63V的时候就会输出低电平。完成所有的电路设计后,就可以进行PCB板的绘制,PCB板见附录3。

第4章程序部分设计4.1自动铃音检测及摘机部分程序设计自动振铃检测,使用的方法是,将手机铃声设定为一种特殊的双音频信号,利用检出来电时的铃声来确认是否有电话接入。当判断有电话接入后,就给手机特有的音频线上的按键开关触点模拟加入一个低电平,让其自动接通。这样就完成了一个手机从接入电话到自动接通的一个过程。其程序见附录2。signal_s为主控单片机P0.4口,为双音频检测芯片的CID接入口,phone_pick_up为模拟自动摘机的控制线,为主控单片机P3.7口,用于接入音频线的按键。当signal_s接受到高电平时,即有电话打入时,就会进入到子程序中,P3.7口就会被拉低,手机识别为接通,为保证接通顺利,低电平会被延时一段时间,保证其不会因为过早断掉信号而导致没接通,同时延时的时间不应太长,防止手机接通后直接进入挂机状态。4.2按键检测部分程序设计因为当我们拨通电话后,在控制端的电话的按下按键,在接收端电话会收到对应按键的一个按键音频,这个音频就是双音频,而MT8870芯片就能够对应将这些按键音转化为4位二进制码,它的组合由资料[6]可得表4-1表4-1MT8870芯片解码表DigitTOEINHEStQ4Q3Q2Q1DigitTOEINHEStQ4Q3Q2Q1ANYLXHZZZZ9HXH10011HXH00010HXH10102HXH0010*HXH10113HXH0011#HXH11004HXH0100AHXH11015HXH0101BHXH11106HXH0110CHXH11117HXH0111DHXH00008HXH1000由表知道,每一个按键音都有一个对应的4位二进制码,所以单片机就能够通过这一4位二进制码识别出对应的按键。设计程序附录2。当芯片CID接入口输出高电平后,即有按键信号输出,单片机就会读取P0口的I/O值,将值赋num变量,然后将num通过与0x0f的位与运算,得到低四位的值,然后再通过取出数组内对应的值就能得到对应的按键,然后将按键赋值给control[x]确认,然后其他子程序就能通过判断control[x]的值,执行相应的子程序,其中x为一二级按键的值,在后面程序会具体说明。num_word[]数组中的值的选取,是为了在调试程序的时候,方便使用数码管显示而设定的。4.3按键控制程序设计当我们得到了control[x]的值后,就可以根据对应的值来执行相应的子程序。按键控制程序见附录2。由程序可看出,在一级程序时,1号键控制1号舵机的向上,也就是头部底座的舵机的顺时针运动。2号键控制机器人的前进。3号键控制2号舵机的向上,也就是头部的向上运动。4号键控制机器人左转。5号键控制机器人投喂系统动作。6号键控制机器人的右转。7号键控制1号舵机的向下,也就是头部底座的舵机的逆时针运动。8号键控制机器人的后退。9号键控制2号舵机的向下,也就是头部的向下运动。*号键为二级程序输入,当按下*号键后,进入二级键识别程序,二级键识别程序中,0号键为修改密码,1号键为退出系统。根据程序的要求还可以进行程序的扩展。4.4密码读取、写入及验证部分程序设计密码的读取与写入主要运用到的是24C02芯片,它的读写规则是遵循I2C总线协议的。根据24C02的芯片说明书,以及资料[7],根据其写入的时序得到程序见附录2。这一部分的程序,都是当需要用到的时候,才在其他程序中调用。事实上I2C在验证密码的时候,就要调用到读写操作的子程序,并且比较每一位的密码是否对应,如果对应就输出一个确认正确的指令,如果不对应就会发出警告声响以及让警告指示灯闪烁。4.5电机控制程序设计电机控制程序需要控制的是电机的前、后、左、右运动,每个动作都是由两个电机同时运动而得到的。前进时,左电机与右电机同时向前运动。后退时,左电机与右电机同时向后退。左转时,左电机向后退,右电机向前进。右转时,左电机向前进,右电机向后退。为了能够保证机器人转动的角度的精度,所以在电机后部加装了自制的编码器,在程序中就可以通过读取信号进行反馈控制电机转的圈数。根据转动圈数,就可以控制没按一次按键机器人前进的一个距离。根据思路得到程序见附录2。如程序所示,当按键“2”被按下后,触发执行前进子程序,左电机前进与右电机前进被置低,驱动PNP三极管S8550导通,使得前进继电器动作,继而电机得电工作。工作后进入检测程序,外部中断被打开,当检测到一次中断后,对应的中断程序执行,将对应的参数加1。当参数加1满了以后,跳入程序将对应三极管控制端置高,继电器失电断开,电机也就停转,当两个电机都转了对应的圈数后就将参数复位,跳出对应子程序,跳回按键检测程序,继续等待执行下一步指令。其它的指令的执行顺序也是如此。4.6舵机控制程序设计要编写舵机控制程序,首先要了解舵机的控制原理。舵机的动作利用的是,改变脉冲宽度的方法去改变其转轴转动的角度。舵机运行的脉冲周期为20ms,每一个脉冲的宽度都对应了舵机的转轴的一个位置。而舵机可以识别到的脉冲的变化宽度范围是0.5ms到2.5ms,而这一宽度范围的脉冲对应的就是舵机0°到180°的变化范围。因为单片机的晶振频率为12MHz,为了能够产生一个周期为20ms的方波信号,利用单片机内部的定时器,让其每100微秒产生一个中断,这样200个中断加起来的时间就是20ms。只要将单片机输出端在20ms的脉冲中的0.5ms到2.5ms的时间段内置高,就能生成一个20ms的方波,而改变高电平的时间,就可以改变其脉宽了,从而改变其轴的角度位置了。根据这一原理,得到程序见附录2。在程序中,使用了定时器0,其工作方式选定为工作方式1。要产生一个100us的中断,那么高八位的初装值为0xFF,低八位值为0x9C。每执行一次定时中断,就会重新装载一次数,并且变量x会加1,当加到200时,也就产生了200次中断,时间就是20ms,也就是舵机的信号的一个周期。要想产生对应的脉宽则可通过对应舵机变量值与x进行比较,来得到对应的脉宽。例如P3^5口的舵机,其变量名为i,在20ms的时间里,当x小于i的时候,P3^5输出高电平,当x大于或等于i时,P3^5输出低电平。这样就可以通过改变i的值来改变高电平输出的时间,便可得到不同的脉宽值,也就对应得到了舵机不同的角度。经测试得到输出信号波形图如图4-1图4-1舵机输出脉冲图

结论本家庭宠物喂养机器人的设计与制作,是设计其利用手机进行远距离控制家中的机器人完成宠物的喂养工作。同时其扩展功能还包括对宠物进行监控以及互动。机器人主要的特点是,可以远程使用手机就完成控制任务,利用双音频检测技术,识别电话的按键音,然后执行相应的程序,完成对应的动作。通过对家庭宠物喂养机器人的设计与制作,充分地调用到了我所有的知识结构,包括机械的的设计与制作,电路的设计与制作,以及程序的编制等等。让我充分地将书本上的知识应用到了实践中去。在设计过程中想到过各种不同的方案,但经过考虑后选择了可行性最高,最有可能让我亲自完成制作的方案。但因为时间有限,以及技术上的问题,所以部分设计未能制作出来,但总体的结构已经完成了,只有最后手部的结构没有制作安装到位,但这不影响大体的结构,以及机器人的动作。经过测试,本家庭宠物喂养机器人能够完成基本的任务要求,可以进行简单的小型的宠物的喂养。完成包括前进、后退、左转、右转等行进动作。还能够完成饲料的投喂,宠物的监控等特殊功能。但此设计还是有可以改进的地方,例如在投喂机构的设计上,现设计的机构只能由人来控制其投喂量的大小。没有一个自动反馈给机器人一个准确的投喂量,所以不知道每次投喂的重量,或数量,只能粗略的一个值。另外一点就是,现机器人只能够手动远程控制,无法自动执行程序,当人忘记或太忙而没有控制机器人喂养,那么宠物就会饿到。所以进一步改成其自身通过图形识别去执行指令是未来的设计目标。

参考文献[1]徐扬生,钱辉环,唐珩,黄卜夫,时曦.一种宠物看护机器人系统.中国专利数据库,2008[2]JonathanFincher.Microsoftroboticsdeveloperbuildsremotedog-sittingbot./microsoft-dog-sitting-robot/21488/,2012[3]任续津.基于ARM的织机主控单元设计.硕博学位论文,2012[4]杨美荣.浅析AT89S51单片机最小系统的设计与制作.实践与探索,2011:179[5]EMCC工作室.DTMF新玩法之一(DTMF的简介和解码)./hongfadg/item/38ab8bf74bee3dce531c2696[6]董海峰,蔡茂国,杨淑雯.公用电话远程控制系统的研制和实现.计算机应用研究.2003,三:115-117[7]锋亚刘.郭天祥开发版自已开发写的时钟./view/00c5bb136c175f0e7cd1374f.html[8]GracianTrivino,LuisMengual,Towardsanarchitectureforsemiautonomousrobottelecontrolsystems.AlbertvanderHeide

InformationSciences

2009-23

[9]李郁峰.履带式移动机器人及其无线控制的实现.太原理工大学学报,2005(01)[10]林志炜.履带式移动机器人运动控制系统设计.南京理工大学.中国优秀硕士学位论文全文数据库,2008[11].履带式移动机器人的设计与研究.孙红新南京信息工程大学.中国优秀硕士学位论文全文数据库,2011[12]耶晓东.基于单片机的简易机械手的设计.微计算机信息,2009(14)[13]罗建章.仿生机器人制作之(二)——三自由度机械手.电子制作.,2005(09)[14]赵保华.基于足球机器人的图像处理与图像识别.兰州理工大学.中国优秀硕士学位论文全文数据库,2006[15]张志武.智能家居系统中家电的远程控制.大庆石油学院.中国优秀硕士学位论文全文数据库,2009

致谢

附录1

附录2完整主程序:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlonguintx,y,z,t;ulongnum,a,e;ucharright_s,w_s,temp0,temp1,t1;ucharpassword[4];ucharpassword_c[4];ucharcontrol[4];ucharnum_word[]={0xff,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90/*9*/,0xC0,0x89,0xA3,0xff,0xff,0xff,0xff};//P0^0、P0^1、P0^2、P0^3用于MT8870双音频检测芯片的输出检测。sbitsignal_s=P0^4;sbitsda=P0^5;sbitscl=P0^6;sbitw_password_led=P0^7;sbitl_f_m=P1^0;sbitl_b_m=P1^1;sbitr_f_m=P1^2;sbitr_b_m=P1^3;sbitH=P1^7;sbitsteering_gear_0_u=P2^0;sbitsteering_gear_0_d=P2^1;sbitsteering_gear_1_u=P2^2;sbitsteering_gear_1_d=P2^3;sbitsteering_gear_2_u=P2^4;sbitsteering_gear_2_d=P2^5;sbitsteering_gear_3_u=P2^6;sbitsteering_gear_3_d=P2^7;sbitRxD=P3^0;sbitTxD=P3^1;sbitl_s_i=P3^2;sbitr_s_i=P3^3;sbitsignal_in=P3^7;sbitphone_pick_up=P3^6;voiddelay(){unsignedchard;for(d=3;d>0;d--);}voiddelay_500m(void)//误差-0.799999999926us{unsignedchara,b,c;for(c=181;c>0;c--)for(b=209;b>0;b--)for(a=4;a>0;a--);}voiddelay_800m(void)//误差-0.000000000182us{unsignedchara,b,c;for(c=218;c>0;c--)for(b=109;b>0;b--)for(a=14;a>0;a--);}voidstart24c02()//开始信号{ sda=1; delay(); scl=1; delay(); sda=0; delay();}voidstop24c02()//停止{ sda=0; delay(); scl=1; delay(); sda=1; delay();}voidrespons24c02()//应答{ uchari; scl=1; delay(); while((sda==1)&&(i<250))i++; scl=0; delay();}voidinit24c02(){ sda=1; delay(); scl=1; delay();}voidwrite24c02_byte(uchardate){ uchari,temp; temp=date; for(i=0;i<8;i++) { temp=temp<<1; scl=0; delay(); sda=CY; delay(); scl=1; delay(); } scl=0; delay(); sda=1; delay();}ucharread24c02_byte(){ uchari,k; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) { scl=1; delay(); k=(k<<1)|sda; scl=0; delay(); } returnk;}voidwrite24c02_add(ucharaddress,uchardate){ start24c02(); write24c02_byte(0xa0); respons24c02(); write24c02_byte(address); respons24c02(); write24c02_byte(date); respons24c02(); stop24c02();}ucharread24c02_add(ucharaddress){ uchardate; start24c02(); write24c02_byte(0xa0); respons24c02(); write24c02_byte(address); respons24c02(); start24c02(); write24c02_byte(0xa1); respons24c02(); date=read24c02_byte(); stop24c02(); returndate;}voidpassword_check(){ while(right_s==1) { while(x<=4) { while(signal_s==1) { while(signal_s==1) { num=P0; num=num&0x0f; password[x]=num_word[num]; while(signal_s==1) { } } x++; } } if(x==5) { password_c[4]=read24c02_add(25); password_c[3]=read24c02_add(24); password_c[2]=read24c02_add(23); password_c[1]=read24c02_add(22); password_c[0]=read24c02_add(21); if(password_c[4]==password[4]&&password_c[3]==password[3]&&password_c[2]==password[2]&&password_c[1]==password[1]&&password_c[0]==password[0]) { right_s=0; password_c[4]=0xff; password_c[3]=0xff; password_c[2]=0xff; password_c[1]=0xff; password_c[0]=0xff; password[0]=0xff; password[1]=0xff; password[2]=0xff; password[3]=0xff; password[4]=0xff; x=0; } else { password_c[4]=0xff; password_c[3]=0xff; password_c[2]=0xff; password_c[1]=0xff; password_c[0]=0xff; password[0]=0xff; password[1]=0xff; password[2]=0xff; password[3]=0xff; password[4]=0xff; w_password_led=1; H=0; delay_500m(); w_password_led=0; H=1; delay_500m(); w_password_led=1; H=0; delay_500m(); w_password_led=0; H=1; x=0; } } }}voidreset_password(){x=0;delay_500m(); while(x<=4) { while(signal_s==1) { while(signal_s==1) { init24c02(); num=P0; num=num&0x0f; write24c02_add((21+x),num_word[num]); while(signal_s==1) {} } x++; } } w_password_led=1;delay_500m();w_password_led=0;delay_500m();w_password_led=1;delay_500m();w_password_led=0;delay_500m();x=0;}voidforward()//前进 {l_f_m=0;//左电机前进r_f_m=0;//右电机前进 while(temp0<=(t1+1)||temp1<=(t1+1)) { if(temp0>=t1) { l_f_m=1; } if(temp1>=t1) { r_f_m=1; } EX0=1;//开外部中断0 EX1=1;//开外部中断1 }l_f_m=1;r_f_m=1;EX0=0;//关外部中断0EX1=0;//关外部中断1 temp0=0;temp1=0;}voidback()//后退 {l_b_m=0;r_b_m=0; while(temp0<=(t1+1)||temp1<=(t1+1)) { if(temp0>=t1) { l_b_m=1;; } if(temp1>=t1) { r_b_m=1;; } EX0=1;//开外部中断0 EX1=1;//开外部中断1 }l_b_m=1;;r_b_m=1;;EX0=0;//关外部中断0EX1=0;//关外部中断1 temp0=0;temp1=0;}voidleft_turn(){r_f_m=0;l_b_m=0; while(temp0<=(t1+1)||temp1<=(t1+1)) { if(temp0>=t1) { r_f_m=1; } if(temp1>=t1) { l_b_m=1; } EX0=1;//开外部中断0 EX1=1;//开外部中断1 }r_f_m=1;l_b_m=1;EX0=0;//关外部中断0EX1=0;//关外部中断1 temp0=0;temp1=0;//左转}voidright_turn()//右转{l_f_m=0;r_b_m=0; while(temp0<=(t1+1)||temp1<=(t1+1)) { if(temp0>=t1) { l_f_m=1; } if(temp1>=t1) { r_b_m=1; } EX0=1;//开外部中断0 EX1=1;//开外部中断1 }l_f_m=1;r_b_m=1;EX0=0;//关外部中断0EX1=0;//关外部中断1 temp0=0;temp1=0;}voidnumber_regonize()//0xff,0xf9//1,0xA4//2,0xB0//3,0x99//4,0x92//5,0x82//6,0xF8//7,0x80//8,0x90//9,0xC0//0,0x89//*,0xA3//#,0xff,0xff,0xff,0xff{ if(control[1]==0xf9)//1 { steering_gear_0_u=0; delay_500m(); steering_gear_0_u=1; control[1]=0xff; } if(control[1]==0xA4)//2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论