聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 家用擦玻璃清洁机器人结构设计毕业设计说明书

家用擦玻璃清洁机器人结构设计毕业设计说明书

时间:2017-07-03 20:49:29    下载该word文档

毕业设计说明书

者: 号:

院: 机械工程学院

(专业) 机械设计制造及其自动化

目: 家用擦玻璃清洁机器人结构设计

指导者: 讲师

( ) (专业技术职务)

评阅者:

( ) (专业技术职务)

2015 5 31


毕业设计中文摘要

毕业设计(论文)外文摘要

第一章 引言 ……………………………………………………………… 1

1.1 课题背景……………………………………………………………1

1.2 国内外擦玻璃机器人的研究概况…………………………………1

1.3 本课题的主要工作…………………………………………………3

第二章 家用擦玻璃清洁机器人总体方案设计 …………………………… 3

2.1 家用擦玻璃清洁机器人的设计原则…………………………………4

2.2 家用擦玻璃清洁机器人的总体方案的确定…………………………4

2.2.1 家用擦玻璃清洁机器人的总体方案……………………………4

2.2.2 总体方案的对比与选择…………………………………………12

第三章 家用擦玻璃清洁机器人详细结构设计………………………………14

3.1 关键部件的选型………………………………………………………14

3.1.1 电机的选型………………………………………………………14

3.1.2 微动开关的选型…………………………………………………15

3.1.3 电池的选择………………………………………………………15

3.1.4 磁铁的选择………………………………………………………16

3.2 微动开关缓冲机构的设计……………………………………………16

3.3 磁铁升降机构的设计…………………………………………………17

3.3.1 磁铁升降机构的ANSYS分析……………………………………18

第四章 家用擦玻璃清洁机器人控制系统设计………………………………21

4.1 单片机控制系统电路的设计……………………………………… 21

4.1.1 单片机系统元器件的选型…………………………………… 21

4.1.2 单片机系统的硬件电路及I/O口分配……………………… 25

4.2 单片机系统编程框图……………………………………………… 25

第五章 家用擦玻璃清洁机器人样机研制与调试……………………………27

5.1控制电路板的设计与调试……………………………………………27

5.1.1 PCB设计…………………………………………………………27

5.1.2 电路板的调试……………………………………………………28

5.2 家用擦玻璃清洁机器人样机的制作…………………………………31

5.3 家用擦玻璃清洁机器人样机的测试…………………………………31

第六章 总结与展望……………………………………………………………33

参考文献……………………………………………………………………… 34

致谢…………………………………………………………………………… 35

附录…………………………………………………………………………… 37


1 引言

1.1 课题背景

智能家居近两年发展火热,作为其重要组成部分的智能服务机器人也不甘示弱,伴随着计算机和自动化技术的迅速发展,人们对机器人的智能性的要求也越来越高,同时智能服务机器人产业近年来也陆续被写入国家发展战略。2006,发展智能服务机器人被列入《国家中长期科学和技术发展规划纲要(2006-2020); 2012,我国出台《智能制造科技发展“十二五”专项规划》和《服务机器人科技发展“十二五”专项规划》,足见我国对机器人行业发展的重视。

在智能机器人如火如荼得发展过程中,目前具有一定的智能性的清洁机器人也成为研究热点之一,智能清洁机器人系统的研究在发达国家受到广泛的关注,许多高科技应用领域,以及实际生产实践中的特殊应用环境的强烈需求更成为它不断发展的强劲动力。

近年来,都市中的高层建筑越来越多,目前对高层建筑的玻璃窗的清洗工作主要还是由清洗工人搭乘吊篮完成的,传统的人工清洗方式既危险,效率又低且成本高,但如果自己清洗的话不仅有危险而且费时费力,况且现在更多的人们希望从繁琐的日常事务中解放出来,因此迫切需要一种设备协助甚至替代人来完成玻璃的清洗工作。

1.2 国内外擦玻璃机器人的研究概况

众所周知,日本是机器人发展较为发达的国家,其对智能机器人的研究实力雄厚,值得我们学习,下图的多用途壁面机器人是一个日本开发的清洁机器人的范例:该机器人自重100kg,同时可载150kg负重,小车的车轮上具有磁性设计,采用磁吸附方式吸附在墙壁上,可直接越过坑洼不平的墙面以及其他墙上的不明障碍物,多用于桥墩底部、玻璃幕墙等检测和修复作业。

上图的双车体机器人也是由日本人研制,其采用负压吸盘吸附,在运行过程中吸盘与壁面之间产生有滑动密封效果,强大的大气压能够保证小车不会从墙壁上滑落,由四个高摩擦系数的轮子贴合在墙壁面上,在吸盘保持负压的过程中,机器人通过控制轮子的正反转控制机器人的行走方向,轮子的差速保证了机器人的转弯功能的实现,且由于四个轮子均为独立控制,所以该机器人控制起来显得格外灵活。

