c语言实训设计报告巡游机器人的设计与实现.doc

上传人:文库蛋蛋多 文档编号:3022655 上传时间:2023-03-08 格式:DOC 页数:24 大小:206.50KB
返回 下载 相关 举报
c语言实训设计报告巡游机器人的设计与实现.doc_第1页
第1页 / 共24页
c语言实训设计报告巡游机器人的设计与实现.doc_第2页
第2页 / 共24页
c语言实训设计报告巡游机器人的设计与实现.doc_第3页
第3页 / 共24页
c语言实训设计报告巡游机器人的设计与实现.doc_第4页
第4页 / 共24页
c语言实训设计报告巡游机器人的设计与实现.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《c语言实训设计报告巡游机器人的设计与实现.doc》由会员分享,可在线阅读,更多相关《c语言实训设计报告巡游机器人的设计与实现.doc(24页珍藏版)》请在三一办公上搜索。

1、 设计题目:巡游机器人的设计与实现目 录任务书一、 项目计划与小组成员分工二、 软硬件平台介绍三、 硬件设计说明四、 软件设计说明(包括程序流程图,源代码添加注释)五、 项目总结与体会 “巡游机器人的设计与实现”任务书一、题目:巡游机器人的设计与实现基于工程对象的C语言编程实训二、实训目的用C语言编写程序实现对实际工程对象的控制,完成给定的任务。从而提高学生C语言编程的综合能力,同时,对学生进行早期的工程训练。设计一个基于8 位单片机的小型舵机轮式机器人,从给定游览图场地的起始点出发,遍历游览抽签决定的若干景点,在尽可能短的时间内游历完并回到出发点。三、任务描述1、任务要求:巡游场地如 图1

2、所示,机器人在5分钟内,从“长沙”出发点出发以尽量短的时间游历8个景点,并最后返回起点。8个游历景点包括:南昌、杭州、南京、徐州、济南、石家庄、郑州、武汉。本次设计分两个阶段进行,19周调试并研究案例程序,20周实现特定的游览任务。20周周四进行验收答辩。2、验收规则: 验收前将机器人贴好编号放到指定位置; 抽签决定验收顺序; 每台机器人有两次运行机会,取最好成绩作为最终验收成绩; 每个景点游历到给2分,每台机器人总成绩 (景点分值(每个景点1分) 回出发点分值(2分)。必须巡线行走,不允许盲走,脱离黑线行走超过2秒视为任务结束;重复游历同一个景点,只记分1次。四、成绩评定:项目完成效果及答辩

3、占54%,实训过程评价占32%,设计报告占14%。五、需提交的成果:1、运行成功的机器人系统一套2、设计报告一份,验收前电子版发送至 jiaoxue6666,打印版验收时上交。内容包括: 封面 成绩单 任务书 目录 软硬件平台介绍 硬件设计说明 软件设计说明(包括程序流程图,源代码添加注释) 项目总结与体会六、参考资料1、C程序设计(第四版) 谭浩强 编著 清华大学出版社2、C51单片机应用与C语言程序设计(第2版) 秦志强 编著 电子工业出版社3、C51机器人游中国说明文档4、参考案例代码 you_shen_zhen.c、yzgdemo.c。5、图1 巡游机器人场地 一项目计划与小组成员分工

4、巡游路线:长沙南昌杭州南京蚌埠徐州济南石家庄郑州武汉长沙二硬件平台介绍:主板:承载单片机,提供端口。单片机:储存程序,接收传感器的反馈并根据程序语句进行处理,将运动语句传递给舵机。舵机:接收主板的信息并根据信息进行相应的运动。传感器:对地面进行扫描,将扫描结果传递给主机。LED灯:直观的反映出每个传感器的状态。USBASP下载器:将计算机的程序下载到机器人里。电池:作为机器人运行的能源。三软件平台介绍:Keil u Vision4 IDE集成开发环境AVR-fighter 单片机ISP下载编程软件串口调试软件四硬件设计说明:两个舵机分别连接到主板的p10和p11端口。4个传感器分别连接4个LE

5、D灯,每个LED灯反映其所对应的传感器状态,传感器分别接在p14、p15、p16和p17接口。电池连接到主板的DC6V接口。如图:五软件设计说明:1.策略:定义一个变量i,每两个城市当成一条线路,每当小车到达一个城市后都会有传感器为1001的情况反馈回来以这种情况作为转折点,决定小车的拐弯策略通过while语句判断i的值使小车成功转入另一条线路用main函数重复调用当i等于12即小运动车回到长沙停止。2.程序流程图 主函数int main()Void Follow_Line()Switch(QTIState)每两个城市之间线路不同的巡线策略并且在到达一个城市后遇到1001的情况时相对应的做出拐

6、弯策略并改变i的值While()通过判断i的值来进入不同的switch()i的值源代码#include #include #include #define uint unsigned int #define uchar unsigned char uchar QTIState ;void Forward1(void) /向前慢走子程序 P1_1=1; delay_nus(1600); P1_1=0; P1_0=1; delay_nus(1400); P1_0=0; delay_nms(20);void Forward2(void) /向前慢走子程序 P1_1=1; delay_nus(1550

7、); P1_1=0; P1_0=1; delay_nus(1450); P1_0=0; delay_nms(20);void Left_Turn(void) /左转90度程序 int i; for(i=1;i=10;i+) P1_0=1; delay_nus(1300); P1_0=0;P1_1=1; delay_nus(1300); P1_1=0;delay_nms(20); delay_nus(1500); P1_1=0; P1_0=1; delay_nus(1400);P1_0=0; delay_nms(20);void Right_Turn(void) /右转90度程序 int i;

