ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:162.19KB ,
资源ID:5294545      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5294545.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(机器人实训总结.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

机器人实训总结.docx

1、机器人实训总结机器人实训总结文件编码(GHTUUITIDGGBKTPOIUWUUI8968)机器人实训总结学 院:专业班级:姓名学号:指导教师:2013年7月为期一周的机器人实训转眼就过去了,个人认为这是我上大学以來参加的最 有意思的一次课程设计了,在实训期间,同学们亲自动手组装机器人小车并通过 修改调试程序使自己的小车完成要求的任务,将平时学习的C语言和单片机知识 运用到了实际操作中,极大地调动了我们学习的积极性并提高了动手能力,是我 们受益匪浅!任务一:组装小车并完成基本调试实训第一天我们的主要任务便是将实训机器人小车按要求组装好,这看似简 单的任务是极其需要耐心与细致的,每一个螺丝都要拧

2、紧,每一个电子元件都要 安装于指定位置,特別要注意左右轮的接线,如果反接将会使小年反向运行。经 过半小时的摸索,我们的小车终于成形,但当给它录入一个前行程序时,小车竟 然莫名其妙的在原地打转,我们仔细查阅了实训指导书,才发现问题所在,原 来,每一个新组装的机器人都需要进行调零检测才能保证其运行的准确,调零程 序如下:#in cludeOttincludeO int main(void)uart_Init ();printf(The LED connected to Pl_0 is blinking!n); while(1);Pl_0=l;delay_nus(1500);Pl_0=0;delay

3、_nus(20000);将程斥录入小车并运行,旋转车轮旁的旋钮直至车轮停转便达到了调零的目 的。接下来,我们便要完成实训要求的第一个程字:控制小车LED灯的亮灭。通 过参考指导书的已有程斥,我们比较顺利的完成了该任务,任务程序如下:(在 试验中需要注意LED灯的正负极)ttincludeO ftincludeO int main(void)uart_Init ();printf(The LED connected to Pl_0 is blinking!n); while(l)Pl_0=0;delay_nras (500);Pl_0=l;Pl_l=0;delay_nras (500);任务二:

4、机器人触觉导航该任务要求机器人碰到障碍物时,接触开关会有所察觉,通过编程让机器人 避开障碍物。在安装胡须时,需要注意胡须距传感立柱既不能太远也不能太近, 太远会导致机器人碰到障碍物后反应过慢,太近则会使机器人在前方没有障碍物 的情况下进行避障操作,影响小车正常行进。胡须机器人避障程丿宇如下:#i ncludeOttincludeOint Pl_4state (void) /获取 Pl_4 的状态,右胡须return (Pl&OxlO)1:0;int P2_3state(void)/获取 P2_3 的状态,左胡须return (P2&0x0S)1:0;void Forward(void)Pl_l

5、=l:delay_nus(1700);Pl_l=0:Pl_0=l;delay_nus (1300);Pl_0=0;delay_nras (20);void Left Turn (void)int i;for (i=l; i=26; i+)delay_nus(1300);Pl_l=0;Pl_0=l;delay_nus (1300);Pl_0=0; delay_nras (20);void Right_Turn(void)int i;for(i=l;i=26;i+)Pl_l=l;delay_nus(1700);Pl_l=0:Pl_0=l;delay_nus(1700);Pl_0=0; delay_

6、nras (20);void Backward(void)int i;for(i=l;i=65:i+) delay_nus(1300);Pl_l=0;Pl_0=l;delay_nus(1700);Pl_0=0; delay_nras (20);int main(void)uart_Init ();printf (Program Running! n);whiled)辻(Pl_4state()=0)&(P2_3state()=0)Backward () ; /向后 Left_Turn();/ 向左 Left_Turn() ;/向左else if(Pl_4state()=0)Backward ()

7、 ;/向后Left_Turn() ;/向左else 辻(P2_3state()=0)Backward () ; / 向后Right_Turn () ;/向右elseForward():/向前任务三:机器人红外线导航任务二触须接触导航是依靠接触变形来探测物体,而本任务是依靠红外线探测机器人前进路线,然后确定何时有光线从被探测物体反射回来,通过检测反射回來的红外光就可以确定前方是否有物体。在本次任务中,我们需要使用三极管9013,这是因为C51的10驱动能力较弱,这里我们加入三极管使其工作在开关状态。三极管是一种控制元件,主要用來控ttincludeO ttincludeO ftincludeOd