不仅国外有类似的清洁机器人,国内虽然起步较晚,但也已经有了相对成熟的东西,图1.3为北京航空航天大学机器人研究所研制的用于清洗国家大剧院玻璃幕墙的样机,图上所示为该机器人工作在国家大剧院的场景,其由攀爬机构、俯仰调节机构、移动机构和清洗机构等部分构成,总长约3m, 0.5m,宽1m, 整个机身主体由铝型材搭建而成,不仅强度高而且相对重量也轻了许多,其在工作过程中把安装在建筑物上的滑动导杆作为中介,成功避免了机器人对建筑物的直接抓取所可能带来的损伤以及其他不安全因素。

通过对上述文献的分析,无论是国外的多用途壁面机器人还是国内的清洗机器人,在体积及重量上都相对较大,多用途壁面机器人本身就重达100kg,显然这个重量是普通家庭玻璃难以承受的,而北航机器人研究所所研发的清洁机器人样机高度竟然达到了2.9,这对于比较宽阔的玻璃幕墙来说,清洗起来确实方便、迅速,但是对于一些普通的家庭玻璃窗来说,这明显是不合适的。

1.3 本课题的主要工作

本设计拟在设计一款机器人,该机器人能够实现全自动擦拭家庭玻璃的功能,而且需确保擦拭无死角且擦拭干净。

具体工作如下:

1)进行机器人机械结构设计,绘制机器人的三维图,并在三维图的基础上导出其二维图,然后进行ansys分析工作,以确保机械结构的合理性。

2)联系厂家进行机械部件的加工,并将各个部件进行实体装配。

3)设计PCB板子并联系厂家加工以作为控制机器人的硬件。

4 基于单片机控制系统进行C语言编程,以完成整个机器人的擦拭功能。

5)将机器人在玻璃上进行上机调试,完善程序,确保机器人能够将玻璃擦拭干净。

2 家用擦玻璃清洁机器人总体方案设计

2.1 家用擦玻璃清洁机器人的设计原则

家庭用擦玻璃机器人在国内还比较少,国外虽然做的相对成熟但产品一般比较昂贵,并不能实现普及到国内的大部分家庭中愿景,因此,我们要设计一款具有自主知识产权的成品低廉的擦玻璃机器人,与此同时,本课题的设计过程中也要保证如下原则:

1)该机器人能够实现擦拭各种厚度的玻璃的工作,而且各个部件具有较好的互换性,以便维修。

2)各零件应便于装配,便于加工。

3)机器人应操控简单,可以实现无线控制。

4)机器人真正实现智能化,能够全自动地将自己的擦拭任务完成。

2.2 家用擦玻璃清洁机器人的总体方案的确定

在经过无数的文献查阅以及自己的思考工作之后,我已经对擦玻璃机器人有了进一步的认识,经过对文献的整合以及自己的创新,我最终确定了以下几套相对可行的方案。

2.2.1 家用擦玻璃清洁机器人的总体方案

总体方案一:

如上图所示,将擦玻璃机器人做成完全仿人型的自动化机器,机器人的手上安装有擦拭玻璃的抹布以及刷子等,通过对机器人的示教编程,机器人能够记住各个关节的角度,以及擦玻璃的运行模式,就能够达到全自动擦拭的目的。

机器人底部由四个轮子支撑,其中包括两个具有驱动能力的动力轮和两个万向轮,这样能够在运用最少的驱动的前提下,确保机器人具有前往各个方向运行的能力,与此同时机器人的各个轮子均具有升降功能,即能够确保机器人在相对不平的地板上能够自由地运行;然后往上看是机器人的中干,其腰部由具有三个自由度的旋转杆构成,其机构简图如图2.2所示

正如图2.2中表达的那样,机器人的腰部底端具有一个竖直的旋转副,再往上具有两个水平的旋转副,到此该空间开链机构给机器人的末端执行机构-擦拭手爪,提供的自由度为3

2.3所示机构见图为机器人的上半部分,其中支架的旋转副代表机器人的肩关节,然后以下关节依次代表机器人的肘关节和腕关节,不难看出,该部分机构给机器人末端执行构件提供的自由度为3,而整个机器人的机构为空间开链机构,所以综上所述可以得出,机器人的自由度为6,可以实现各种所需要的空间动作。

总体方案二:

采用永磁式的双面吸附小车贴在玻璃两侧的运动来实现擦玻璃的功能。小车分为两个部分:包括主动小车和从动小车,其分别位于玻璃的内侧和外侧,通过相互间强磁铁的吸附来保证小车贴在玻璃上不会滑落,巧妙的编程给了小车灵魂,通过主动一侧带动从动一侧在玻璃上按照程序中编写的路径行走,并在移动过程中通过两面小车底盘的擦拭装置将玻璃擦拭干净。

2.4 正面小车整体效果图

2.5 正面小车内部图

2.42.5为正面小车三维图,其中小车总长260mm,总宽228mm

