(精品论文)单片机的智能小车_机器人_单片机_毕业设计_毕业论文_第1页
(精品论文)单片机的智能小车_机器人_单片机_毕业设计_毕业论文_第2页
(精品论文)单片机的智能小车_机器人_单片机_毕业设计_毕业论文_第3页
(精品论文)单片机的智能小车_机器人_单片机_毕业设计_毕业论文_第4页
(精品论文)单片机的智能小车_机器人_单片机_毕业设计_毕业论文_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江海职业技术学院 摘 要基于单片机的智能小车,俗称“机器人”。现在,机器人已经深入到人们的生活中。随着中国教育体制的不断改革,机器人教育将最终成为中国教育事业的主流!机器人教育旨在推进青少年的素质教育,培养学生综合能力,让学生体会学习的乐趣,享受成功的喜悦,激发求知欲望,以自信、乐观,勇于挑战的态度面对未来。主要包括:1、获取新知识:机器人涉及机械结构、自动控制、信息技术学科等;2、提高动手能力:了解生活环境、提高想象力、创造力、分析解决问题能力;3、快乐教育:置身于充满趣味性、刺激性、挑战性的活动之中,激发学生学习、探索科技的兴趣;4、勇于挑战:体验挑战极限、享受成功、提高自信;5、参与竞赛能力:互相合作 、共同挑战、培养团队合作精神,提高管理能力。关键词:机器人、动手、团队、挑战。第一章 绪 论1.1 课题的提出随着日本推出一款购物辅助机器人,可以帮助人们更加轻松地进行购物。在出门之前,人们可以提前将所需要购买的物品通过手机传送给卖场机器人系统,预约机器人小助手;抵达卖场之后,预约好的小助手就会在入口等您,并带您到相应的购物区采购物品;自然,采购时候的负重工作也是机器人代劳,它还会沿途介绍相关物品的打折信息,给您提供更齐备的宣传服务。本课题就是基于这样的背景下研制一种具有自动购物能力的超市购物机器人模型。1.2 研究目的和意义超市购物机器人是一个很好的试验模型,它将帮助一些体弱的老年人,解放他们的双手,让人类更加心安理得的享受购物的乐趣。最终把人从大量的烦琐的重复的危险的劳动中解放出来 节省出人的脑力、物力、人力干别的创新之类的事情。1.3 主要研究内容本课题的主要研究内容是:以模型车体为基础架构以MCU为主控芯片,包括直流电机、伺服电机、碰撞传感、红外传感,最终实现能够按照预先制定的程序进行模拟购物。包括以下几个方面:1 .硬件设计机器人组装与系统优化传感电路的设计与安装电源模块的设计与实现2 .软件设计C语言为主的控制语言设计1.4 解决的关键问题需解决的关键问题有:1、硬件各个模块的测试2、软件的设计与调试 39 江海职业技术学院第二章 系统方案设计2.1 总体方案根据系统的特点和设计要求,确定系统的结构组成如图2.1所示。该系统主要由MCU、指南针、红外传感、直流电机驱动模块、伺服驱动模块和电源等模块组成。指南针模块伺服电机模块直流电机模块红外传感模块碰撞传感模块单片机图2.1系统框图2.1.1 各模块的功能1. MCU采用Freescale 16位 微处理器MC9S12DG128,CPU工作频率可达50MHz,总线频率可达25MHz。2. 指南针模块:搜集磁场函数,确定机器人所要走的路线以及方向。3. 直流电机模块:通过两个直流电机控制机器人的两个轮子,从而可以控制其速度。4. 伺服电机模块:通过伺服电机控制机器人的两个机械手臂,从而实现取物功能。5. 传感模块:传感通过红外扫描到货架的距离或碰撞到木板来控制机器人何时进行转弯或取物等动作。6. 电源模块:由11伏的锂电池提供工作电压。2.2 信息采集设计方案在信息采集和路径选择方面采用红外传感器、碰撞传感器和指南针混合寻迹方案。这种方案用红外光电传感器实现“近视”检测,由于红外检测速度快,可对近处的偏差进行快速反映;给主控器充足的时间做出刹车、减速及转弯的决策,可提供的信息量大,采用红外检测和指南针检测相结合检测的迹方案,可大大改善购物车行走路径的准确性,提高购物车的稳定性。江海职业技术学院第三章 硬件设计3.1 主控制模块1.MCU选型主控MCU采用Freescale 16位 微处理器MC9S12DG128,CPU工作频率可达50MHz,总线频率可达25MHz。更大的存储空间:128KB程序存储空间,8KB 的RAM,2KB的EEPROM。丰富的I/O接口:SCI、SPI、IIC、CAN、A/D等接口灵活的PWM模块:8路8位或4路16位PWM模块,每路均可独立操作。更合理的电源电路设计模块化供电:微处理器、A/D、电机控制等部分独立供电,减少电源相互干扰,提高系统稳定性。主控板提供常用的通信接口,方便挂接特定的功能模块,如:摄像头和指南针传感器,超声波传感器等。提供A/D和PWM的外扩功能,传感器接口多达24路.可下载多套程序可供用户在不同情况下选择自己希望运行的程序;先进的Zigbee无线技术可让两个以上的机器之间通讯成为现实,这在机器人组网协作工作时可以相互之间通过无线传递信息,机器人图像识别技术的应用可以让机器人识别颜色以及物体形状并能记忆在机器人大脑中,这些更多的增加了机器人的学习趣味。图3.1主控制器图3.2 电源模块电源的充足性设计:充分考虑系统外接部件的数量,保证满负载时的电源供给。硬件强大的可扩展性,例如直流电机可拓展到10路以上,每路电流可达5A,伺服电机可拓展15路以上等等.图3.2电源原理图3.3 信息采集模块具体信息采集原理和实现电路如下:1、 红外路径信息采集模块红外传感器的检测原理如下图3.3.2所示:图3.3.1 红外检测原理红外传感器的电路原理如下图3.3.3所示:图3.3.2 红外检测原理图3.4. 指南针信息采集模块随着数字化技术的发展,目前已实现了基于磁通门、磁感应式和霍尔效应的数字化指南针1,2。其中磁通门和磁感应式指南针精度较高,可达到5,图3.4.1 直流电机模块3.5、直流电机模块直流电机是一种将电能转换为机械能的装置。直流电机有多种不同尺寸和配置。图1所示为教育系列的直流电机,它们非常适合用来控制小型移动机器人的前进、后退、转弯等动作。图3.5.1直流电机的图片直流电机工作时需要给电机转子上的线圈通电。电流在线圈中流动便产生一个磁场,该磁场与线圈外固定的永久磁铁产生的磁场相斥。这两个磁场相互作用产生的力可推动电机转子转动。用于描述电机电源要求和电机性能的参数有很多。其中,最基本的一个就是他的工作电压(额定电压),该电压是驱动电机推荐使用的电压。当实际电压低于额定电压时,大多数电机仍可以正常工作,但输出功率要减小。另外,大多数厂家给出的电机额定电压都比较保守,所以当实际电压高于额定电压时,电机一般也可以正常工作,但通过这种方法获得输出功率增加是以牺牲电机寿命为代价的。电机的另一个性能参数是工作电流。电压恒定时,电机上的电流与它的输出功率成正比。当空载运行时,电机的电流最小;当负载增大到使电机堵转的程度时,电机上的电流最大,该电流被称为电机的堵转电流,它也是电机在额定电压下的最大工作电流。通过电机的电流越大,电机产生的转动力(或转矩)就越大,这是电机转子线圈与周围永久磁铁之间电磁场相互作用的直接结果。线圈中产生的磁场强度与通过它的电流大小成正比,而电机输出轴上的转矩与两个磁场的强度直接相关。评价电机性能的另一个参数是它的堵转转矩。这个转矩是指电机在额定电压下,被迫赌转时所产生的转矩大小,此时电机上的电流即为堵转电流。对小电机而言,转矩通常以盎司-英寸(1盎司=28.35克)为单位衡量(即距离电机转轴中心为一英寸的力臂上所产生的直线里大小)。电机所提供的功率大小等于输出轴的转速与力矩的乘积。当电机自由转动时(空载状态),输出转速最大,但转矩为零,此时电机不驱动任何机构,因此输出功率为零(实际上电机也会消耗一部分功率克服内部摩擦,但这种功率不产生任何输出作用);当电机堵转时,输出最大的转矩,但转速为零,因此输出功率也等于零。在两种极限情况之间,输出功率与转速间呈一种抛物线的关系,如图2所示。在正常工作范围的中部,电机产生的功率最大。图3.5.2 电机转速、转矩及输出功率之间的理想曲线图中实线表示电机转速与转矩的关系。在该直线的右侧,转速达到最大(100%),而转矩为零,这一点代表了电机空转,没有做任何有用功的情况。而在直线的左侧,转速为零,但转矩达到最大值,这一点代表了电机因负载太大而堵转的情况。图中虚线表示电机的功率输出,它等于电机转速与转矩的乘积。输出功率的最大值位于电机正常工作范围的中点,此时转速和转矩都不为零。3.6 伺服电机模块伺服电机是一种能根据指令到达特定位置的专用电机。伺服电机由一个直流电机、一个齿轮减速单元、一个轴位置传感器和一套控制电机运转的电路组成。“伺服”一词本身是指系统自身调节其行为能力,也就是说,系统在响应控制信号时,能够检测自身位置并补偿外加的负载。图3.6.1 伺服电机伺服电机主要用在定位控制方面,因此它们输出轴的行程往往限制在180左右。伺服电机的输入信号是控制输出轴到达期望角位移的一串波形。伺服电路的功能是测量当前位置并确定它与期望位置的差异。如果有差异存在,伺服电路就会驱动伺服电机使输出轴达到期望位置。图8所示为伺服电机的工作原理。图3.6.2 伺服电机工作原理图 伺服电机接收一个代表输出轴期望位置的输入信号。伺服控制电路将输入信号与代表输出轴实际位置的反馈信号进行比较,并得到一个“误差”信号去控制电机驱动电路驱动电机。伺服电机上都有一个内置的齿轮减速器,它的输出才是电机的最终输出。位置传感器返回代表实际位置的反馈信号。伺服控制信号我们的伺服电机采用标准的三线接口,包括电源线、地线和控制线。控制线采用PWM机制对位置信号进行编码。伺服PWM不同于DC齿轮减速电机的速度控制PWM。在速度控制PWM方法中,占空比(即“ON时间”所占的百分比)决定了电机的速度。而在伺服PWM机制中,脉宽的宽度只代表一个特定的控制值。 图9所示为三种控制伺服电机的PWM波形。波形宽度范围从920us到2120us不等。每种脉冲的时间宽度对应于伺服电机将要达到的特定角位移。例如,中间波形的脉冲宽度为1520us,它代表伺服电机行程范围的中间位置。正脉冲的宽度决定了伺服电机的期望位置。对于我们使用的伺服电机有效的脉冲宽度范围从920us到2120us,行程中间位置对应的脉冲宽度为1520us。图3.6.3 伺服电机脉冲宽度定位波形3.7 齿轮模块齿轮是一种边缘带有齿的轮子,是一种简易的机械装置。齿轮可以用来传递力,改变速度(加速或者减速),以及改变转动的方向。图a所示的传动类型能够改变运动的形式,齿轮是旋转运动,下方的齿条则是直线运动;图b所示的传动类型能够改变旋转运动的速度;图c所示的传动类型不仅改变了运动的速度而且改变了旋转运动的轴线方向。 a b c图3.7.1传动类型示意图江海职业技术学院 第四章 软件设计 编程软件Robot edu采用流程图模式编程。流程图由基本模块来构建,基本模块包括输出执行模块、信号输入模块、流程控制模块三部分,每一个图形模块都可以完成一定的功能,只要按逻辑连接这些模块可以很快的完成一个程序的编写,通过画流程图的方式,实现对机器人的编程。从而使机器人根据周围的环境执行相应的动作,如:前进、后退、拐弯、加速、减速等。流程图支持全局变量、简单表达式、复合条件判断、循环等。软件采用了面向对象的程序设计方法,每种控件作为一个类对象,描述了此控件的类型、位置、连接属性、节点的设置属性等信息以及对各种属性改变的方法。利用这些方法,可以方便的对每个节点对象的属性更新和对象位置的移动等各种操作。 4.1、软件特点 图形化编程,直观、易于学习和操作; 编辑、编译、程序下载到主控芯片的集成开发环境; 屏蔽软硬件接口部分,降低偏向于硬件的嵌入式系统开发难度; 可扩展性强。4.2主程序开始伺服电机打开到140置初始值a=215,backtime=50调用子程序碰撞传感器伺服电机收回到0直流电机后退置初始值a=390,backtime=250调用子程序右转置初始值a=390,backtime=100调用子程序红外传感伺服电机打开到140置初始值a=208,backtime=180调用子程序左转置初始值a=208,backtime=50调用子程序碰撞传感伺服电机收回到0直流电机后退置初始值a=386,backtime=250调用子程序右转置初始值a=386,backtime=50调用子程序左转置初始值a=208,backtime=100直流电机后退调用子程序碰撞传感置初始值a=75,backtime=120调用子程序左转置初始值a=75,backtime=120直流电机前进调用定时子程序调用子程序红外传感置初始值a=561,backtime=120调用子程序左转置初始值a=561,backtime=50调用子程序碰撞传感. . . . 图4.2.1图形化主程序4.3子程序1碰撞传感器图4.3.1图形化子程序1碰撞传感器14.4子程序2红外传感器1图4.4.1图像化子程序2红外传感器1第五章 系统调试5.1 机器人结构调试购物车由于重心较高,正常工作时速度较快,因此导致工作过程中稳定性不高,并且时有出现翻车现象,最终通过拆除除直流电机3,将车体底盘降低,重心下降从而很好的解决了问题。5.2 红外传感器采集调试3个红外传感器的布局采用上1下2的布局方式,这样能够充分检测货架信息,在软件设计上大体程序如下:AD_value = Read_Sensor();/得到传感器状态 if(AD_value&0xE7)=0) error = error0; /判断位置 else if(AD_value&0xF0)!=0xF0) /判断状态 if(AD_value&0x80)=0) error = -error6; else if(AD_value&0xC0)=0) error = -error5; else if(AD_value&0x40)=0) error = -error4; else if(AD_value&0x60)=0) error = -error3; else if(AD_value&0x20)=0) error = -error2; else if(AD_value&0x30)=0) error = -error1; else if(AD_value&0x10)=0) error = error0; else if(AD_value&0x0F)!=0x0F) /判断状态 if(AD_value&0x01)=0) error = error6; else if(AD_value&0x03)=0) error = error5; else if(AD_value&0x02)=0) error = error4; else if(AD_value&0x06)=0) error = error3; else if(AD_value&0x04)=0) error = error2; else if(AD_value&0x0C)=0) error = error1; else if(AD_value&0x08)=0) error = error0; 5.3 直流电机调试速度对机器人的总体工作会产生很大影响,两个直流电机的转速存在一定的差异,因此很容易导致购物车偏离正常轨道行走,最终通过设置指南针的函数来修正由于两个直流电机转速不一样导致的偏差以及通过多次试验来调整两轮子的速度得以解决问题。5.4伺服电机调试由于伺服电机在取物的转动过程中会对磁场形成一定的影响,因此很多时候会导致指南针的函数发生变化从而使得机器人行走方向发生变化,最终通过只用一个伺服电机并延长取物后延时的方式,直至伺服电机完全不转动才继续下一个动作的方式成功地解决了问题。第六章 综合应用微型计算机为了制作自主运行的机器人,必须有微型计算机。近年来,微型计算机,不仅是CPU,而且增加ROM或RAM、I/O等装配在一个芯片上。单纯用眼睛看,不可能说哪一部分是CPU、哪一部分是I/O。照片1-2是紫光教育机器人主控制芯片MC9S08GB60(简称GB60)内部的结构图。I/O端口、A/D转换器、D/A转换器和计时器等各种各样功能装入一个芯片中。全部说明这些功能,就能写出一本书了,所以这里仅仅将大体结构部分进行简单的介绍。l CPUCPU称为中央运算处理装置,它根据指令忠实地执行处理,可以说相当于人类的大脑。l ROMROM(只读存储器)为通常仅能从CPU读出的存储器(记忆装置)。用户事先在ROM上写好程序,CPU将指令从ROM中读出使用。GB60内装快速存储器(Flash ROM),利用CPU的功能,采用从个人电脑上用通信改写ROM数据的方式。即使计算机的电源断电,存储下来的内容也不会消失。l RAMRAM(随机存取存储器)为可以一边任意地写入、一边任意地删除的存储器。CPU在某种场合可以使用存储的数据。微型计算机断电的同时存储下来的内容完全消失。l 输入/输出端口输入/输出(I/O)端口是微型计算机对外能输入数据或输出数据的端口。可以进行连接端口的开关状态的读入或进行显示器(LED)的开关。l A/D转换器A/D转换器是将模拟量转换为数字量的装置。对CPU,为了作为数值使用所有的数据,和人们读取测试器的刻度一样,将A/D转换引脚的输入电压数字化。GB60单片机可以使用8通道的A/D转换器。l D/A转换器D/A转换器是用计算机将处理的数字量转换成模拟量的装置。和A/D转换器相反,由CPU将处理的数值从D/A转换器的引脚作为电压输出。l 脉冲输入脉冲输入可以测量ON和OFF的重复次数。l PWM输出PWM就是脉宽调制,可以使它控制电动机的速度等。l 串行通信端口是保持串行通信的部分。GB60的内置快速存储器(Flash ROM)写入时也使用这个端口。第七章 总结与展望经过一段时间的毕业设计,我们做出了一个由C语言为主要控制语言的超市购物机器人模型。超市购物机器人的设计主要包括路径信息采集模块(包括红外和指南针两种)、电机控制模块、电源模块。机器人是一种具有某种拟人功能的机械电子装置,是人类进入20世纪后具有代表性的高技术。机器人的出现及进一步发展将会改变人类传统的生产模式,使之成为人机器人机器自然界”的新模式。这样,就可以把工人从直接生产的岗位上解放出来,成为生产的组织者和指挥者。因此,机器人的广泛使用将会对传统的生产方式以至整个社会带来极大的影响。随着现代科技的发展,机器人技术已广泛应用于人类生活的各种领域,研制具有人类外观特征,可以模拟人类行走与其他基本操作功能的类人型机器人一直是人类对机器人研究的梦想之一。由于类人型机器人研究是一门综合性很强的学科,其本身包含着多项高科技成果,在很大程度上代表着一个国家的高科技发展水平,因此,一些发达国家不惜投入巨资进行研究开发。江海职业技术学院 第八章 致谢江海职业技术学院 参考文献附录附录A 主要程序清单main#include”Includes.h”#include”io1qq.h”#include”io2qz.h”#include”io3qh.h”#include”io4hq.h”#include”io5hh.h”#include”left.h”#include”ringht.h”#include”stop.h”#include”ds.h”INT16U a;INT16U backtime;INT16U time;INT16U t1;INT16U t2;INT16U t3;Voide main() ADCInit();DCMotorInit();Delay(500);serverMotor(1,140);Delay(500);a=215;Backtime=50;Io2qz();Delay(500);serverMotor(1,0);Delay(500);DCMotor(1,2,56);DCMotor(2,2,45);Delay(70);a=390;backtime=250;right();Delay(500);a=390;backtime=100;Io1qq();servermotor(1,140);Delay(500);a=208;backtime=50;Io2qz();Delay(500);serverMotor(1,0);Delay(500);DCMotor(1,2,40);DCMotor(2,2,30);Delay(10);a=386;backtime=250;right();a=386;backtime=250;io2qh();DCMotor(1,2,56);DCMotor(2,2,45);Delay(200);a=208;backtime=100;left();a=208;backtime=100;Time=9000;ds();a=75;backtime=120;left();a=75; backtime=160;Io1qq();serverMotor(1,150);Delay(300);a=561;Backtime=50;Io2qz();Delay(500);serverMotor(1,0);Delay(500);DCMotor(1,2,40);DCMotor(2,2,30);Delay(10);a=380;backtime=180;left();Delay(500);serverMotor(1,140);a=380;backtime=160;t1=2500;Io4hq();a=202;backtime=100;left();Delay(1000);a=202;backtime=50;Io2qz(); Delay(500);serverMotor(1,0);Delay(300); a=202;backtime=100;t1=2000;Io4hq();Delay(850);a=70;backtime=120;left();Delay(450);backtime=100;Io5hh();a=380;backtime=150;time=10;ds();Delay(1000);serverMotor(1,140);a=202;backtime=120;left();Delay(500);a=202;backtime=50; Io2qz(); Delay(500);serverMotor(1,0);Delay(500);DCMotor(1,2,40);DCMotor(2,2,30);Delay(10);a=80;backtime=180;left();Delay(500);serverMotor(1,140);a=80;backtime=160;t1=1800Io4hq();a=565;backtime=100;left();Delay(1000);a=565;backtime=50;Io2qz();Delay(500);serverMotor(1,0); Delay(300);a=565;backtime=100;t1=2000;Io4hq();Delay(350);a=380;backtime=140;left();Delay(450);a=358;backtime=100;Io2qz();DCMotor(1,2,56);DCMotor(2,2,45);Delay(200);a=200;backtime=100;left();Delay(500);a=197;backtime=120;time=10000;ds();a=83;backtime=120;left();a=83;backtime=160;Io1qq();serverMotor(1,140); Delay(300);a=565;backtime=120;left();a=565;backtime=120;Io2qz();Delay(500);ServerMotor(1,0); Delay(500);a=565;backtime=250;t1=7000;Io4hq();Delay(3000);DCMotor(1,2,56);DCMotor(2,2,45);Delay(1800);Stop();子程序:io1:#include”io1qq.h”extern volatile LNT32U V-SysTime_attribute_(secition(“sysdata”);extern volatile LNT8U WirelessRev1_attribute_(setion(wirelessdata0”);extern volatile LNT8U WirelessRev2_attribute_(setion(wirelessdata1”);extern volatile LNT8U WirelessRev3_attribute_(setion(wirelessdata2”);extern volatile LNT8U WirelessRev4_attribute_(setion(wirelessdata3”);extern volatile LNT8U WirelessRev5_attribute_(setion(wirelessdata4”);extern volatile LNT8U WirelessRev6_attribute_(setion(wirelessdata5”);extern volatile LNT8U WirelessRev7_attribute_(setion(wirelessdata6”);extern volatile LNT8U WirelessRev8_attribute_(setion(wirelessdata7”);extern volatile LNT8U WirelessRev9_attribute_(setion(wirelessdata8”);extern volatile LNT8U WirelessRev10_attribute_(setion(wirelessdata9”);extern LNTU16U a;extern LNTU16U backtime;extern LNTU16U time;ex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论