8、efine LeftIRPl_2/左边红外接收连接到Pl_2define RightIRP3_5/右边红外接收连接到P3 5#define LeftLaunchPl_3/左边红外发射连接到Pl_3ftdefine RightLaunchP3_6/右边红外发射连接到P3 6void IRLaunch(unsignedchar IR)int counter;if(IR= L)for (counter=0;counter38;counter+)辻(IR= R)for (counter=0; counter38; counter+) /右边发射void Forward (void) /向前彳丁走子程序

9、delay_nus(1700);Pl_l=0;Pl_0=l; delay_nus (1300);Pl_0=0;delay_nnis (20):void Left_Turn (void) /左转子程序int i;for( i=l;i=26;i+)delay_nus(1300);Pl_l=0;Pl_0=l; delay_nus (1300);Pl_0=0;delay_nras (20);void Right_Turn(void) /右转子程序int i;for( i=l;i=26;i+)delay_nus(1700);Pl_l=0;Pl_0=l;delay_nus(1700);Pl_0=0; de

10、lay_nnis (20);void Backward (void) /向后行走子程丿字int 1;for ( 1=1;i=65;i+)delay_nus(1300);Pl_l=0;Pl_0=l; delay_nus(1700);Pl_0=0; delay_nras (20);int main(void)int irDetectLeft, irDetectRight; uart_Init ();printf (Program Running! n); while(l)IRLaunch ( R) ; /右边发射 irDetectRight = RightIR;/ 右边接收IRLaunch ( L

11、) ; /左边发射irDetectLeft = LeftIR:/左边接收辻(irDetectLef t=0) & (irDetectRight=O) /两边同时接收到红外线Backward ():Left_Turn();Left_Turn();else辻(irDetectLeft=O)/只有左边接收到红外线Backward ();Right_Turn ();else辻(irDetectRight=O) /只有右边接收到红外线Backward (): Left_Turn();elseForward 0;任务四:尾随小车 该任务的设计线路与任务三相同,故完成较为简单,试验程序如下:ttinclud

12、eO ftincludeO #1 ncludeO int main(void)int counter; if(IR= L)/左边发射for (counter=0; counterOS; counter+)辻(IR= R)/右边发射for (counter=0;counter38;counter+)int pulseLeft,pulseRight;int irDetectLeft, irDetectRight; uart_Init ();printf(Program Running!n);doIRLaunchR) ; /右边发射irDetectRight = RightIR:/右边接收IRLau

13、nchC L) ; /左边发射 irDetectLeft = LeftIR;/左边接收 if (irDetectLef t=0) & (irDetectRight=O) / 向后退pulseLeft=1300; pulseRight=1700;else 辻(irDetectLeft=O)& (irDetectRight=l) /右转pulseLeft=1700: pulseRight=1700;else 辻(irDetectLeft=l)& (irDetectRight=O) /左转pulseLeft=1300; pulseRight=1300;else /前进pulseLeft=1700;

14、pulseRight=1300;delay_nus(pulseLeft);P1_1=O;P1_O=1;delay_nus(pulseRight);P1_O=O;delay_nms (20);while 仃);任务五:机器人的距离检测用同样的IR LED/探测电路检测距离,高灵敏度的频率可以探测远距离的物 体,低灵敏度的频率可以探测距离较近的物体。这使得距离探测就简单了。选择5 个不同频率,从最低灵敏度到最高灵敏度进行测试,依赖于探测器不能再检测到 物体的红外线频率,就可以推断物体的大概位置。测试扫描频率程序如下:include include /ttdefine RightLaunch P3_

15、6 /右边红外发射连接到P3_6unsigned int time;int leftdistance;/左边的距离/int rightdistance; /右边的距离int distanceLeft, irDetectLeft;/int distanceRight, irDetectRight;unsigned int frequency5 = 29370,31230, 33050, 35700, 38460:void timer_init(void)定时器模式void FreqOut(unsigned int Freq)time = 256 - (500000/Freq) ; /根据频率计算

16、初值void Timer0_Interrupt(void) interrupt 1Left Launch = LeftLaunch; /取反 /RightLaunch= RightLaunch;重新设值THO = OXFF:TLO = time:void Get_lr_Distances()unsigned int count:for (count = 0:count5:count+)FreqOut (frequency count)/irDetectRight = RightIR: /右边接收 /printf Cf=%dn time);printf (irDetectLeft = %dn,

17、irDetectLeft);/printfirDetectRight = %dn ,irDetectRight);if (irDetectLeft = 1)leftdistance+;/if (irDetectRight = 1)/rightdistance+;uart_Init ();printf (Progam Running! n);printfCFREQENCY ETECTEDn);while(l)Get_lr_Distances (): printf(distanceLeft = %dn, leftdistance);/printf distanceRight=%dn, rightd