如图2.5所示,该图为正面小车的内部结构图,其中四块强磁铁吸附在铁质的升降架子上,而架子则通过螺杆与升降旋钮相连接,升降旋钮的底部与外壳上部相接触,因此,当旋动旋钮,在外壳的支撑作用下,升降架便能带动磁铁完成升降动作;在反面小车上,也存在四块磁铁,该四块磁铁与正面的磁铁均为N S极相对,产生强大的吸引力,通过升降机构的调节,能够很方便得调整正反面磁铁之间的距离,从而达到手动调节两面小车间的吸引力的目的以适应擦拭不同厚度玻璃时的情况。

小车的动力来源于分布在小车两侧的直流减速电机,两个小车的轮胎紧紧压在玻璃上,通过对电机正反转的调节完成小车在玻璃上前进以及倒退的动作,同时通过两轮的差速调节完成小车的转弯动作。

2.6

磁铁的旁边是小车的微动开关缓冲机构,如图2.6所示,当小车在运行中一端顶到窗户边框时,缓冲架向小车内部移动,并触动微动开关,此时被触动的微动开关触发小车的其他动作,当小车的这一端离开窗户边框时,在弹簧的作用下,缓冲架恢复到初始状态,微动开关拨片也随着弹开了,能够避免该微动开关一直触动小车去做相同的动作所造成的死机。

2.7 反面小车的整体效果图

2.8 反面小车内部图

2.72.8为反面小车的图,其中小车总长229mm,总宽200mm

该面小车为随动面,即完全靠正面小车的吸引力作为动力在玻璃上完成整套擦拭动作。

总体方案三:

与方案二相类似,依旧采用双面小车吸附在玻璃上的方式来擦拭玻璃,但是本人在方案二的基础上对小车做了进一步结构优化,整体的机械结构变得更加紧凑,没有产生任何多余的浪费的空间。

2.9 正面小车整体效果图

2.10 正面小车内部图

2.92.10为正面小车图,其中小车总长178mm,总宽190mm

2.11 反面小车整体效果图

2.12 反面小车内部效果图

2.112.12为反面小车图,其中小车总长160mm,总宽172mm

在本方案中,磁铁升降机构置于反面,且微动开关的安装结构相比上一方案更加紧凑,从总体来看,无论长度,宽度还是高度的尺寸都比上一方案小巧了好多,使用起来更加便捷。

2.2.2 总体方案的对比与选择

综合分析以上三种方案,虽然方案一在表面上看着更加直接,更加可信,其实它存在着天生的弊端:首先,方案一设计制作工序繁琐,工程庞大,编程复杂,虽然做的是一个仿人型的机器人,但完成的功能则只有擦玻璃而已,实则是大材小用,也可以说并不是针对要完成的擦玻璃功能的专一化设计,所以并不能为人所采用;而且,方案一的机器人还有另一个致命的缺点,那就是它虽然能很好的擦拭屋内一面的玻璃,但是对窗外一面的玻璃则全然束手无策。而对方案二来说它有自己的优点,那就是相比方案一来说它已经做了实质性改变:将擦玻璃的动作转化为小车的来回运动,虽然擦玻璃工作的顺序看似很复杂无章,但其实还是有规律可循,只要适当的归纳总结便能归结出合适的运动路径,换言之,通过恰当的编程来控制小车在玻璃上行走的路径,车到之处,玻璃变得干干净净,这样不仅能起到自动擦玻璃的效果,而且能够同时擦拭双面的玻璃,节约了擦玻璃的时间,而且也解决了城市居民窗外一侧玻璃难擦的困扰,同时相比方案一极大地节约了成本,使其量产成为可能。

依据以上的论述,我们决定采用双面吸附小车擦玻璃的方式来实现功能,那对比方案二和方案三,很明显方案三中的小车,体积更小,结构更加紧凑,小车也更加轻便,更能够让现在生活空间不大的城市居民所接受,图2.13为小车吸附在玻璃上的效果图。

2.13 玻璃吸附效果图

2.14 小车工作流程图

如图2.14所示,小车的工作步骤为:

将双面小车置于玻璃上,令其头部大致朝上。

调节磁铁升降机构,以确保磁铁的吸引力能够保证小车在玻璃上平稳运行。

打开电源开关,按下红外线遥控器的开始按钮。

小车在程序的驱动下,自己运行,首先完成步骤一:小车向上行驶,当碰到上边框后停止,然后经过一段延时,小车后退一个车身,然后通过车轮差速,右轮转动而左轮不转,小车成功实现转弯当小车水平后停止。

⑤小车完成步骤二:在步骤一的基础上小车前行,当碰到窗户左边框后小车停止,然后小车倒退直行,在陀螺仪的驱动下保证平稳直至碰到右边边框停止,然后小车利用差速原理向下转动,然后将车头调正后再向左直行,如此往复,直至小车的边框碰到窗户的下边框时停止,至此整块玻璃的正反面已被小车擦拭干净。

第三章 家用擦玻璃清洁机器人详细结构设计

3.1 关键部件的选型

3.1.1 电机的选型

根据该小车的工作方式,可以计算得出,该小车所需的动力扭矩为:

