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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

机器人实训总结Word格式文档下载.docx

1、将程序录入小车并运行,旋转车轮旁的旋钮直至车轮停转便达到了调零的目的。接下来,我们便要完成实训要求的第一个程序:控制小车LED灯的亮灭。通过参考指导书的已有程序,我们比较顺利的完成了该任务,任务程序如下:(在试验中需要注意LED灯的正负极) while(1) P1_0=0; P1_1=1; delay_nms(500); P1_0=1; P1_1=0;任务二:机器人触觉导航该任务要求机器人碰到障碍物时,接触开关会有所察觉,通过编程让机器人避开障碍物。在安装胡须时,需要注意胡须距传感立柱既不能太远也不能太近,太远会导致机器人碰到障碍物后反应过慢,太近则会使机器人在前方没有障碍物的情况下进行避障操

2、作,影响小车正常行进。胡须机器人避障程序如下:int P1_4state(void)/获取P1_4的状态,右胡须 return (P1&0x10)?1:0;int P2_3state(void)/获取P2_3的状态,左胡须 return (P2&0x08)?void Forward(void) P1_1=1; delay_nus(1700); P1_1=0; delay_nus(1300); delay_nms(20);void Left_Turn(void) int i; for(i=1;i#define LeftIR P1_2 /左边红外接收连接到P1_2#define RightIR P

3、3_5 /右边红外接收连接到P3_5#define LeftLaunch P1_3 /左边红外发射连接到P1_3#define RightLaunch P3_6 /右边红外发射连接到P3_6void IRLaunch(unsigned char IR) int counter; if(IR=L) for(counter=0;counter38;counter+) LeftLaunch=1; _nop_(); _nop_(); LeftLaunch=0;R for(counter=0;counter+)/右边发射 RightLaunch=1; RightLaunch=0;void Forward

4、(void)/向前行走子程序void Left_Turn(void)/左转子程序 int i; for( i=1; P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nms(20);void Right_Turn(void)/右转子程序 delay_nus(1700); P1_0=0;void Backward(void)/向后行走子程序 int irDetectLeft,irDetectRight; uart_Init(); printf( while(1) IRLaunch( /右边发射 irDetectRight = RightIR;/右边接收

5、 /左边发射 irDetectLeft = LeftIR;/左边接收 if(irDetectLeft=0)&(irDetectRight=0)/两边同时接收到红外线 else if(irDetectLeft=0)/只有左边接收到红外线 else if(irDetectRight=0)/只有右边接收到红外线任务四:尾随小车该任务的设计线路与任务三相同,故完成较为简单,试验程序如下:#define LeftIR P1_2 /左边红外接收连接到P1_2#define RightIR P3_5 /右边红外接收连接到P3_5#define LeftLaunch P1_3 /左边红外发射连接到P1_3#d

6、efine RightLaunch P3_6 /右边红外发射连接到P3_6 int counter; if(IR=)/左边发射 LeftLaunch=1; LeftLaunch=0;)/右边发射 RightLaunch=1; RightLaunch=0; int pulseLeft,pulseRight; do IRLaunch( irDetectRight = RightIR; irDetectLeft = LeftIR; if(irDetectLeft=0)&(irDetectRight=0)/向后退 pulseLeft=1300; pulseRight=1700; else if(irD

7、etectLeft=0)&(irDetectRight=1)/右转 pulseLeft=1700; else if(irDetectLeft=1)&(irDetectRight=0)/左转 pulseRight=1300; else /前进 delay_nus(pulseLeft); delay_nus(pulseRight); 任务五:机器人的距离检测用同样的IR LED/探测电路检测距离,高灵敏度的频率可以探测远距离的物体,低灵敏度的频率可以探测距离较近的物体。这使得距离探测就简单了。选择5个不同频率,从最低灵敏度到最高灵敏度进行测试,依赖于探测器不能再检测到物体的红外线频率,就可以推断物

8、体的大概位置。测试扫描频率程序如下:#include #define LeftIR P1_2 /左边红外接受连接到P1_2 /#define RightIR P3_5 /右边红外接收连接到P3_5#define LeftLaunch P1_3 /左边红外发射连接到P1_3/#define RightLaunch P3_6 /右边红外发射连接到P3_6unsigned int time;int leftdistance;/左边的距离/int rightdistance;/右边的距离int distanceLeft, irDetectLeft;/int distanceRight,irDetect

9、Right;unsigned int frequency5=29370,31230,33050,35700,38460;void timer_init(void) IE=0x82; /开总中断EA,允许定时器0中断ET0 TMOD |= 0X01; /定时器0工作在模式1:16位定时器模式void FreqOut(unsigned int Freq) time = 256 - (500000/Freq); /根据频率计算初值 TH0 = 0XFF; /高八位设FF TL0 = time; /低八位根据公式计算 TR0 = 1; /启动定时器 delay_nus(800); /延时 TR0 =

10、0; /停止定时器void Timer0_Interrupt(void) interrupt 1 LeftLaunch = LeftLaunch; /取反 /RightLaunch= RightLaunch; /重新设值void Get_lr_Distances() unsigned int count; leftdistance = 0; /初始化左边的距离 /rightdistance = 0; /初始化右边的距离 for(count = 0;countstdio.h#define uint unsigned int #define uchar unsigned char uchar QT

11、IState ;void Time1_init(void) EA = 1;/硬件串口使用定时器1,供AT89S52与PC机通信使用 TMOD |= 0x20; /定时器1方式2.8位自动重装模式 SCON = 0x50; /模式1,8位数据 TH1 = 0xFD; /波特率为9600 TL1 = 0xFD; TR1 = 1; /起动定时器 TI = 1;void Pivot_Left(void)/左转子程序 delay_nus(1500); delay_nus(1350);void Pivot_Right(void)/右转子程序 delay_nus(1650);void Rotate_righ

12、t(void)void Rotate_Left(void) delay_nus(1350);void Backward(void) /向后行走子程序P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);void Get_QTI_State(void) QTIState = P2&0x0e ;void Follow_Line(void) Get_QTI_State(); switch(QTIState) case 0x04 : Forward(); break; case 0x06 : Pivot_Right(); brea

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2