《机械电子工程专业机电一体化方向专业设计指导书.docx》由会员分享,可在线阅读,更多相关《机械电子工程专业机电一体化方向专业设计指导书.docx(39页珍藏版)》请在三一办公上搜索。
1、机电一体化方向专业设计指导书天津理工大学机械工程学院机电工程系2013-6-24目 录一、实践目的- 3 -二、实践目标- 3 -三、实践学时- 3 -四、实践地点- 3 -五、实践要求- 3 -六、组织形式- 3 -七、实践内容- 4 -八、进度安排- 4 -九、考核依据- 4 -十、实验设备- 4 -十一、注意事项- 5 -附录一:焊接工具清单- 5 -附件二:单片智能机寻迹机器人材料清单- 6 -附录三:万用表的使用- 7 -附件四:电烙铁的使用方法- 8 -附件五:智能寻迹机器人介绍- 8 -附件六:程序状态指示灯演示验证程序- 10 -附件七:流水灯演示验证程序- 12 -附件八:数
2、码管演示验证程序- 14 -附件九:数码管及跑马灯演示验证程序- 16 -附件十:按键中断查询演示验证程序- 19 -附件十一:话筒声音识别演示验证程序- 21 -附件十二:光敏电阻与蜂鸣器演示验证程序- 23 -附件十三:红外反射与直流电机驱动演示验证程序- 24 -附件十四:串口通信程序演示验证程序- 28 -实验十五:综合功能演示验证程序- 30 -一、实践目的在学习了电路、模拟电子技术、数字电子技术、微机原理及接口技术、测试技术与信号分析等专业先修课程的基础上,进一步培养学生机电综合应用技能,为后续的毕业设计打好基础。二、实践目标培养学生综合应用所学知识来构建微机应用系统和实际动手能力
3、,强化学生实践能力,激发学生专业课的学习热情。三、实践学时3个集中教学周+3个分散教学周四、实践地点地点:星期上午 8:0012:00下午 2:004:00一二三四五*实验室只对机电综合实践阶段开放,综合性设计性实验采取分散式进行。五、实践要求(1)完成专业设计说明书 1 份(不少于 5000 字); (2)组装并焊接一个完整的智能寻迹机器人套件; (3)与该系统配套并编译通过的软件系统;(4)至少完成该系统的相关功能其中之一的:A. 智能寻迹功能(可走黑线或白线)B. 实现智能防撞功能C. 实现遥控机器人基本动作功能D. 实现声控机器人基本动作功能六、组织形式每两个人一组七、实践内容(1)组
4、装智能寻迹机器人机械结构部分(2)完成单片机AT89S51/AT89S52系统硬件焊接与调试; (3)完成软件编写与调试(实现至少一种功能); (4)完成专业设计说明书(5)参加专业设计答辩(每组10分钟陈述,回答问题5分钟)八、进度安排周次工作内容第1周组装机器人并熟悉控制过程,集中安排第2周焊接机器人并根据附录程序进行测试,集中安排第3周实现基本功能设计,集中安排第4周综合设计和调试阶段,分散安排,每周安排一次答疑第5周综合设计和调试阶段,分散安排,每周安排一次答疑第6周撰写设计说明书并准备答辩,答辩时间另定九、考核依据(1)专业设计说明书完整性、正确性(10%); (2)机械结构部分美观
5、性、合理性(20%)(3)硬件系统,焊接完整、调试通过(20%); (4)软件系统,编译通过、达到功能要求(20%); (5)答辩及回答问题(20%)(6)其它拓展创新功能实现(10%)十、实验设备(1)智能寻迹机器人电路部分一套 (2)红外遥控器一套(3)智能寻迹机器人实验指导书一本(4)COM串口通信线一条(5)智能寻迹机器人机械部分一套(6)焊接工具一套(两个组共用一套,清单见附件一)(7)万用表及示波器。十一、注意事项(1)上电前测试电路板(万用表测量电路电源两端,检查是否短路); (2)由于系统采用USB 口供电, 注意 USB 口使用安全,即 USB 口要有足够的驱动力(经测试,一
6、般的台式机后面板输出 USB口能达到要求); (3)认真阅读电烙铁万用表等工具的使用注意事项; (4)在手册中未明确规定的事项,应及时请示指导老师,否则造成仪器损坏要照价赔偿,而因操不当引起的事故后果自负。附录一:焊接工具清单序号名称1工具箱2挂带电笔3塑柄小一字改锥4塑柄小十字改锥5镊子6美工刀76#尖嘴钳86#偏口钳9烙铁架103#一字电工改锥113#电十字工改锥12万用表(华谊830)13电烙铁附件二:单片智能机寻迹机器人材料清单位号名称备注位号名称备注M1电机1接线座SIU1LED数码管M2电机2接线座IR1红外接收头X1前端探测板接线座RX110K排阻DC电源接线座Z111.0592
7、晶振R115KIC1AT89S51R2220IC2MAX232CPER3150KIC3L9110集成电路R41MIC4L9110集成电路R547KC110F/16VR64.7KC2104R7560C3104R8560C4104R9560C510F/16VR10560C610F/16VR11560C730PFR12560C830PFR13560C9104R14220C1010F/16VR1510KC1110F/16VR16560C1210F/16VR1710KC1310F/16VR18560D1D8红色发光二极管R19560D9绿色发光二极管R20560S1按键开关R21560S2按键开关R21
8、560S3开关R22560COM19针串行端口R23560D1D2LED红色发光二极管前板用R2410KV1红外发射头前板用R25560V2红外接收头前板用RL1光敏电阻V3红外发射头前板用SB1蜂鸣器V4红外接收头前板用B1话筒V5红外接收头前板用R1220前板用V6红外发射头前板用R2220前板用R3560前板用R415K前板用R515K前板用R6220前板用R7560前板用R815K前板用 COM数据线一条M50462红外遥控发射器一个V1V28550V38050附录三:万用表的使用(1)测量电阻:先将表笔搭在一起短路,如果指针偏离零点,随即调整“”调零旋钮,使指针恰好指到0。然后将两根
9、表笔分别接触被测电阻(或电路)两端,读出指针在欧姆刻度线(第一条线)上的读数,再乘以该挡标的数字就是所测电阻的阻值。例如用 R100 挡测量电阻,指针指在 80,则所测得的电阻值为 80100=8K。由于”刻度线左部读数较密,难于看准,所以测量时应选择适当的欧姆挡。使指针在刻度线的中部或右部(即指针指示在量程的 1/32/3处),这样读数比较清楚准确。每次换挡,都应重新将两根表笔短接,重新调整指针到零位,才能测准。 (2)测量直流电压:首先估计一下被测电压的大小,然后将转换开关拨至适当的 V 量程,将红表笔接被测电压“+”端,黑表笔接被测量电压”-”端。然后根据该挡量程数字与标直流符号“DC-
10、”刻度线(第二条线)上的指针所指数字,来读出被测电压的大小。如用 V30 伏挡测量,可以直接读 0V300V 的指示数值。如用 V30 伏挡测量,只须将刻度线上 300 这个数字去掉一个“0”,看成是30,再依次 200、100 等数字看成是 20、10 既可直接读出指针指示数值。例如用V6 伏挡测量直流电压,指针指在 15,则所测得电压为1.5 伏。 (3)测量直流电流:先估计一下被测电流的大小,然后将转换开关拨至合适的mA量程再把万用表串接在电路中,同时观察标有直流符号“DC”的刻度线如电流量程选在 3mA挡,这时,应把表面刻度线上300 的数字,去掉两个“0” ,看成 3,又依次把 20
11、0、100 看成是 2、1,这样就可以读出被测电流数值。例如用直流 3mA挡测量直流电流,指针在 100,则电流为 1mA。 (4)测量交流电压:测交流电压的方法与测量直流电压相似,所不同的是因交流电没有正、负之分,所以测量交流时,表笔也就不需分正、负。读数方法与上述的测量直流电压的读法一样,只是数字应看标有交流符号”AC”的刻度线上的指针位置。 万用表使用的注意事项: (1)在使用万用表之前,应先进行“机械调零” ,即在没有被测电量时 ,使万用表指针指在零电压或零电流的位置上。 (2)在使用万用表过程中,不能用手去接触表笔的金属部分,这样一方面可以保证测量的准确,另一方面也可以保证人身安全。
12、 (3)在测量某一电量时,不能在测量的同时换档,尤其是在测量高电压或大电流时,更应注意。否则,会使万用表毁坏。如需换挡,应先断开表笔,换挡后再去测量。 (4)万用表在使用时,必须水平放置,以免造成误差。同时,还要注意到避免外界磁场对万用表的影响。 (5)万用表使用完毕,应将转换开关置于交流电压的最大挡。如果长期不使用,还应将万用表内部的电池取出来,以免电池腐蚀表内其它器件。附件四:电烙铁的使用方法 1、预热:烙铁头成45 度角,顶住焊盘和元件脚。预先给元件脚和焊盘加热。烙铁头的尖部不可顶住 PCB 板无铜皮位置,这样可能将板烧成一条痕迹,烙铁头最好顺线路方向,烙铁头不可塞住过孔,预热时间为12
13、 秒。 2、上锡:将锡线从元件脚和烙铁接触面处引入;锡线熔化时,掌握熔化速度;当锡散满整个焊盘时,拿开锡线;锡线不可直接靠在烙铁头上,以防止助焊剂烧黑;整个上锡时间大概为 12 秒。 3、拿开烙铁:当焊锡有轻微烟雾冒出时候,即可顺着元件脚方向移开烙铁,焊点凝固。 电烙铁使用的注意事项: 1、电烙铁使用前应检查使用电压是否与电烙铁标称电压相符。 2、电烙铁应该接地。 3、电烙铁通电后不能任意敲击、拆卸及安装其电热部分零件。 4、电烙铁应保持干燥,不宜在过分潮湿或淋雨环境使用。 5、拆烙铁头时,要关掉电源。 6、关电源后,利用余热在烙铁头上上一层锡,以保护烙铁头。 7、当烙铁头上有黑色氧化层时候,
14、可用砂布擦去,然后通电,并立即上锡。附件五:智能寻迹机器人介绍 单片机益智系列智能寻迹机器人是由益芯科技有限公司为科教方便而研发设计。根据现代学校对嵌入式系统开发的需求。依据提高学生实际动手操作能力和思考能力,以加强学生对现实生活中嵌入式系统的应用为参照。智能寻迹机器人全新的设计模式,良好的电路设计,一体化的机电组合,智趣的系统开发,更是成为加强学生学习兴趣的总动源。 智能寻迹机器人采用现在较为流行的8位单片机作为系统大脑。以8051系列家族中的AT89S51/AT89S52为主芯片。40脚的DIP封装使它拥有32个完全IO(GPIO通用输入输出)端口,通过对这些端口加以信号输入电路,控制电路
15、,执行电路共同完成寻迹机器人。P0.0,P0.1,P0.2,P0.3分别通过LG9110电机驱动来驱动电机1和电机2。由电机的正转与反转来完成机器人的前进,后退,左转,右转,遇障碍物绕行,避悬崖等基本动作。在机器人前进时如果前方有障碍物,由红外发射管发射的红外信号被反射给红外接收管,红外接管将此信号经过P3.7传送入AT89S52中,主芯片通过内部的代码进行机器人的绕障碍物操作,同时主芯片将P3.7的信号状态通过P2.5的LED指示灯显示出来。机器人行走时会通过P3.5与P3.6的红外接收探头来进行检测。 当走到悬崖处时,P3.5或P3.6将收到一个电平信号,此电平信号将通过相应端口传送入主芯
16、片中,主芯片通过内部代码完成机器人的避悬崖操作。同时P3.5与P3.6的信号状态将通过P2.6/P2.7显示出来。在机器人的左转,右转,后退的过程,可以通过观看以P2.0/P0.7为指示灯的运行状态。P0.4为机器人的声控检测端口,在运行为前进状态时,可以能过声控(如拍手声)来控制它的运行与停止。P0.6为机器人的声音输出端。在机器人遇到障碍物时。进行绕障碍物与避悬崖时可以通过此端口控制蜂鸣器发出报警声。当为白天或黑夜时可以通过P0.5端口中的光敏电阻来进行判断,以方便完成机器人夜间自动照明等功能。两个按键以查询/中断两种不同的方式来展现按键操作。你可以按下S1键来进行机器的停止。再按下S2键
17、来进行机器人的运行。这个按键的信息分别被P3.2,P3.4接收到。IR1为红外遥控接收器,这就为机器人进行远程遥控创造了可能。这个红外遥控接收头接收到红外信号时将信号经过P3.3送入到主芯片,主芯片对其进行解密后以不同的方式对机器人进行控制。同时将用户的按键信息通过P2端口上LED数码管显示出来。P3.0、P3.l中COM端口的加入,让你完全可以用电脑对其进行控制。你可以通过对串口发送数据,数据会被显示到LED数码管中,并让机器人执行相应的功能。电脑的串口软件要求波特率为9600。8位数据位,这时你就可以快乐的用电脑来对它进行你的完全控制了。 EXKJ-ZN02功能的组合多样,使得学生可以充分
18、发挥自主能力,制作出不同的机器人。它为学校进行机器人竞赛和毕业项目设计建立了实物平台,是学校教师授课变得更轻松有趣。同时也能改变学生学习模式和激发学习兴趣。更是作为验证学生学习效果的有力工具。良好的电路板设计,让学生制作变得方便容易,其大大提高了学生的制作成功率。提高了学生对电子电路的兴趣,更是教学过程中不可或缺的教具。附件六:程序状态指示灯演示验证程序一、 实验简介:本程序重点演示了一个最简程序的基本结构,它从顺序、判断、循环的形式表现程序的基本结构,此程序通过闪灯不断的闪动,及闪灯闪动的快慢来表示程序不不同工作状态。它也是常数字设备中进行状态表示的方法之一(例:网卡)。二、 实验原理图:三
19、、 实现代码:#include /包含头文件#define LED P1 /宏定义显示端口号void Delay(unsigned int DelayTime) /定义可变延时函数 while(DelayTime-); /延时函数进入倒计时void main() /程序主函数码 unsigned int CountData=0; /定义一个整形变量,用于闪动次数+ while(1) /主程序循环体开始 if(CountData30) /判断闪动次数是否位于0-30之间 Delay(60000); /用60000作为基数开始延时函数 else if(CountData60) /判断闪动次数是否位
20、于30-60之间 Delay(30000); /用30000作为基数开始延时函数 else if(CountData90) /判断闪动次数是否位于60-90之间 Delay(10000); /用10000作为基数开始延时函数 else if(CountData120) /判断闪动次数是否位于90-120之间 CountData=0; /仅进行一次操作即可退出. CountData=CountData+1; /闪动次数基数+ LED=LED; /将显示端口进行取反操作 四、 运行效果:程序运行效果为:开机后程序以慢速闪动,一段时间后速度开始加快,再等待时间,闪灯的速度达到最快,之后一段时间后,闪
21、动将回到开始状态。附件七:流水灯演示验证程序一、 实验简介:本程序全面的表现了子程序的用法,它从对几个子程序的操作,显示不同的流灯技术,流水灯的不同需要不同的表现的形式,而这里主要介绍了移位操作和内部数据存储及读入操作。延时函数采用可重入标志,可进行函数的递归调用。二、 实验原理图:三、 实现代码:#include /包含头文件#define Led P1 /定义显示端口号unsigned int code BToM=0x7E,0x3C,0x18,0x00; /定义由两边到中间显示数据unsigned int code MToB=0xE7,0xC3,0x81,0x00;/定义由中间到两边显示数
22、据void Delay() reentrant /定义可重入的延时函数 unsigned int DelayTime=10000; /定义延时时间基数 while(DelayTime-); /程序开始延时开始void LeftToRight() /定义从左边到右边显示函数unsigned char TempCount=0; /定义显示次数变量 Led=0xFE; /定义初步显示数据 for(TempCount=0;TempCount8;TempCount+) /通过循环进行数据显示 Delay(); /延时,用在每次移动数据开始处 Led=Led1; /由右边向左边移动数据 return; /
23、空返回语句,表明此子程序的结束.void RightToLeft() /定义从右边到左边显示函数 unsigned char TempCount=0; /定义显示次数变量 Led=0x7F; /定义初步显示数据 for(TempCount=0;TempCount1; /由左边向右移动数据 return; /空返语句,表明此子程序的结束.void BothToMid() /定义由两边到中间显示子程序 unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount5;TempCount+) /通过循环依次进行次数运行
24、 Delay(); /延时,在每次运行前. Led=BToMTempCount; /读入当次显示数据. return; /空返回,表明此子程序的结束.void MidToBoth() /定义由中间到两边子程序unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount5;TempCount+) /通过循环进行数据显示 Delay(); /延时,在每次数据显示前. Led=MToBTempCount; /读入当次显示数据. return; /空返回,表明此次子程序的结束.void main() /主程序入口处.
25、while(1) /无穷循环开始. LeftToRight(); /从左到右进行显示 RightToLeft(); /从右到左进行显示 BothToMid(); /由两边到中间进行显示 MidToBoth(); /由中间到两边进行显示 四、 运行效果:程序运行效果为:开机后,指示灯向从左向右依次点亮,从右向左依次点亮,由两边向中间依次点亮,由中间向两边依次点亮。附件八:数码管演示验证程序一、 实验简介:本程序通过对端口的置数操作,展示了数码管的应用技术,数码管是将发光二极管通过一定的形式封装在一个数字的外壳中,可以通过不同的点亮方式来显不同的数字符号。 二、 实验原理图:三、 实现代码:#in
26、clude /包含头文件typedef unsigned int uint; /重命名整数类型关键字typedef unsigned char uchar; /重命名字符类型关键字uchar code LedShowData=0x9F,0x25,0x0D,0x99,0x49, /定义固定存储显示字符 0x41,0x1F,0x01,0x19,0x03;/1,2,3,4,5,6,7,8,9,0void Delay() /定义延时函数 uint TempTime=20000; /定义延时时间变量 while(TempTime-); /通过循环进行延时 void main() /主程序开始main()
27、 uchar CountData=0; /定义计数变量 while(1) /主程序无限循环开始 P2=LedShowDataCountData; /P2端口读入显示数据 CountData+; /计数变量+(加加) if(CountData=10) /判断是否超出计数范围 CountData=0; /重新置零 Delay(); /延时函数被调用 四、 运行效果:程序运行效果为:程序下载后,数码管将从1-9依次显示,最后将显示数字0. 附件九:数码管及跑马灯演示验证程序一、 实验简介:本程序主要是将数码管及跑马灯放在一起显示,它主要说明了,如何将在单系中运行多个看似并行运行的子系统.本程序在此将
28、跑马灯子程序放入到一个头文件中,对于一个大的工程这样将有益于程序文件的管理。二、 实验原理图:三、 实现代码:#include /包含端口定义头文件unsigned char code LedShowData=0x9F,0x25,0x0D,0x99,0x49,/定义数码管显示字符 0x41,0x1F,0x01,0x19,0x03;/1,2,3,4,5,6,7,8,9,0#define Led P1 /定义显示端口unsigned char CountData=0; /定义数码管计数器unsigned int code BToM=0x7E,0x3C,0x18,0x00; /定义由两边到中间显示数
29、据unsigned int code MToB=0xE7,0xC3,0x81,0x00; /定义由中间到两边显示数据void Delay() reentrant /定义可重入延时函数 unsigned int DelayTime=10000; /定义延时时间变量 while(DelayTime-); /通过循环进行延时 P2=LedShowDataCountData; /置数码管显示数据到P2端口 CountData+; /数码管地址计数器+(加1) if(CountData=10) /判断计数器累计数值 CountData=0; /计数器清零 #include /包含显示方式头文件 void
30、 main() /主程序入口 while(1) /无穷循环开始. LeftToRight(); /从左到右进行显示 RightToLeft(); /从右到左进行显示 BothToMid(); /由两边到中间进行显示 MidToBoth(); /由中间到两边进行显示 /跑马灯.h/void LeftToRight() /定义从左边到右边显示函数unsigned char TempCount=0; /定义显示次数变量 Led=0xFE; /定义初步显示数据 for(TempCount=0;TempCount8;TempCount+) /通过循环进行数据显示 Delay(); /延时,用在每次移动数
31、据开始处 Led=Led1; /由右边向左边移动数据 return; /空返回语句,表明此子程序的结束.void RightToLeft() /定义从右边到左边显示函数 unsigned char TempCount=0; /定义显示次数变量 Led=0x7F; /定义初步显示数据 for(TempCount=0;TempCount1; /由左边向右移动数据 return; /空返语句,表明此子程序的结束.void BothToMid() /定义由两边到中间显示子程序 unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;
32、TempCount5;TempCount+) /通过循环依次进行次数运行 Delay(); /延时,在每次运行前. Led=BToMTempCount; /读入当次显示数据. return; /空返回,表明此子程序的结束.void MidToBoth() /定义由中间到两边子程序unsigned char TempCount=0; /定义临时次数变量 Led=0xFF; for(TempCount=0;TempCount5;TempCount+) /通过循环进行数据显示 Delay(); /延时,在每次数据显示前. Led=MToBTempCount; /读入当次显示数据. return; /空返回