根据以上计算的数据,在下表选择电机扭矩为8.8NM,即两个电机扭矩之和为17.6NM,远大于所需要的扭矩,因此选用该电机满足使用要求。

3.1 电机参数表

3.1.2 微动开关的选型

3.2 微动开关实物图

KW10-Z1P开关体长度12.8毫米,宽度5.8毫米,高6.5毫米;不锈钢压片长13.5毫米,宽3.75毫米,厚0.28毫米;脚长3.5毫米,宽0.85毫米,厚0.56毫米;耐压125V1A;安装孔2毫米大,孔中心距6.5毫米。

该微动开关只需接出两根线,其中一根GND一根常开线,当不锈钢压片没有被压下时,两根线相当于断路,当压片被压下时,两根线接通,触发小车动作。

3.1.3 电池的选择

3.3 电池参数图

小车的电机为12V直流减速电机,所以综合考虑之下电池的选择参数如上所示。

3.1.4 磁铁的选择

两面小车均依靠磁铁的吸引力吸附在玻璃两侧,所以选择永磁铁的规格很重要,如果磁铁的吸引力过大,会导致电机支座甚至电机的损坏,但如果其吸引力过小又会导致小车车轮与玻璃间摩擦力太小,从而引起小车的打滑现象,甚至滑离玻璃,经过一番实验验证,我选择的磁铁规格为:材质:钕铁硼稀土永磁,电镀涂层:镀镍,性能:N535,最大耐温:80°,形状规格:40X30X10MM,正反面小车分别各装有四块该永磁铁,由于钕铁硼稀土材料做的磁铁磁力很大,所以在小车中磁铁全都被封装了起来以防止发生意外。

3.2 微动开关缓冲机构的设计

3.4 缓冲机构正面图

3.5 缓冲机构反面图

3.6 缓冲机构正面细节图 3.7 缓冲机构反面细节图

微动开关缓冲机构如上图所示,四只扭簧相互配合起到了将挡板控制在恰当的平衡位置的作用,同时,当小车走到玻璃的尽头,挡板将微动开关12压下,为了避免小车一直执行微动开关12触动下的程序,当小车离开窗户边缘后,在扭簧12的共同作用下,挡板被弹开回到初始位置;同理扭簧34也是这样工作的。

该机构设置了卡槽,正是这一对卡槽对挡板起到了限位作用,当小车撞到窗户边界时,有了卡槽的保护,能够防止微动开关不会被挡板撞坏,同时,挡板上端的卡槽和下端的伸出端配合起来起到了限制挡板上下蹿动的作用。

3.3 磁铁升降机构的设计

3.8 升降机构细节图

磁铁升降机构是小车很重要的一个构件,通过旋转旋钮,螺杆被拧入旋钮中,在外壳的支撑下以及导向杆的导向作用下,升降架竖直升起,进而调节反面小车的磁铁到玻璃的距离来调节两个小车间的吸引力,从而保证机器人能够承担不同厚度的玻璃的擦拭工作。

3.9 升降支架图

3.3.1 磁铁升降机构的ANSYS分析

3.10 ANSYS参数设置图

将磁铁升降机构的三维文件导入到ANSYS中并对模型参数进行设置如上图所示,该零件为3D打印件,其材料为玻璃纤维参数为:抗拉强度(Tensile Strength):44Mpa;弹性模量(Elastic Modulus):3500 ~ 7800Mpa(取其为5000Mpa);泊松比为0.25然后设置其受力参数,四块磁铁的吸引力大约为60N,即每块磁铁对于升降机构的压力为15N,可得出其压强为

然后对物件进行网格划分,其结果如图所示:

3.11 ANSYS网格划分图

经过计算机的计算,结果如下:

由以上分析可知,该机构所受的最大应力为,比该材料的许用应力小很多,因此从这个角度看,该设计满足应力的限制要求。

以下为该机构在各个方向的位移图:

3.16 X方向位移图 3.17 Y方向位移图

第四章 家用擦玻璃清洁机器人控制系统设计

4.1 单片机控制系统电路的设计

4.1.1 单片机系统元器件的选型

1CPU的选择

在本课题中,主控CPU需要实时监控2X4的矩阵键盘,且需要具有两路硬件PWM调速功能,然后还要连接外部红外模块以及陀螺仪MPU6050模块,还要通过L298M芯片去驱动两路直流减速电机等等,考虑到这些功能均需要很协调的实现,所以本人选用1T的基于51内核的8位单片机STC12C5A60S2,如图4.1所示。

4.1 单片机管脚图

4.2 单片机内部结构框图

该芯片的工作电压为3.5-5.5V,工作频率范围:035MHz,相当于普通8051 0420MHz,片上集成1280字节 RAM,有KFlash程序存储器,有两个定时器T0T1,拥有独立的波特率发生器,有两路UART串口,有两路硬件PWM发生器,该种封装拥有40-pinI/O口,复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA,拥有内置EEPOM,内部集成MAX810专用复位电路,内置看门狗,具有外部中断I/O7,传统的下降沿中断或低电平触发中断。

2)红外模块

