已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机械与运载工程学院机电综合实验机电一体化综合控制实验报告履带式机器人 学 院 机械与运载工程学院 班 级 姓 名 学 号 指导教师 日 期 2016年5月6日 湖南长沙摘 要随着现代工业的不断发展,工业自动化显得越发重要,作为合格的工科生,学习和掌握基本的编程知识十分重要。作者首先对单片机原理进行理论进行学习,然后再归纳单片机原理,并以履带机器人作为贯穿实践过程的典型工程对象,使整个学习过程充满挑战和乐趣,大大提高学习效率。同时在学习和实践的过程中,还提高自身团队意识与自学能力。本次机电综合实验,通过王老师等的指导和组员们者们的共同协作,解决了在学习过程中的各种困难,提高了组员的自学能力,同时也通过本次实验感受到实践在学习的重要性。该课程所涉及的内容有:机电一体化,汽车电子设计,智能测量,自动监控系统以及计算机控制及通信。本文主要介绍单片机的一些理论知识及团队在学习过程中的遇到一些问题,同时对一些发现的问题进行相对深入的阐释。关键词:机电一体化;机器人;单片机;自动化1目 录摘 要1第1章 绪论41.1实验目的和意义41.2实验内容及要求41.3实验具体做法及步骤41.4本章小结5第2章 实验硬件62.1履带机器人电机62.1.1电机技术参数62.1.2电机接线及安装尺寸62.1.3通讯协议72.2 C51系列单片机82.3硬件连接92.3.1串口的连接92.3.2 ISP下载线的连接92.4本章小结9第3章 实验软件103.1软件介绍及获得103.2安装软件103.3本章小结10第4章 编程与软件使用114.1软件使用114.2工程项目124.3下载可执行文件到单片机134.4本章总结14第5章 履带机器人电机控制程序155.1电机控制参数155.2其他头文件155.3电机控制程序示例165.4本章小结16第6章 履带机器人日字行走176.1程序设计176.2程序代码176.3训练拓展S形路线186.4本章小结18第7章 履带机器人触须避障197.1硬件介绍197.2安装胡须197.3避障原理207.4程序设计217.5程序代码217.6本章小结23第8章 履带机器人红外避障248.1硬件介绍248.2电路原理及硬件接线258.3硬件选择说明268.3.1三极管9013268.3.2测试红外发射探测器268.4程序设计278.5程序代码288.6本章小结30总结与展望31参考文献32致 谢333第1章 绪论1.1实验目的和意义近年来隨着计算机在社会各领域的滲透,单片机的应用正在不断的走向深入,在实时监测和自动控制的单片机应用系统中,单片机往往被作为一个核心部件来使用。在我们日常生活中单片机的应用日益广泛,在工业领域,机器人就是一个常见的单片机控制装置,机器人在工业生产中扮演着十分重要的角色,随着工业自动化的不断发展,机器人的作用将越来越重要。机电一体化是将机械技术、微电子技术和计算机结合在一起,从而产生具有智能化特性的产品,它是现代机械及电子工业的主要发展方向。机电综合实验的开设目的不是让我们去学一门新的知识,而是通过这门课程的学习将自己所学的机械、计算机及自动控制等知识有机的结合。在课程的开展过程中去掌握如何将所学知识统一到一个具体的项目开发和设计中,从而达到提高综合素质的能力。该课程知识点覆盖全面、结构安排紧凑,对我们的实践与应用具有很强的提高作用。1.2实验内容及要求该课程所涉及的内容有:机电一体化,汽车电子设计,智能测量,自动监控系统以及计算机控制及通信。本实验的实验要求:(1) 了解和掌握自动化系统集成的一般过程和方法,在课程中逐步掌握使用、调试、维护自动化系统方面的能力。(2) 学会分析和使用常用的电子芯片、电子元件和仪器设备的能力。(3) 学会将机械运动和自动化(利用软、硬件)紧密结合。(4) 学会查阅科技参考资料,收集实验数据,并对结论进行分析,写好实验报告。1.3实验具体做法及步骤(1) 根据任务内容查阅相关资料,分辨需要新学的内容与巩固的内容。(2) 项目的原理、结构、运行方式、功能模块、指令等的应用和开发。(3) 熟悉项目所需的硬件平台。(4) 了解硬件,即实验设备所采用的电子元器件的功能及原理。(5) 掌握语言的设计和调试。a.根据自己的情况来选择采用何种编程语言(C或者汇编语言);b.依据机械运动的方式制定控制方案;c.依据控制方案画出编程方框图;d.依据方框图编写程序;e.将程序输入控制对象,进行调试。(6) 首先完成四边形的运动,在此基础上增加避障、拐弯、红外探测、前后跟随等功能。(7) 详细记载试验调试过程中的各项实验数据。1.4本章小结本章首先对本实验的目的、意义进行阐释,说明该实验的必要性和重要性,其次对本实验的实验内容和要求进行阐述,有利于该实验开展,最后对该实验的具体做法和步骤进行说明,让实验者对实验有一个整体的把握,达到实验的效果。第2章 实验硬件2.1履带机器人电机履带机器人使用的直流电机调速技术是脉宽调制(PWM)直流调速技术,具有调速范围宽、响应速度快和耗损低等特点。其工作原理是通过 AVR 单片机 ATmega8直接产生 PWM 波形经过电机驱动芯片 L298 分别驱动两个直流电机,PWM 将占空比不同的脉冲变成不同的电压驱动直流电机转动从而得到不同的转速,且实现电机启动、停止、正反转等功能。2.1.1电机技术参数主要技术指标:常规模式下时主要指标(环境温度=25),采用双电源供电(逻辑器件工作电压和电机工作电压)逻辑工作电压:5VDC电机工作电压:1224VDC输出电流(典型值):2A工作温度范围:070储存温度范围:-2080模块尺寸大小:6926mm2.1.2电机接线及安装尺寸 图2.1安装尺寸图2.2接线定义2.1.3通讯协议(1) 采用 9600bps,8 位数据位、1 位停止位、无校验位;(2) 采用半双工通讯,通讯过程采取一问一答方式;(3) 控制命令采用 5 字节 如下表所示: 1) 电机设定: 如上表格所示,command 命令从 D0-D7,一共 8 位,其功能位 A、D0 为电机方向,1 为正转,0 为反转; B、D1 为左右电机设定,0 为左电机,1 为右电机; C、D2 为 1 的时候电机停止; D、 2) 速度设定:speed 0-255 可以调整3)时间:Time 0-255 可以调整2.2 C51系列单片机一提到单片机,你就会经常听到这样一些名词:MCS51、8051、C51 等等,它们之间究竟是什么关系呢?MCS51 是指由美国 INTEL 公司生产的一系列单片机的总称。这一系列单片机包括了好些品种,如 8031,8051,8751 等,其中 8051 是最典型的产品,该系列单片机都是在 8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用 8051 来称呼 MCS51 系列单片机。INTEL 公司将 MCS51 的核心技术授权给了很多其它公司,所以有很多公司在做以 8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求。其中较典型的一款单片机 AT89C51(简称 C51)由于由美国 ATMEL 公司以 8051 为内核开发生产。本教材使用的 AT89S52 单片机是在此基础上改进而来。AT89S52是一种高性能、低功耗的8位单片机,内含8k字节ISP (In-system Programmable,系统在线编程)可反复擦写 1000 次的 FLASH 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS51 指令系统及其引脚结构。在实际工程应用中,功能强大的 AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案。图2.3 C51单片机教学版图2.4 采用C51单片机的机器人2.3硬件连接2.3.1串口的连接机器人教学板通过串口电缆连接到 PC 机(或笔记本电脑)上以便与用户交互。如果计算机有串行接口,直接使用串口连接电缆。如果没有,此时需要使用 USB 转串口适配器,如图2.5所示。只需将该串口线一端的串口连接到机器人教学板,而另一端连接到计算的 USB 口上。图2.5 USB 转串口适配器2.3.2 ISP下载线的连接机器人程序通过连接到 PC 机或者笔记本电脑的并口上的 ISP 下载线来下载到教学板上的单片机内。图2.6所示为 ISP 下载线。下载线一端连接到 PC 机或者笔记本的并行接口上,而另一端(小端)连接到教学板上的程序下载口上。图2.6 ISP下载线2.4本章小结本章主要对实验所用到的硬件进行介绍,避免实验中的不必要的错误的出现,有利于实验的开展。第3章 实验软件3.1软件介绍及获得在本课程的学习中,将反复用到三款软件:Keil uVision2 IDE 集成开发环境、SLISP下载软件、串口调试软件等。(1)Keil uVision2 IDE 集成开发环境 该软件是德国 KEIL 公司出品的 51 系列单片机 C 语言集成开发系统。在KEIL公司的网站上获得该软件的安装包。(2)SL ISP 软件下载工具 该软件是广州天河双龙电子有限公司推出的一款ISP下载软件,使用该软件可以将可执行文件下载到机器人单片机上。该软件的使用需要计算机有并行口。可以在双龙公司的网站中获得该软件。(3)串口调试软件 此软件是用来显示单片机与计算机的交互信息的。在硬件上,计算机至少要有串口或 USB 接口来与单片机教学板的串口连接。教材光盘中提供了该软件的绿色版本,无需安装即可使用。3.2安装软件从网站上,或从教材配套光盘中获得了软件安装包,在教材配套光盘中提供了几个文件夹,它们分别是 Keil uVision2 安装包、ISP 软件安装包、串口调试终端、头文件和本书例程的源码。软件的安装很简单,与安装的其他软件过程一样。安装 Keil uVision2(1)执行 Keil uVision2 安装程序,选择安装 Eval Version 版进行安装(2)在后续出现的窗口中全部选择 Next 按钮,将程序默认安装在C:ProgramFilesKeil 文件目录下(3) 将光盘“头文件”文件夹中的文件拷贝到 C:Program FilesKeilC51INC 文件夹里Keil uVision IDE 软件安装到电脑上的同时,会在你的计算机桌面建立一个快捷方式。安装 ISP 下载软件与此类似。3.3本章小结本章主要介绍了实验软件的获得和安装,是该实验前期的准备工作,也是一个必要工作。第4章 编程与软件使用4.1软件使用双击 Keil uVision IDE 的图标,启动 Keil uVision IDE 程序,就可以得到Keil uVision2 IDE 的主界面。通过用 Project 菜单中的 New Project 命令建立项目文件,过程如下: (1)点击 Project,会出现图4.1所示的菜单画面,然后选择“New Project”,将出现图4.2所示对话框 图4.1 Project菜单画面 图4.2 Create New Project对话框(2)在文件名中输入如“HelloRoBot”,保存在你想保存的位置(如 D:中级机器人制作与编程程序Chapter 1),可不用加后缀名,点击“保存”,后会出现图4.3所示的窗口。 图4.3 单片机型号选择窗口 (3)这里要求我们选择芯片的类型,Keil uVision2 IDE 几乎支持所有的 51 核心单片机,并以列表的形式给出。本教材使用的是 Atmel 公司的 AT89S52,在 Keil uVision2IDE 提供的数据库(Data base)列表中找到此款芯片,然后点击确定,会出现图4.4所示的窗口,询问你是否加载 8051 启动代码,在这里我们选择“否”,不加载。之后会出现图4.5画面,此时即得到了项目文件。 图4.4 是否加载 8051 启动代码提示窗口 图 4.5 目标工程窗口项目文件创建后,这时只有一个框架,紧接着需要向项目文件中添加程序文件内容。Keil uVision2 支持 C 语言程序。可以是已经建立好的程序文件,也可以是新建的程序文件。如果是建立好了的程序文件,则直接用后面的方法添加;如果是新建立的程序文件,则先将程序文件.c 存盘后再添加。点击按钮(或 通 过“File-New”操作)为该项目新建一个 C 语言程序文件,保存后弹出对话窗口,将文件保存在项目文件夹中,在文件类型中填写.C(这里.C 为文件扩展名,表示此文件类型为 C 语言源文件),因为下面将采用 C语言编写第一个程序。4.2工程项目1.单击图4.5中的“+”,将出现图4.6所示的列表;2. 然后右键点击“Source Group 1”,在出现的菜单下选择“Add File To Group“Source Group 1”, 出现 Add Files to Group Source Group1对话框。在该对话框中选择需要添加的程序文件,如刚才建立 HelloRoBot.c,单击 Add 按钮,把所选文件添加到项目文件中。一次可添加多个文件。3. 程序文件添加到项目文件中去后,这时上图中“Source Group 1”的前面将出现一个“+”号;单击它将出现刚才添加的源文件名,如图4.7所示(注意:图中显示的文件名是刚才输入的文件名)。 图4.6 添加C语言文件到目标工程 图4.7添加了C语言文件的目标工程双击源文件即可显示源文件的编辑界面。下面来产生下载需要的可执行文件。要产生可执行的.Hex文件,需要对目标工程“Target1”进行编译设置,右键点击“Target 1”,选择“Option for target Target 1”。点击“output”,选择其中的“Create HEX File”,如图4.8所示,点击确定关闭设置窗口。然后点击 Keil uVision IDE 快捷工具栏中的 ,Keil 的 C 编译器开始根据要生成的目标文件类型对目标工程项目中的 C 语言源文件进行编译。编译过程中,可以观察到源文件中有没有错误产生,如果没有错误产生,在 IDE 主窗口的下面出现如图4.9的提示信息,表明已成功生成了可执行文件,并存储在 C 语言源程序存储的目录中,文件名就是HelloRoBot.Hex。图4.8 设置目标工程的编译输出文件类型图 4.9 编译过程的输出提示信息4.3下载可执行文件到单片机点击 ISP 下载软件图标,打开 ISP 下载软件窗口如图4.10所示,并将通信参数设置成图中所示的参数。第一个为接口类型选择窗口,该窗口的下拉列表中提供了许多接口类型:串口 COM1COM16、并口 LPT1LPT3 以及 USB 接口等。教材使用并口 LPT1。第二个为下载速度选择窗口,该窗口内容与接口类型紧密相连。不同的接口,该窗口就提供不同内容的下载速度。若选择 LPT1,则提供了五种下载速度:TURBO 模式、FAST 模式、NORMAL 模式、SLOW 模式和 TURBO SLOW 模式。在这五种模式下,程序下载速度依次减小。教材中的例程使用的是第一个模式 TURBO 模式,下载速度最快。第三个为单片机型号选择窗口,点击“Flash”,选择要下载的可执行 HEX 文件HelloRoBot.Hex,选择后点击编程开始下载。如果下载成功,则下面显示“完成次数:x 次”,否则显示“失败次数: x 次”。如果芯片是第二次下载程序,请先选中“擦除”复选框。图 4.10下载软件4.4本章总结本章主要介绍了软件的使用和编程的初级训练,便于后期实验的开展。第5章 履带机器人电机控制程序本章主要对如何使用头文件“BetaRobot.h ”进行一个简要介绍。PWM_Init() 函数该函数的作用是为初始化第一层与第二层之间的 TTL 串口连接。其中 TTL 串口的数据输出口定义为 P1.0 口,在程序设计的过程中,请回避该端口,避免引起机器人运动控制的错误。在 KEIL 工程中,如果要使用到机器人的运动控制部分,那么在主程序的开头部分,就必须首先执行该函数,进行 TTL 串口初始化。如:void main(void) /变量声明 PWM_Init(); /其他操作write_pwm(unsigned char bDirection, unsigned char bSide, unsigned char bStop, unsigned charTimeFactor, unsigned char SpeedByte, unsigned char TimeByte)作用:AT89S52 单片机向直流电机发送指令5.1电机控制参数bDirection:方向参数。1(或 POSITIVE_DIR)为正向,0(或 NEGATIVE_DIR)为反向bSide:左右电机选择参数。0(或 LEFT_MOTOR)为左电机,1(或 RIGHT_MOTOR)为右电机bStop:是否停止。0(或 NOT_STOP)为不停止,1(或 STOP)为停止。该参数为 1 时,电机停止运动,且下面的速度和时间控制参数无效。TimeFactor:时间因数。有 3 个级别,该值为 0 时,单位为 10 毫秒,1 为 100 毫秒,2 为 1000毫秒。也可以用 BY_10MS,BY_100MS,BY_1000MS 等宏定义代替。Speed:速度参数。从慢到快,0255。TimeByte:时间倍数。该数值乘以时间因数,得到的即为实际运动时间。该值范围为 0255。龙人贝塔的运动方向控制:龙人贝塔机器人与实际生活中的坦克车、推土车等依靠履带运动的设备的运动方式是一致的。前进和后退:两轮一个正转,一个反转,以同样的速度运转。具体哪个正转,哪个反转,视前轮驱动和后轮驱动的不同而不同。原地左转或右转:两轮以同样的速度运转,且运动方向一致。成弧线左转或右转:两轮以不一样的速度运转,且运动方向一致。5.2其他头文件uart.h:硬串口的相关程序。包含该文件后,在程序中调用 uart_Init()函数,即可完硬串口的初始化。soft_rs232.h:TTL-RS232 的实现程序。在该文件中,可修改 TTL-RS232 的通信波特率以及输出端口。如果在设置的 TTL-RS232 数据输出端口外接一个 RS232 电平转换芯片并搭载DB9 串口接口,这样相当于构建了 C51 平台上的第二个串口。该程序构建的串口为单工串口。Movement.h:该文件提供了龙人贝塔的运动控制函数的范例。在包含该文件之前,请包含BetaRobot.h 文件。否则,在编译程序的时候会出现错误。5.3电机控制程序示例1.HelloRoBot 从单片机往计算机发送一个字符串2.HighLowLED 使接在P1.5端口上的LED灯闪烁3.SingleWheel 一个轮子转动4.BothWheel 两个轮子转动5.ControlMotorWithComputer 使用串口调试工具控制机器人的运动6.RobotForwardThreeSeconds 机器人向前运动3秒7.ForwardLeftRightBackward 机器人按向前、向左转、向右转和后退的顺序动作8.StartAndStopWithRamping 机器人做加速、匀速(最大速度)和减速的动作9.MovementsWithFunctions 使用多个函数控制机器人的运动10.MovementsWithOneFuntion 仅使用一个函数控制机器人的运动11.NavigationWithSwitch 使用数组控制机器人的运动12.TestLeftIrPair 测试红外发射/接收传感器模块13.FastIrRoaming 利用红外蔽障14.TestWhiskers 测试触须传感器模块15.RoamingWithWhiskers 利用触须蔽障16.TestLeftPhotoresistor 测试光敏电阻传感器模块17.RoamingTowardTheLight 利用光敏电阻跟随光源5.4本章小结通过本章的学习,对履带机器人的编程有了基本的掌握,对以后的训练学习有极大的帮助,同时本章的学习可以帮助读者快速掌握履带机器人的编程控制,节省时间。第6章 履带机器人日字行走6.1程序设计根据电机的行走路径分模块编写程序分模块编程分析日字行走电机转向及直线行走时间开始6.2程序代码#include#includeint main(void)int i;uart_Init();delay_nms(1000);PWM_Init();for(i=0;i4;i+) write_pwm(POSITIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_100MS,200,78); write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_100MS,200,78); /向右转1/4圈 delay_nms(2000); write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_100MS,200,100); write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_100MS,200,100); /向前 delay_nms(2000);for(i=0;i4;i+) write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_100MS,200,80); write_pwm(NEGATIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_100MS,200,80); /向左转1/4圈 delay_nms(2000); write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_100MS,200,100); write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_100MS,200,100); /向前 delay_nms(2000); delay_nms(4000); while(1);6.3训练拓展S形路线 #include #include int main(void) uart_Init();/初始化C51串口,波特率为9600bps,8位数据位,1位停 止位,无校验位 printf(Testing for two wheels !rn); PWM_Init();/初始化C51单片机与PWM直流电机控制模块之间的连接 write_pwm(NEGATIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); write_pwm(POSITIVE_DIR, LEFT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); write_pwm(NEGATIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); delay_nms(1200); write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,250,70) write_pwm(NEGATIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); delay_nms(900); write_pwm(POSITIVE_DIR, LEFT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); write_pwm(NEGATIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); delay_nms(1200); write_pwm(POSITIVE_DIR, LEFT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); write_pwm(POSITIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); delay_nms(900); write_pwm(POSITIVE_DIR, LEFT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); write_pwm(NEGATIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); delay_nms(1200); write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,250,70); write_pwm(NEGATIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_1000MS, 250, 70); delay_nms(900); write_pwm(POSITIVE_DIR, LEFT_MOTOR, NOT_STOP, BY_100MS, 250, 70); write_pwm(NEGATIVE_DIR, RIGHT_MOTOR, NOT_STOP, BY_100MS, 250, 70); delay_nms(1200); 6.4本章小结通过本章的学习,对履带机器人的编程控制进行初步训练,巩固所学的知识,同时对实践应用问题有了初步的认识。在日字行走过程中,由于直流电机的运转不稳定,同样的程序可能会走出不同的效果,这样的情况下理论与实践之间产生隔阂,需要我们去不断试验,不断去寻找最理想的程序。第7章 履带机器人触须避障本章将通过给机器人增加触觉传感器学习如何使用这些端口来获取外界信息。实际上,对于任何一个自动化系统(不仅仅是机器人),无非都是通过传感器获取外界信息,通过接口进入计算机(或者单片机),由计算机或单片机根据反馈信息进行计算和决策,生成控制命令,然后通过输出接口去控制系统相应的执行机构,完成系统所要完成的任务。因此,学习如何使用单片机的输入接口同学习使用输出接口同等重要。许多自动化机械都依赖于各种触觉型开关,例如当机器人碰到障碍物时,接触开关就会察觉,通过编程让机器人躲开障碍物;旅客登机桥在靠近飞机时为了保护昂贵的飞机,在登机桥接口安装触须,当登机桥离飞机很近后触须就会碰到飞机,立即通知控制器提醒离飞机已经很近了,需要降低靠近速度;工厂利用触觉开关来计量生产线上的工件数量;在工业加工过程中,也被用来排列物体。在所有这些实例中,触觉开关提供的输入通过计算机或者单片机处理后生成其它形式的程序化的输出。本章中,将在机器人前端安装并测试一个称为胡须的触觉开关。对机器人大脑编程来监视触觉开关的状态,以及决定当它遇到障碍物时如何动作。最终的结果就是通过触觉给机器人自动导航。7.1硬件介绍编程让机器人通过触觉胡须导航之前,首先必须安装并测试胡须。图7.1所示是安装机器人触觉胡须所需的硬件元件清单,包括:金属丝2根平头M322盘头螺钉2个13mm圆形立柱2个 M3尼龙垫圈2个3-pin公-公接头2个220电阻2个10k电阻2个 图 7.1胡须硬件7.2安装胡须(1)拆掉连接主板到前支架的两颗螺钉(2)参考图7.2,进行下面操作(3)螺钉依次穿过M3尼龙垫圈、13mm圆形立柱(4)螺钉穿过主板上的圆孔之后,拧进主板下面的支架中,但不要拧紧(5)把须状金属丝的其中一个钩在尼龙垫圈之上,另一个钩在尼龙垫圈之下,调整它们的位置使它们横向交叉但又不接触(6)拧紧螺钉到支架上(7)参考接线图7.3,搭建胡须电路。注意:右边胡须状态信息输入是通过P1口的第4脚完成,而左边胡须状态信息输入是通过P2口的第3脚完成 图 7.2安装机器人胡须 图 7.3胡须电路示意图(8)确定两条胡须比较靠近,但又不接触面包板上的3-pin头。推荐保持3mm的距离。(9)图7.4所示是实际的参考接线图。(10)安装好触觉胡须的机器人如图7.5所示。图 7.4胡须接线图 图 7.5安装好触须的机器人 7.3避障原理观察一下图7.3所示的胡须电路示意图,显然每条胡须都是一个机械式的、接地常开的开关。胡须接地(GND)是因为教学板外围的镀金孔都连接到GND。金属支架和螺丝钉提供电气连接给胡须。通过编程让单片机探测什么时候胡须被触动。由图7.3可知,连接到每个胡须电路的I/O引脚监视着10K上拉电阻上的电压变化。当胡须没有被触动,连接胡须的I/O管脚的电压是5V;在机器人行走过程中,如果有胡须被触动,那就意味着碰到了什么。导航程序需要接受这些输入信息,判断它的意义,调用一系列使机器人倒退、旋转朝不同方向行走的动作子函数以避开障碍物7.4程序设计开始两触须均触障?后退左转左转Y右触须触障?后退左转左触须触障?后退右转YYYNN前进N结束7.5程序代码#include#includevoid down(void);void back(void);void right(void);void left(void); int P1_4state(void)/获取P1_4的状态,右触须return (P1&0x10)?1:0; int P2_3state(void)/获取P2_3的状态,左触须return (P2&0x08)?1:0; int main(void)uart_Init();delay_nms(100);PWM_Init();while(1)if(P1_4state()=0)&(P2_3state()=0) /两触须均触障back(); /向后 delay_nms(500);left();/向左delay_nms(500);left();/向左delay_nms(500);else if(P2_3state()=0)/右触须触障back(); /向后delay_nms(500);left();/向左delay_nms(500); else if(P1_4state()=0)/左触须触障back(); /向后 delay_nms(500);right();/向右delay_nms(500);else down();/向前void back() write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,150,40); write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_1000MS,150,40); void down() write_pwm(POSITIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,150,40);write_pwm(NEGATIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_1000MS,150,40); void right() write_pwm(POSITIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,150,20);write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_1000MS,150,20); void left()write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,150,20);write_pwm(NEGATIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_1000MS,150,20); 7.6本章小结通过本章的学习,主要对履带机器人的程序控制进行进一步应用于深入学习,对编程的基本思路有了进一步理解。第8章 履带机器人红外避障现在许多遥控装置和PDA都使用频率低于可见光的红外线进行通信,而机器人则可以使用红外线进行导航。本章使用一些价格非常便宜且应用广泛的部件,让机器人的C51微控制器可以收发红外光信号,从而实现机器人的红外线导航。前一章的触须接触导航是依靠接触变形来探测物体,而在许多情况下,你希望不必接触物体就能探测到物体。许多机器人使用雷达(RADAR)或者声纳(SONAR)来探测物体而不需同物体接触。本章的方法是使用红外光来照射机器人前进的路线,然后确定何时有光线从被探测目标反射回来,通过检测反射回来的红外光就可以确定前方是否有物体。由于红外遥控技术的发展,现在红外线发射器和接收器已经很普及并且价格很便宜。当汽车前灯射出的光从障碍物体反射回来时,人的眼睛就发现了障碍物体,然后大脑处理这些信息,并据此控制身体动作驾驶汽车。机器人使用红外线二极管LED作为前灯,如图8.1所示。 图 8.1用红外光探测障碍物 图 8.2需要用到的新部件红外线二极管发射红外光,如果机器人前面有障碍物,红外线从物体反射回来,相当于机器人眼睛的红外检测(接收)器,检测到反射回的红外光线,并发出信号来表明检测到从物体反射回红外线。机器人的大脑单片机AT89S52基于这个传感器的输入控制伺服电机。红外线(IR)接收/检测器有内置的光滤波器,除了需要检测的980 nm波长的红外线外,它几乎不允许其它光通过。红外检测器还有一个电子滤波器,它只允许大约38.5 kHz 的电信号通过。换句话说,检测器只寻找每秒闪烁38,500次的红外光。这就防止了普通光源象太阳光和室内光对IR的干涉。太阳光是直流干涉(0Hz)源,而室内光依赖于所在区域的主电源,闪烁频率接近100或120 Hz。由于120 Hz在电子滤波器的38.5 kHz通带频率之外,它完全被IR探测器忽略。8.1硬件介绍两个红外检测器、两个IR LED、四个470电阻、两个9013三极管,如图8.2所示。8.2电路原理及硬件接线电路板的每个角安装一个IR组(IR LED和检测器)。(1)断开主板和伺服系统的电源(2)建立图8.3所示的电路,可参考实物图8.4图 8.3左侧和右侧IR组原理图图 8.4实物图8.3硬件选择说明8.3.1三极管9013 因为C51的IO驱动能力较弱,这里我们加入三极管使其工作在开关状态。三极管是一种控制元件,主要用来控制电流大小,简单地说,是用小电流去控制大电流。通过工艺的方法,把两个二极管背靠背地连接起来就组成了三极管。按 PN 结的组合方式不同分为 PNP 型和 NPN 型。本任务中用到的是 NPN 型三极管 9013,结构示意图及符号图如8.5,管脚图如8.6。 图 8.5结构图及符号图 8.4 9013 管脚图 9013 的工作原理:它的基区做得很薄,当按图 5-3 连接时,发射结正偏,集电结反偏,发射区向基区注入电子,这时由于集电结反偏,对基区的电子有很强的吸引力,所以由发射区注入基区的电子大部分进入集电区,于是集电极的电流得到了增大。在这个任务中,三极管相当于一个开关:当 P1_3(P3_6)置高时,从集电区经基区到发射区电路导通,加载在 IR LED 上的电压为 VCC(5V),IR LED 向外发射红外线;当 P1_3(P3_6)置低时,电路又断开,IR LED 停止发射。8.3.2测试红外发射探测器用P1_3发送持续1毫秒的38.5kHz的红外光,如果红外光被小车路径上的物体反C51 单片机与智能机器人射回来,红外检测器将给微控制器发送一个信号,让它知道已经检测到反射回的红外光。让每个IR LED 探测器组工作的关键是发送1毫秒频率为38.5 kHz的红外信号,然后立刻将IR探测器的输出存储到一个变量中。下面是一个例子,它发送38.5 kHz信号给连接到P1_3的IR发射器,然后用整型变量irDetectLeft存储连接到P1_2的IR探测器的输出。当没有红外信号返回时,探测器的输出状态为高。当它探测到被物体反射的38500Hz红外信号时,它的输出为低。因红外信号发送的持续时间为1毫秒,因此IR探测器的输出如果处于低,其持续状态也不会超过1毫秒,因此发送完信号后必须立即将IR探测器的输出存储到变量中。这些存储的值会显示在调试终端或被机器人用来导航8.4程序设计开始两侧均检测到物体?后退左转左转Y右侧检测到物体?后退左转左侧检测到物体?后退右转YYNN前进N结束右侧发射右侧接收左侧发射左侧接收8.5程序代码#include#include#includesbit LeftIR=P12; /左边红外接收连接到P1.2sbit RightIR=P35; /右边红外接收连接到P3.5sbit LeftLaunch=P13; /左边红外发射连接到P1.3sbit RightLaunch=P36; /右边红外发射连接到P3.6void IRLaunch(unsigned char IR) int counter; if(IR=L)/左边发射 for(counter=0;counter38;counter+) LeftLaunch=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); LeftLaunch = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宁洱哈尼族彝族自治县社区工作者招聘考试备考题库及答案解析
- 2026年井陉县社区工作者招聘考试备考试题及答案解析
- 2026年乡宁县社区工作者招聘笔试模拟试题及答案解析
- 2026年勐海县中小学幼儿园教师招聘考试参考题库及答案解析
- 2026年迁西县社区工作者招聘笔试备考试题及答案解析
- 2026年蒙山县社区工作者招聘考试备考题库及答案解析
- 2026年泾县社区工作者招聘考试参考题库及答案解析
- 渣土车停放调度场站布局设计
- 2026年靖州苗族侗族自治县社区工作者招聘笔试备考试题及答案解析
- 工业循环水系统场站布局设计
- 儿童功能性腹痛诊疗指南
- 安徽省省十联考2027届高三上学期第一次教学质量测评物理试卷(含答案)
- 【小学】【秋季上】高年级【信息技术】开学第一课【课件】
- 2026年学习教育工作总结
- SG-CIM模型建设与实践
- 电气设备检修安全生产技术常识培训课件
- 装配式建筑预制混凝土构件质量管理标准
- 小学五年级上册音乐教案(人音版)
- 课堂碎嘴子的代价 课件2025-2026学年高一下学期纪律主题班会
- 产品采购检验制度
- 2026年云南昆明市磨憨磨丁合作区事业单位招聘笔试参考题库附带答案详解
评论
0/150
提交评论