机器人实验实验报告(经典实用)

上传人:精****科 文档编号:196583738 上传时间:2021-09-20 格式:DOC 页数:15 大小:6.26MB
返回 下载 相关 举报
机器人实验实验报告(经典实用)_第1页
第1页 / 共15页
机器人实验实验报告(经典实用)_第2页
第2页 / 共15页
机器人实验实验报告(经典实用)_第3页
第3页 / 共15页
机器人实验实验报告(经典实用)_第4页
第4页 / 共15页
机器人实验实验报告(经典实用)_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《机器人实验实验报告(经典实用)》由会员分享,可在线阅读,更多相关《机器人实验实验报告(经典实用)(15页珍藏版)》请在金锄头文库上搜索。

1、 成绩 中国农业大学 课程论文 (2013-2014学年秋季学期)论文题目:机器人创新实验(1)实验报告课程名称: 机器人创新实验(1)任课教师: 班级: 姓名: 学号: 机器人创新实验(1)实验报告关键字:ARM TKStudio集成化编程 C语言 传感器 舵机 控制摘要:机器人创新实验课引导我们综合利用机械扩展、电子扩展、软件扩展及传感器扩展能力,以创新为主题,自主完成从机器人的机构组装到编程控制。通过这门课程,我初步掌握了有关机器人技术的基本知识和机器人学所涉及的技术的基本原理和方法,加深了对理论知识的理解和掌握。一、认知实验:了解探索者机器人实验一这门课用到的教学材料是探索者教学机器人

2、创新套件。通过这个实验平台,我们可以完成机器人的创新设计、组装以及编程控制。在前期的认知实验中,我们搭建了一个二轮驱动的自动避障小车,并且实现了对它的控制,从而对探索者有了很好的了解。(1) 机械部分探索者的机械零件包括金属件、塑胶件、舵机、零配件四部分。其中金属件共有29种,具有相同的壁厚和丰富的扩展孔。舵机分为圆周舵机和标准舵机两种。同学们在创新设计的过程中可以根据零件的特点,灵活运用,合理搭配,从而实现自己所设计的机械结构以及运动方式。(2) 控制部分 我们使用的Robotway ARM7 LPC2138 主控板采用32位高性能实时嵌入式芯片,支持用户自定义开发,开放电路图、源代码、库函

3、数。探索者套件中包含了触碰传感器、触须传感器、近红外传感器、声控传感器等八种传感器,可以实现寻线、避障、声光等多种控制。(3) 编写和烧录程序我们使用的编译环境是TKStudio。由于我们并没有学习过单片机,所以编程对我们来说是一个难点。我们先从实验指导书上简单的例程开始学习,结合C语言的知识,逐渐掌握了ARM的编程方法。烧写程序的时候,我们用到的是Philips Flash Utility软件。使用的过程是:1、选择端口;2、读取主控板的ID号;3、擦除主控板中原有的程序;4、选择自己的程序;5、上传。(4) 认知实验成果仿照扫地小车例子,我们制作了属于我们自己的自动避障小车,功能包括碰到左

4、右障碍在制作的过程中详细了解了安装机械部件的技巧以及圆周舵机、传感器等的控制方法,为之后的创新实验积累了宝贵的经验。经验总结:1. 检验器材:在使用主板和传感器之前,要先对各个端口进行检查。做好前期的准备工作是很重要的。具体方法是:编写一个让所有端口均输出令圆周舵机不停旋转信号的程序,烧制程序至主板芯片中,然后启动芯片,将一个圆周舵机依次连接各端口即可检查每个端口的完好性,同时这也是检验舵机完好性的好方法。在实验前对器材进行测试是必要的。2. 构件连接:机械结构可能会随着设计而进行局部的改变,因此拧连接螺钉时不必将所有空位均固定牢靠,开始搭建时可以只对必要的空位进行连接,比如只拧紧对角线两个螺

5、钉,待到结构确认无误时在紧固所有螺钉,方便改造重组,节约时间。另外为方便拆卸,应将螺母统一放置一侧,最好是便于使用扳手的部件外部。3. 程序编写:编写程序前需按照教程进行相应配置,否则编译时即使没有语法错误,也无法编译成功。在阅读例程并进行实验充分理解语句含义以及传感器、舵机、端口的使用方法的基础上开始编程,为了便于调试编写相关语句(LedIn,LedOut)将各个端口的工作状态用led信号灯表示出来,实验时可根据led信号灯判断程序运行是否正常,舵机、传感器是否运行正确。二、创新实验方案设计(1) 结构组装在最后一次创新实验中,我们最初的构想是一只可以切换运动方式的机器小猫。第一种运动方式是

