机器人实训教程:从基础到项目设计

版权申诉
0 下载量 76 浏览量 更新于2024-06-23 收藏 8.91MB DOC 举报
"机器人实训指导书.doc" 这本《机器人实训指导书》是为学习和实践机器人技术的学生或爱好者提供的一份详尽指南。它涵盖了从基础理论到实际操作的多个方面,旨在帮助读者理解机器人技术的基本原理,并通过实践提升技能。 在第一章"机器人概述"中,介绍了机器人的起源、发展历程及其广泛应用领域。MT-UROBOT作为本书中的实例,其内部结构被详细解析,包括结构简图、控制按键部分的功能,如开关按钮、电源和充电指示灯、下载口、复位/MTOS按钮以及运行键等,这些都为后续的实际操作提供了基础。 第二章"编制程序"着重讲解如何赋予机器人智慧。通过流程图程序,学习者可以掌握如何编写控制机器人走直线、转弯、播放音乐等基本动作的代码。同时,通过参与规则轨迹行走(如走正方形、拔河比赛)的项目,提高编程和逻辑思维能力。 第三章"利用传感器设计机器人项目",主要探讨如何结合不同类型的传感器如麦克风、红外和遥控传感器进行项目设计。通过任务分析、准备活动、方案设计、编制程序和运行调试等一系列步骤,学习者将深入了解传感器在机器人中的实际应用。 第四章"机器人项目系统训练"包含了一系列高级实践课题,如机器人速度控制、自主避开障碍、寻迹、趋光行为、无线通信、声控以及跟人走等。这些项目旨在提升学习者的综合技能,使他们能解决更复杂的问题。 第五章"让学生独立设计项目"鼓励学习者运用所学知识,参与机器人灭火等各类竞赛,以实战形式检验和提升他们的设计和编程能力。 这本书不仅提供了丰富的理论知识,更强调实践操作,是一本全面且实用的机器人实训教材,适合初学者和有一定基础的学习者深入探索机器人技术。通过学习,读者不仅可以了解机器人的基本构造和工作原理,还能掌握编程和项目设计的技能,为未来的机器人开发和应用打下坚实基础。
2023-03-03 上传
机器人实训总结 学 院: 专业班级: 姓名学号: 指导教师: 2013年7月 为期一周的机器人实训转眼就过去了,个人认为这是我上大学以来参加的最有意思的 一次课程设计了,在实训期间,同学们亲自动手组装机器人小车并通过修改调试程序使 自己的小车完成要求的任务,将平时学习的C语言和单片机知识运用到了实际操作中,极 大地调动了我们学习的积极性并提高了动手能力,是我们受益匪浅! 任务一:组装小车并完成基本调试 实训第一天我们的主要任务便是将实训机器人小车按要求组装好,这看似简单的任务 是极其需要耐心与细致的,每一个螺丝都要拧紧,每一个电子元件都要安装于指定位置, 特别要注意左右轮的接线,如果反接将会使小车反向运行.经过半小时的摸索,我们的小 车终于成形,但当给它录入一个前行程序时,小车竟然莫名其妙的在原地打转,我们仔 细查阅了实训指导书,才发现问题所在,原来,每一个新组装的机器人都需要进行调零 检测才能保证其运行的准确,调零程序如下: #include〈BoeBot。h> #include〈uart。h〉 int main(void) { uart_Init(); printf("The LED connected to P1_0 is blinking!\n"); while(1); { P1_0=1; delay_nus(1500); P1_0=0; delay_nus(20000); } } 将程序录入小车并运行,旋转车轮旁的旋钮直至车轮停转便达到了调零的目的。接下 来,我们便要完成实训要求的第一个程序:控制小车LED灯的亮灭.通过参考指导书的已有 程序,我们比较顺利的完成了该任务,任务程序如下:(在试验中需要注意LED灯的正负 极) #include〈BoeBot.h> #include<uart.h〉 int main(void) { uart_Init(); printf("The LED connected to P1_0 is blinking!\n"); while(1) { P1_0=0; P1_1=1; delay_nms(500); P1_0=1; P1_1=0; delay_nms(500); } } 任务二:机器人触觉导航 该任务要求机器人碰到障碍物时,接触开关会有所察觉,通过编程让机器人避开障碍 物。在安装胡须时,需要注意胡须距传感立柱既不能太远也不能太近,太远会导致机器 人碰到障碍物后反应过慢,太近则会使机器人在前方没有障碍物的情况下进行避障操作, 影响小车正常行进.胡须机器人避障程序如下: #include<BoeBot.h〉 #include<uart.h> int P1_4state(void)//获取P1_4的状态,右胡须 { return (P1&0x10)?1:0; } int P2_3state(void)//获取P2_3的状态,左胡须 { return (P2&0x08)?1:0; } void Forward(void) { P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); } void Left_Turn(void) { int i; for(i=1;i〈=26;i++) { P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); } } void Right_Turn(void) { int i; for(i=1;i〈=26;i++) { P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); } } void Backward(void) { int i; for(i=1;i<=65;i++) { P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); } } int main(void) { uart_Init(); printf("Program Running!\n"); while(1) { if((P1_4state()==0)&&(P2_3state()==0)) { Backward(); //向后 Left_Turn();//向左 Left_Turn();//向左 } else if(P1_4state()==0) { Backward();//向后 Left_Turn();//向左 } else if(P2_3state()==0) { B