红外模块用于实现对小车的无线控制,本课题中采用HX1838模块,该模块具有宽电压适应、高灵敏度、低功耗、优良的抗干扰特性,而且该模块应用广泛,多用于家用电器、空调、玩具等红外遥控接收。

4.3 HX1838芯片引脚图

3)电机驱动模块

4.4 L298M芯片引脚图

本课题中采用了L298-M电机驱动模块其运用全新原装L298芯片设计,双H 桥能够驱动2路直流或者1路步进电机,峰值驱动电流能达 4A。在L298M芯片底部布置有大面积的金属散热片,用以快速散失掉驱动芯片产生的热量,以免烧坏芯片。

L298M的使用方法:如果 IN1输入高电平,OUT1将输出高电平,如果IN1输入低电平,OUT1将输出低电平,同理IN2 IN3 IN4的编程方法与之类似。

4.5斩波电路图 4.6斩波原理图

PWM调速的本质便是通过斩波实现改变输出有效电压的方式来调节电机的速率,如上图所示S表示开关, VD 表示续流二极管。当S闭合时,直流电源电压 加到电动机上;当S断开时,直流电源与电机断开,电动机电枢电流经 VD 续流,因此两端电压接近于零。如此反复,电枢端电压波形如图所示,好像是电源电压在时间内被接上,又在时间内被斩断,所以称“斩波”。

运用该模块再融合进STC12芯片的硬件PWM输出,用PWM调制的方法,把恒定的直流电源电压调制成频率一定、宽度可变的脉冲电压序列,从而可以改变平均输出电压的大小,进而实现对直流减速电机的无级调速。

4)陀螺仪模块

本课题中使用的陀螺仪型号为MPU6050,该模块采用标准的IIC通信协议,其供电电源为3—5V,内部整合了3轴陀螺仪、3轴加速器最大的加速度测量范围为±16g,陀螺仪测量范围最大为±2000°/秒,本人利用该模块反馈Z轴的加速度值去找到模块与水平方向的夹角,从而在小车一开始向上运行的过程中由该值判断小车的姿态并通过PWM硬件调节两边电机的旋转速率进行差速调速,令小车灵活地不断地为自己调平,实现竖直向上的运动,同样运用X轴的加速度器反馈回来的值去控制小车在后来阶段水平运行的过程中的姿态调整,真正地实现小车姿态的闭环控制。

4.1.2 单片机系统的硬件电路及I/O口分配

4.7 单片机控制系统原理图

上图为我所设计单片机控制系统的原理图,其关键引脚表如下所示

4.1 电机驱动引脚

4.2 矩阵键盘引脚

4.3 MPU6050引脚

4.3 单片机系统编程框图

第五章 家用擦玻璃清洁机器人样机研制与调试

5.1控制电路板的设计与调试

结合小车的机械部分所留出来的空间,本课题作者设计并加工的控制板如下图所示

5.1 控制板实物图

5.1.1 PCB设计

5.2 PCB设计图

上图即为本课题中所绘制的PCB板子,首先要用altium designer将各个元器件在板子上尽量有序得画出来,然后把已经拥有所有元器件的板子上的元件再进行更加合理地排列,然后点击Auto Route/All 开始自动布线,待布线完毕之后再进行手工调整,到此PCB板大致绘制完成。

5.1.2 电路板的调试

为防止刚刚焊接完成的板子运行起来发生电路危险,还需要进行一系列的硬件测试:

1)测试条件

5.3 电源模块PCB

K1的两个焊盘短。

2)电源测试

A) 首先测量J1的两个焊盘有没有短路,用二极管档或者电阻档测量。若短路,停止一

切测试,检查原因。

B) 12V电源的负极焊接在J1GND焊盘上,正极悬空。

C) 将万用表拨到直流20A档,并将表笔插入对应位置。

D) 将万用表的红色表笔接在电源的正极上,黑色表笔快速(大约0.5S)连接在电路板J1+12V焊盘上。观察万用表的电流,若电流大于500mA,请停止一切测试,检查问题。若电流小于500mA,继续测试。

E) C)中的电流正常(小于500mA),将万用表拨到直流电压20V档,先测试U1的输入即U1-pin1脚的电压是否是12V,然后测试5V测试点的电压是否为5V,若为5V则继续测试;否则检查U1是否为L7805CV并且查看L7805CVdatasheet看其引脚定义是否和PCB上的一致。

F) 测试U9-pin2脚的电压是否为3.3V,若为3.3V则继续下面的测试;否则检查U9是否为AMS1117-3.3并且查看其datasheet,看其引脚定义是否和PCB上的一致。

5.4 电源模块PCB细化图1 5.5电源模块PCB细化图2

3)单片机最小系统测试

A) 测试U2-pin40脚的电压是否为5V

B) 测试U2-pin9脚的电压是为为5V

C) 通过USBTTL模块给单片机下载程序,看是否能正常下载。

D) 观察C)中下载的程序是否正常工作(这个程序一般为LED闪烁测试)。

4)红外接收传感器测试

A) 测量U8-pin3是否为5V