6、标准四足的行走方式。由一个圆周舵机带动两组偏心轮四杆机构,实现和动物相似的对角线交替的行走方式。如下图所示: 第二种运动方式为两轮驱动,四足静止的行走方式。两个车轮最初处于悬空状态,声音传感器触发后,控制两个标准舵机转动一定角度,使车轮着地,完成前进方式的转换。下面是我们依据这种构想搭建的机械小猫:之后我们在不接传感器的情况下用简单的程序来测试机械猫两种方式下的运动情况,结果却不尽人意。首先是舵机太多。其次整个机构的结构太繁琐,稳定性不够,很难维持平衡。由于带动四杆机构的轴比较短,机构太重的话也不够稳固。所以我们对整个机构进行了简化,舍弃了车轮的部分。下面是改进后的机械小猫:(2) 传感器设置

7、改进后,我们对机械小猫的功能设计为:电源启动后,圆周舵机工作,小猫开始前进。如遇到前方有障碍物,则后退10秒。当接收到声音信号时,停止前后运动,同时颈部的标准舵机转动一定角度,完成转头的动作。因此我们的小猫中对应地设置了一个近红外传感器和一个声音传感器,分别实现避障和转头的功能。上图中的触须传感器是为了美观设置的。(3) 程序编写1. 初步设计端口元件类型安装位置及功能Servo(1,*)圆周舵机左轮 前进、后退、转弯Servo(2,*)圆周舵机右轮 前进、后退、转弯Servo(3,*)标准舵机左臂 旋转90度收放左轮Servo(4,*)标准舵机右臂 旋转90度收放右轮Servo(5,*)标准

8、舵机脖子 左右转动幅度180度Servo(6,*)圆周舵机带动四足机构 单向匀速旋转Input(1,1)触觉传感器左头部左侧 收到信号右转Input(2,1)触觉传感器右头部右侧 收到信号左转Input(3,1)红外传感器头部前方 收到信号后退并原地转弯Input(4,1)声音传感器机身后方 收到信号由轮子跑模式切换到四足行走模式#include config.h #include lib_io.h#include lib_arm.hint main(void)int i;unsigned int flag=1;Initial_ARM(); DelayNS(1500); while (1)if

9、 (Input(1,1)=1) /左触觉传感器触发LedIn(1,2); LedIn(2,0);LedIn(3,0);LedIn(4,0);LedOut(1,1); LedOut(2,0);/信号灯标识舵机、传感器工作状态Servo(1,60); /左轮向前转,右转Servo(2,90); /右轮不动,右转DelayNS(1500); /右转1.5sflag=1; else if (Input(2,1)=1) /右触觉传感器触发LedIn(1,0);LedIn(2,2); LedIn(3,0);LedIn(4,0);LedOut(1,0);LedOut(2,1);/信号灯标识舵机、传感器工作状

10、态Servo(1,90); /左轮不动,左转Servo(2,120); /右轮向前转,左转DelayNS(1500);/右转1.5sflag=1;else if (Input(3,1)=1) /前方有障碍物,红外传感器触发LedIn(1,0);LedIn(2,0);LedIn(3,2);LedIn(4,0);LedOut(1,1);LedOut(2,1);/信号灯标识舵机、传感器工作状态Servo(1,120); Servo(2,60);/左右轮同向同速转,后退DelayNS(1000);/后退1sServo(1,175); Servo(2,175); /左右轮反向同速转,原地旋转DelayN

11、S(2100); 原地打转2.1sflag=1;else if (Input(4,1)=1) /声音传感器触发 Servo(1,90);Servo(2,90); /左右轮停止旋转Servo(3,90);DelayNS(1000);Servo(4,90); DelayNS(1000);/标准舵机带动左右臂向前上方旋转,收起轮子for (i=0;i6;i+)Servo(5,0);/脖子标准舵机左转至0度DelayNS(200);Servo(5,180);/脖子标准舵机右转至180度DelayNS(200);Servo(5,90);/脖子标准舵机回归原始方位DelayNS(200);/以上程序实现脖

12、子扭动数次 Servo(6,60);/圆周舵机匀速旋转,带动四足机构向前踱步DelayNS(10000);/持续10秒flag=1;if (flag=1) flag=0;LedIn(1,0);LedIn(2,0);LedIn(3,0);LedIn(4,2);LedOut(1,1);LedOut(2,1);/信号灯标识舵机、传感器工作状态 Servo(3,0);DelayNS(1000);Servo(4,180); DelayNS(1000);/标准舵机带动左右臂向下方旋转,放下轮子Servo(1,60); Servo(2,120);/左右轮同速同向旋转,前进/不经传感器触发,向前行走retur

13、n(1);2. 改进程序:端口元件类型安装位置及功能Servo(1,*)圆周舵机带动四足机构 单向匀速旋转Servo(2,*)标准舵机脖颈部 180度范围内旋转摇头Input(1,1)红外传感器头部前方 收到信号后退Input(2,1)声音传感器机身后方 收到信号摇头#include config.h #include lib_io.h#include lib_arm.hint main(void)int i; unsigned int flag=1;Initial_ARM(); DelayNS(1500); while (1)if (Input(1,1)=1)/声音传感器触发,摇头 for (i=0;i10;i+)Servo(2,0);/脖子标准舵机左转至0度DelayNS(200);Servo(2,180);/脖子标准舵机右转至180度DelayNS(200);Servo(2,90);/脖子标准

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 人工智能

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号