18、istance);n):printfC delay_nras (1000);在进行串口调试时,应注意串口的接线位置,安装符合白己电脑的串口调试 助手。任务六:寻线搬运机器人可能是前儿个任务完成太轻松的原因,是我们对实训产生了懈怠的想法,但 最后的任务再一次提醒了我需要学习的东西还有很多,永远都不能骄傲自满。经过一天多的调试,在机器人的运行和编程中,出现了以下儿方面的问题:一、转弯出现问题。在一些路口中转弯出现了问题。所以提倡用自定义转 弯,提高成功率。2.在运行机器人前要检查螺丝,检查机器人的性能是否良好,以免在运行 过程中发生意外。三、遇到错误时,要耐心,细心检查问题,分析问题,要互相讨论出

19、解决方 案。4.电池的电量对小车运行影响极大最好选用质量较好的电池。5.伺服电机的角度没有调好,导致机器人在运行过程中影响程序的运行。人熟悉自己的机器人,了解一些运行、编程的小技巧。寻线搬运机器人编程如下:include include #1 ncludeO#define uint unsigned int #define uchar unsigned char uchar QTIState ;void Timel_init(void)EA =TM0DSCON1;/硬件串口使用定时器1,供AT89S52与PC机通信使用 1= 0x20;=0x50;TH1 = OxFD:TLl = OxFD:T

20、RI = 1;TI = 1;/定时器1方式位自动重装模式/模式1, 8位数据/波特率为9600/起动定时器void Forward (void) /向前彳丁走子程序delay_nus(1700);Pl_l=0;Pl_0=l;delay_nus (1300);Pl_0=0; delay_nras (20);void Pivot_Left (void) /左转子程序Pl_l=l;delay_nus(1500);Pl_l=0;Pl_0=l; delay_nus (1350);Pl_0=0;delay_nras (20);delay_nus(1650);Pl_l=0;Pl_0=l; delay_nus

21、 (1500);Pl_0=0; delay_nras (20);void Rotate_right(void)delay_nus(1650);Pl_l=0;Pl_0=l;delay_nus (1650);Pl_0=0;delay_nras (20);void Rotate_Left(void)delay_nus(1350);Pl_l=0;Pl_0=l; delay_nus(1350);Pl_0=0;delay_nras (20);void Backward (void) /向后行走子程序Pl_l=l: delay_nus(1300);Pl_l=0:Pl_0=l:delay_nus(1700);

22、Pl_0=0: delay_nms (20);QTIState = P2&0x0e ;void Follow_Line(void)Get_QTI_State(); switch(QTIState)void main(void)int counter;Timel_init ():run ok!);printf(programfor (counter=0; counter350; count er+) / / 寻线Follow_Line ();/ *for (counter=0; counter20; counter+) /直走Forward 0;*/for (counter=0; counter

23、33; counter+) / / 左转 90Pivot_Left 0;for (counter=0; counter65; counter+) / / 直走Forward 0:for (counter=0; counter55; counter+) /后转Rotate_Left ();for (counter=0; counter38; counter+) / / 寻线Follow_Line ();/*for (counter=0; counter5: counter+) /右转调整Pivot_Right 0 ;*/for (counter=0; counter20; counter+) /

24、直走Forward 0;for (counter=0; counterOO; counter+) / / 寻线Follow_Line ();for (counter=0; counter180; counter+) / / 直走Forward 0;for(counter=0;counter180;counter+)/后彳亍Backward 0;for (counter=0; counter40; counter+) / / 左转 90Pivot_Left 0;for (counter=0; counter80; counter+) / / 直走Forward 0;for (counter=0;

25、 counter65; counter+) /后转Rotate_Left ();/ *for (counter=0; counter65; counter+) / / 寻线Follow_Line ();*/for (counter=0: count er 135: count er+) /右转Pivot_Right 0 ;for (counter=0; counter70; counter+) / / 寻线Follow_Line ();for (counter=0; counter80; counter+) / / 直走Forward 0:while(l);这次实训是我感触很深,收获很大,作为一名大学生,我应该多学习了解一些先进的科学技术和最新的研究理论,时刻更新丰富H己的知识,用最新的理论指导自己的学习,使自己有更大的收获和进步,为社会多做贡献。特别是这次实训的形式我感觉非常好,十分符合大学应有的教学模式,作为一洛工科学生学习很有必要。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1