B) 移植红外遥控测试程序,检测红外接收头是否工作正常。

5.6 红外线PCB

5)电机驱动测试

A) 测量U4-pin6脚是否为12V

B) 测量U4-pin8U4-pin12U4-pin14三个引脚的电压是否为5V

C) 将两个电机接上,并编写程序测试该驱动是否正常工作。

6MPU6050测试

A) 测量U5-pin13脚的电压是否为3.3V

B) 测量U10-pin2U10-pin8的电压是否为3.3V

C) 测量U10-pin15的电压是否为5V

D) 编写程序读取MPU6000的数据,然后观察数据是否正常。

5.7 MPU6000 PCB

7)其他测试

A) 8路微动开关焊接到对应位置上。

B) 测量U3-pin5U6-pin5U7-pin5脚是否为5V

C) 移植按键测试程序,观察这8个开关是否可实现共用一个中断。

5.8 微动开关PCB

5.2 家用擦玻璃清洁机器人样机的制作

通过以上一系列的工作,擦玻璃机器人的设计工作已经宣告完毕,由于零件要求重量轻且需有一定的强度,故3D打印成了最合适的加工方式,其中电机座和磁铁升降架所用的材料为玻璃纤维,而其它件均采用光敏树脂的材料打成,再经过实体装配后,实物图如下图所示:

5.9 实体样机展示图

5.3 家用擦玻璃清洁机器人样机的测试

5.10 机器人运行状态1

5.11机器人运行状态2

5.12 机器人运行状态3

以上几图为机器人的上机运行情况,机器人行走较为平稳,且各个环节均运行正常,陀螺仪确实起到了实时调速的作用,保证了小车始终保持水平姿态的运行,小车最终也是按照程序里面规划的路径将整块玻璃走完,整个过程实现了全自动化,且擦拭效果良好。

第六章 总结与展望

本课题自主设计了一款适用于家庭擦玻璃的机器人,该机器人可以在玻璃上全自动运行并同时将玻璃擦拭干净。本课题作者首先阅读了大量文献,发现了国内外清洁机器人存在的一系列弊端,但也发现了其可取之处,经过取长补短以及自己的思考之后得到了自己的方案,然后根据方案做出了实体样机,归纳总结整个过程,本课题的主要工作有以下几点:

1)完成了擦玻璃机器人的整体的机械结构设计,并进行了加工制作及装配。

2)完成了整个机器的程序编制并将其烧写在单片机中,并令小车行走顺畅。

3)利用陀螺仪反馈回小车的位姿并实时对其进行闭环控制。

4)利用差速原理实现了小车在玻璃上的转弯,并运行良好。

样机的运行结果表明,以上的努力都得到了应有的回报,但是在此基础上,本人认为,有待进一步研究的工作还有很多,归纳如下:

1)擦玻璃机器人属于智能家居范畴,需要更好的人机界面才能满足人们的需求。

2)由于电机的原因,小车运行起来噪声较大,需要设计添加防噪装置。

3)陀螺仪的程序还不够完美,需要进一步加上卡尔曼滤波算法,使小车闭环控制更加精确。

4)由于小车是上带有强磁,所以为了避免在使用过程中造成意外,需要添加隔磁装置。

参考文献

[1] 王巍,张厚祥等.曲面幕墙清洁机器人攀爬技术[J]. 北京航空航天大学学报,200834117~19

[2] 唐伯雁.自攀爬幕墙清洗机器人机械结构的设计与研究[D],北京:北京工业大学,20051~14

[3] 王硕.智能家居中玻璃窗自动清洗装置的研制[D],大连:大连工业大学,20121~5

[4] 钱志源,付庄等.玻璃幕墙清洗机器人壁面适应能力分析[J].上海交通大学学报,2006 , 407):1158~1159

[5] 王巍,唐伯雁.倒锥面高层玻璃幕墙清洗机器人设计[J]. 北京航空航天大学学报, 2006 , 326):738~739

[6] 陈沛富.高楼玻璃幕墙清洗机器人设计研究[D],重庆:重庆大学,20063~8

[7] 胡启宝.多吸盘式玻璃幕墙清洗机器人本体设计[D],上海:上海交通大学,200717~25

[8] 邵浩,赵言正等. 用于玻璃幕墙清洗作业的爬壁机器人系统[J].制造业自动化, 2000 , 222):6~7

[9] 老杨.51单片机工程师是怎样练成的[M].北京:电子工业出版社,2012

[10] 程国钢,陈跃琴等.51单片机典型模块开发查询手册[M].北京:电子工业出版社, 2012

[11] J.Kuffner,Jr.,S.Kagmi, K. Nishiweki, M. Inaboa, and H. Inolue, "Dynamically-Stable Motion Planning for Robots," Autonomous Robots, vol.12, pp. 105-118, 2002.

[12] Lee,C.S.G.,Robot Arm kingmatics,Dymaies,and Control.Computer,Vol.

15,PP.62-80,1982

[13] 高金莲.工程图学[M].北京:机械工业出版社,2008