8、for(i=1;i=10;i+)P1_0=1; delay_nus(1700); P1_0=0;P1_1=1; delay_nus(1700);P1_1=0;delay_nms(20);void Right(void) /右转子程序全速P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1500); P1_0=0; delay_nms(20);void Right1(void) /小幅度右转子程序 /全速 P1_1=1; delay_nus(1600); P1_1=0; P1_0=1; delay_nus(1500); P1_0=0; dela

9、y_nms(20);void Down(void) /停止P1_1=1; delay_nus(1500); P1_1=0; P1_0=1; delay_nus(1500);P1_0=0; delay_nms(20);void Get_QTI_State(void) /获取传感器反馈信息QTIState = P1&0xf0; void Follow_Line(void) Get_QTI_State(); switch(QTIState) int i=0 ;case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break; case 0x20

10、:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break;case 0x80:Left1();/小幅度左转break;case 0xb0:Left1();/小幅度左转break;case 0xc0:Left1();/小幅左转break;case 0x90:delay_nms(500);Forward1();delay_nms(2000);/长沙-南昌i+;while(i=1)Get_QTI_State();switch(QTIState)case 0x10: Right();

11、/右转 break; case 0x30:Right1();/小幅右转 break; case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/慢前进break;case 0x80:Left1();/小幅度左转break;case 0xb0:Left1();/小幅度左转break;case 0xc0:Left1();/小幅左转break;case 0x00:Forward2();/前进break;case 0xa0:Forward2();/前进break;case 0x90

12、:delay_nms(500);Left_Turn();delay_nms(2000);/南昌-杭州i+;while(i=2)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break;case 0x70:Forward2();/慢前行 break; case 0x20:Left1(); /小幅度左转 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/慢前进break; case 0xa0:Fo

13、rward2();/慢前进break;case 0x80:Left1();/小幅度左转break;case 0xb0:Left1();/小幅度左转break;case 0xc0:Forward2();/慢前行break;case 0xe0:Right1();/小幅度右转break;case 0x00:Forward2();/前进break;case 0x90:delay_nms(500);Left();delay_nms(2000);/杭州-南京i+;while(i=3)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break;

14、case 0x30:Right1();/小幅右转 break;case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进 break; case 0x80:Left1();/小幅度左转 break; case 0xb0:Left1();/小幅度左转 break; case 0xc0:Left1();/小幅左转break; case 0x00:Left1();/小幅左转break; case 0xa0:Forward2();/前进break; case 0xe0:Righ