[14] 何贡.互换性与测量技术(第二版)[M].北京:中国计量出版社,2005

[15] Daniel.E.Whitney,State Space Task of Remote Manipulation Models, IEEE Trans,Vol.14,pp617-623,No.6,1969

希望河工大越来越漂亮,越来越担当,越来越辉煌!

附录

家庭擦玻璃机器人C语言程序设计

#include "STC12C5A.h"

#include

#include //Keil library

#include //Keil library

#define uchar unsigned char

#define uint unsigned int

sbit IN1 = P1^2; //L298N输入控制端定义

sbit IN2 = P1^1; //L298N输入控制端定义

sbit ROW1 = P0^2;

sbit ROW2 = P0^3;

sbit COL1 = P0^4;

sbit COL2 = P0^5;

sbit COL3 = P0^6;

sbit COL4 = P0^7;//矩阵键盘定义

sbit IRIN = P3^2;//红外接收头数据线

sbit SCL=P2^0; //IIC时钟引脚定义

sbit SDA=P2^1; //IIC数据引脚定义

unsigned int Cnt,i,a,b,c,panduan,biaozhi0,biaozhi1,biaozhi2,biaozhi3,biaozhi4;

unsigned char d,IRCOM[7];

//****************************************

// 定义MPU6050内部地址

//****************************************

#define SMPLRT_DIV 0x19 //陀螺仪采样率,典型值:0x07(125Hz)

#define CONFIG 0x1A //低通滤波频率,典型值:0x06(5Hz)

#define GYRO_CONFIG 0x1B //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)

#define ACCEL_CONFIG 0x1C //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G5Hz)

#define ACCEL_XOUT_H 0x3B

#define ACCEL_XOUT_L 0x3C

#define ACCEL_YOUT_H 0x3D

#define ACCEL_YOUT_L 0x3E

#define ACCEL_ZOUT_H 0x3F

#define ACCEL_ZOUT_L 0x40

#define TEMP_OUT_H 0x41

#define TEMP_OUT_L 0x42

#define GYRO_XOUT_H 0x43

#define GYRO_XOUT_L 0x44

#define GYRO_YOUT_H 0x45

#define GYRO_YOUT_L 0x46

#define GYRO_ZOUT_H 0x47

#define GYRO_ZOUT_L 0x48

#define PWR_MGMT_1 0x6B //电源管理,典型值:0x00(正常启用)

#define WHO_AM_I 0x75 //IIC地址寄存器(默认数值0x68,只读)

#define SlaveAddress 0xD0 //IIC写入时的地址字节数据,+1为读取

//****************************************

//函数声明

//****************************************

void delay(unsigned int k); //延时

void Kalman_Filter(float Accel,float Gyro);

void lcd_printf(uchar *s,int temp_data);

//MPU6050操作函数

void InitMPU6050(); //初始化MPU6050

void Delay5us();

void I2C_Start();

void I2C_Stop();

void I2C_SendACK(bit ack);

bit I2C_RecvACK();

void I2C_SendByte(uchar dat);

uchar I2C_RecvByte();

void I2C_ReadPage();

void I2C_WritePage();

void display_ACCEL_x();

void display_ACCEL_y();

void display_ACCEL_z();

uchar Single_ReadI2C(uchar REG_Address); //读取I2C数据

void Single_WriteI2C(uchar REG_Address,uchar REG_data); //I2C写入数据

//延时

//****************************************

void delay2(unsigned int k)

{

unsigned int i,j;

for(i=0;i

{

for(j=0;j<121;j++);

}

}

//**************************************

//延时5微秒(STC90C52RC@12M)

//不同的工作环境,需要调整此函数

//当改用1TMCU,请调整此延时函数

//**************************************

void Delay5us()

{

int p=0;

for(p=0;p<10;p++)

{

_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

}

}

void dianjizhengzhuan()

{

IN1=0;

IN2=0;

CCAP0H=0X88;

CCAP0L=0X88;

CCAP1H=0X88;

CCAP1L=0X88;

}

void dianjifanzhuan()

{

IN1=1;

IN2=1;

CCAP0H=0X88;

CCAP0L=0X88;

CCAP1H=0X88;

CCAP1L=0X88;

}

void dianjifanzhuan1()

{

IN1=1;

IN2=1;

CCAP0H=0X66;

CCAP0L=0X66;

CCAP1H=0X66;

CCAP1L=0X66;

}

void dianjitingzhi()

{

IN1=1;

IN2=1;

CCAP0H=0X00;

CCAP0L=0X00;

CCAP1H=0X00;

CCAP1L=0X00;

}

void Youlunzhuanzuobuzhuan()

{

IN1=0;

IN2=0;

CCAP0H=0X88;

CCAP0L=0X88;

CCAP1H=0Xff;

CCAP1L=0Xff;

}

void Zuolunzhuanyoubuzhuan()

{

IN1=0;

IN2=0;

CCAP0H=0Xff;

CCAP0L=0Xff;

CCAP1H=0X88;

CCAP1L=0X88;

}

void dianjitiaosudayu0()

{

IN1=0;

IN2=0;

CCAP0H=0X88;

CCAP0L=0X88;

CCAP1H=0X55;

CCAP1L=0X55;

}

void dianjitiaosuxiaoyu0()

{

IN1=0;

IN2=0;

CCAP0H=0X55;

CCAP0L=0X55;

CCAP1H=0X88;

CCAP1L=0X88;

}

void dianjitiaosudayu0fan()

{

IN1=1;

IN2=1;

CCAP0H=0X99;

CCAP0L=0X99;

CCAP1H=0X77;

CCAP1L=0X77;

}

void dianjitiaosuxiaoyu0fan()

{

IN1=1;

IN2=1;

CCAP0H=0X77;

CCAP0L=0X77;

CCAP1H=0X99;

CCAP1L=0X99;

}

void Delay(unsigned int k)

{

unsigned int i,j;

for(i=0;i

{

for(j=0;j<800;j++);

}

}

void delay1(uchar x)

{

unsigned char f;

while(x--)

{

for (f = 0; f<120; f++)

{

_nop_();

}

}

}

void PWMzhunbei()

{

CCON=0;

CL=0;

CH=0;

CMOD=0X00;

CCAP0H=0X00;

CCAP0L=0X00;

PCA_PWM0=0X00;

CCAPM0=0X42;

CCAP1H=0X00;

CCAP1L=0X00;

PCA_PWM1=0X00;

CCAPM1=0X42;

CR=1;

}

void Dingshiqi()

{

TMOD=0X22; //定时器设置 1ms in 12M crystal

TH0=(65536-9000)/256;

TL0=(65536-9000)%256;//定时9mS

TR0=1;

}

void Zhongduan()

{

ET0=1;

EX0=1;

EX1=1;

PX0=1;//中断优先级

PX1=1;

EA=1;

}

void Canshu()

{

Cnt=0;

i=0;

panduan=0;

biaozhi1=0;

biaozhi2=0;

biaozhi4=0;

IRIN=1;

}

main()

{

Delay(500);

Canshu();

PWMzhunbei();

InitMPU6050();

Dingshiqi();

Zhongduan();

while(IRCOM[2]==0x0C)

{

Delay(500);

dianjizhengzhuan();

biaozhi4=1;

while(1)

{

while(biaozhi4==1)

{

z=GetData(ACCEL_ZOUT_H);

if(z>0)

{

dianjitiaosudayu0();

}

if(z<0)

{

dianjitiaosuxiaoyu0();

}

}

while(biaozhi1==1)

{

z=GetData(ACCEL_XOUT_H);

if(z<0)

{

dianjitiaosudayu0();

}

if(z>0)

{

dianjitiaosuxiaoyu0();

}

}

while(biaozhi2==1)

{

z=GetData(ACCEL_XOUT_H);

if(z<0)

{

dianjitiaosudayu0fan();

}

if(z>0)

{

dianjitiaosuxiaoyu0fan();

}

}

}

}

}

void Timer0(void) interrupt 1

{

if(Cnt==0)

{

Cnt++;

P0=0XEF;

i=1;

}

if(Cnt==1)

{

Cnt++;

P0=0XDF;

i=2;

}

if(Cnt==2)

{

Cnt++;

P0=0XBF;

i=3;

}

if(Cnt==3)

{

Cnt=0;

P0=0X7F;

i=4;

}

}

void qianweidong() interrupt 2

{

if((ROW1==0)||(ROW2==0))

{

if((P0==0XDB)||(P0==0XBB))//S2 S3

{

EX1=0;

Delay(500);

if(panduan==1)

{

biaozhi1=0;//标志1

Delay(100);

dianjitingzhi();

Delay(3000);

dianjifanzhuan();

biaozhi2=1;

Delay(300);

}

if(panduan==0)

{

biaozhi4=0;

dianjitingzhi();

Delay(3000);

dianjifanzhuan1();

Delay(1600);

Youlunzhuanzuobuzhuan();

Delay(7000);

dianjitingzhi();

Delay(3000);

dianjizhengzhuan();

biaozhi1=1;//标志1

panduan=1;

}

EX1=1;

}

if((P0==0XD7)||(P0==0XB7))//S6 S7

{

biaozhi2=0;

EX1=0;

dianjitingzhi();

Delay(3000);

dianjizhengzhuan();

Delay(1700);

Youlunzhuanzuobuzhuan();

Delay(510);

dianjizhengzhuan();

Delay(350);

Zuolunzhuanyoubuzhuan();

Delay(700);

dianjizhengzhuan();

biaozhi1=1;

EX1=1;

}

if((P0==0XEB)||(P0==0X7B)||(P0==0XE7)||(P0==0X77))//S1

{

dianjitingzhi();

EX1=0;

biaozhi1=0;

biaozhi2=0;

}

if(P0==0X7B)//S4

{

}

if(P0==0XE7)//S5

{

}

if(P0==0X77)//S8

{

}

}

else

{

}

}

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服