15、t1();/小幅右转break;case 0x90:delay_nms(500);Right1();delay_nms(2000);/南京-蚌埠i+;while(i=4)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转break; case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break; case 0x80:Left1();/小幅度左

16、转 break; case 0xb0:Left1();/小幅度左转 break; case 0xc0:Left1();/小幅左转break;case 0xe0:Left1();/前进break; case 0x00:Forward2();/慢前进break; case 0xa0:Right1();/小幅右转 break;case 0x90:delay_nms(500);Forward1();delay_nms(2000);/蚌埠-徐州i+;while(i=5)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0

17、x30:Right1();/小幅右转 break; case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break; case 0x80:Left1();/小幅度左转 break; case 0xb0:Left1();/小幅度左转 break; case 0xc0:Left1();/小幅左转break;case 0x00:Forward2();/小幅左转break;case 0x90:delay_nms(500);Forward();delay_nms(2000)

18、;/徐州-济南i+;while(i=6)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break; case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break; case 0x70:Forward2();/前进break;case 0x80:Left1();/小幅度左转break;case 0xb0:Left1();/小幅度左转bre

19、ak;case 0xc0:Left1();/小幅左转break;case 0x00:Right1();/小幅左转break;case 0xe0:Forward2();/前进break;case 0x90:delay_nms(500);Left_Turn();delay_nms(2000);/济南-天津i+;while(i=7)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break; case 0x20:Forward2(); /慢前进 break; case 0x4

20、0:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break;case 0x80:Left1();/小幅度左转break;case 0xb0:Left1();/小幅度左转break;case 0xc0:Left1();/小幅左转break;case 0x00:Right1();/小幅左转break;case 0xe0:Forward2();/前进break;case 0x90:delay_nms(500);Left_Turn();delay_nms(2000);/天津-北京i+;while(i=8)Get_QTI_State();switch(

21、QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break; case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break;case 0x80:Left1();/小幅度左转break;case 0xb0:Left1();/小幅度左转break;case 0xc0:Left1();/小幅左转break;case 0x00:Right1();/小幅左转break;case 0xe0:Fo

22、rward2();/前进break;case 0x90:delay_nms(500);Left1();delay_nms(2000);/北京-石家庄i+;while(i=9)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break; case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break; case 0x80:Left1();/小

23、幅度左转 break; case 0xb0:Left1();/小幅度左转 break;case 0xc0:Left1();/小幅左转 break; case 0xe0:Forward2();/前进 break;case 0x90:delay_nms(500);Forward2();delay_nms(2000);/石家庄-郑州i+;while(i=10)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break;case 0x20:Forward2(); /慢前进 br

24、eak; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进 break; case 0x80:Left1();/小幅度左转 break; case 0xb0:Left1();/小幅度左转 break; case 0xc0:Left1();/小幅左转break; case 0x00:Left1();/小幅左转break; case 0xa0:Forward2();/前进break; case 0xe0:Right1();/小幅右转break;case 0x90:delay_nms(500);Right1();delay_nms(

25、2000);/郑州-武汉i+;while(i=11)Get_QTI_State();switch(QTIState)case 0x10: Right();/右转 break; case 0x30:Right1();/小幅右转 break; case 0x20:Forward2(); /慢前进 break; case 0x40:Forward2(); /慢前进 break; case 0x60:Forward2();/前进break;case 0x80:Left1();/小幅度左转break; case 0xb0:Left1();/小幅度左转 break; case 0xc0:Left1();/

26、小幅左转 break; case 0x00:Left1();/小幅左转break;case 0xa0:Forward2();/前进 break; case 0xe0:Right1();/小幅右转break;case 0x90:Down();/武汉-长沙break;int main()while(1)Follow_Line() ;五项目总结与体会项目体会:本次项目设计经历了两周,在这两周里,我们从当初的对机器人的陌生到现在能够编写并调试程序使机器人能够满足条件执行较复杂的任务;通过对程序的研究,加深了对于C语言的理解,熟练了C语言语句的应用;在项目设计过程中,通过组员之间的分工,进一步体会到了合作协同给达成目标带来的巨大帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号