




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 设 计(论 文)题 目: 智能小车设计 院 系: 电子与信息工程学院 专 业: 班 级: 学生姓名: 导师姓名: 职称: 起止时间: 2011年4月18日至2011年6月 5日毕业设计(论文)诚信声明书本人声明:本人所提交的毕业论文 是本人在指导教师指导下独立研究、写作的成果,论文中所引用他人的文献、数据、图件、资料均已明确标注;对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全清楚本声明的法律后果,申请学位论文和资料若有不实之处,本人愿承担相应的法律责任。论文作者签名: 时间: 年 月 日指导教师签名: 时间: 年 月 日西 安 邮 电 学 院毕业设计(论文)任务书学生姓名 指导教师 职称 学院 系部 专业 题目智能小车设计 任务与要求 1 学习并熟系统基本结构设计的基本理论。2 学习arm的基本原理和应用设计。3 学习并掌握IAR的使用方法。4 学习掌握步进电机驱动电路及接口设计。5 设计结构及系统电路并相关程序。6 系统设计及调试。 开始日期2011年4月18日完成日期2011年6月5日主管院长(签字)年月日 毕 业 设 计 (论文) 工 作 计 划 学生姓名 指导教师 职称 学院 系部 专业 题目智能小车设计工作进程起 止 时 间工 作 内 容2011.3.28-2011.4.5查阅有关资料,了解系统基本结构及设计方法。2011.4.6-2011.4.10学习arm基本原理 。2011.4.11-2011.5.3学习IAR的使用方法,书写步进电机驱动电路及接口设计并相关程序,设计调试板。2011.5.4-2011.5.12进行系统调试2011.5.13-2011.6.1撰写论文及相关文档。主要参考书目(资料)ARM体系结构与编程ARM处理器与C语言开发应用基于ARM的嵌入式系统开发ARM嵌入式系统基础教程(第二版)侯冬晴. ARM技术原理与应用基于ARM的嵌入式系统开发与应用从51到ARM32位嵌入式系统入门ARM嵌入式实验教程主要仪器设备及材料Easyarm1138、5V四相步进电机(28BYJ-48-5V)、红外避障传感器、小车轮子、阻容器件、电池盒、4节1.5V电池、铁质月饼盒、螺丝、螺母、PC机等。论文(设计)过程中教师的指导安排每周1次答疑指导。对计划的说明希望通过自学和请教老师,能将一个自己完全不熟悉的项目做好,真心的想 通过此次项目锻炼自己的学习能力与动手能力。 毕业设计(论文)开题报告 学院 专业 2007 级 0702 班课题名称: 智能小车设计 学生姓名: 学号: 指导教师: 报告日期: 2010年10月28日 1本课题所涉及的问题及应用现状综述(1)智能小车原理:以Easyarm1138为核心的多功能小车。Easyarm1138实验板1块,主要用于信号的内部处理,以及供电等作用;5V四相步进电机(28BYJ-48-5V)2个,主要用于驱动两个用于行进的小车轮子;红外避障传感器4个用于小车避障功能;Easyarm1138内置的蜂鸣器起到小车遇到障碍时的警示作用。(2)应用现状:如今多领域都在讨论智能系统,人们要求系统越来越智能化。显然传统的控制观念无法满足人们的需求,而智能控制能与这些出阿童的控制有机的结合起来取长补短,提高整体的又是更好的满足人们的需求。随着人工智能技术、计算机技术、自动控制技术的迅速发展,智能必将迎来它的发展新时代。智能小车近几年有如下几个发展趋势性价比逐渐提高,性能不断提高(高速度,高精度,高可靠性,便于操作和维修),而单价不断下降。传感器的作用日益重要,除传统的位置、速度、加速度等传感器外,多种传感器的融合技术已用来进行环境建模及决策控制。虚拟现实技术在智能小车中的作用已从仿真、预演发展到用于过程控制,加速遥控智能小车操作车产生置身于远端作业环境中的感觉来操作智能小车。当代智能小车的发展特点不是追求全自治系统,而是致力于操作者与智能小车的人机交互控制,即遥控加局部自主系统构成完整的操作系统,是智能小车走出实验室走入使用化阶段。(3)应用领域:儿童玩具、航空航天探测、地表探测、复杂地形作业、智能机器人研究、智能测速、激光测速2本课题需要重点研究的关键问题、解决的思路及实现预期目标的可行性分析(1)关键问题:智能小车设计的的原理、分类、用途、如何选用器件;Arm平台使用,学习arm的基本原理和应用设计;还有学习并掌握IAR的使用方法。(2)解决思路:仔细研究智能小车设计的原理和选择合适器件进行设计,学习智能小车的设计原理和原理图。加强对arm的理解学习和灵活使用,并学习和熟练使用一种编程语言;加强学习IAR的使用。(3)可行性分析:目前市场上这种智能小车已经被普遍使用,而且智能小车以其自身优异的特点将很快被市场接受,广泛应用于科学研究以及日常生活当中。(4)预期的目的:在arm平台基础上,设计智能小车使其集自动避障、加减行驶速度、蜂鸣提醒等功能。加强对arm的理解学习和灵活使用,并学习和熟练使用一种编程语言;加强学习IAR的使用。(3)可行性分析:目前市场上这种智能小车已经被普遍使用,而且智能小车以其自身优异的特点将很快被市场接受,广泛应用于科学研究以及日常生活当中。(4)预期的目的:在arm平台基础上,设计智能小车使其集自动避障、加减行驶速度、蜂鸣提醒等功能。3完成本课题的工作方案2011.3.28-2011.4.20:查阅有关资料,了解系统基本结构及设计方法。2011.4.21-2011.5.10:学习arm基本原理。2011.5.11-2011.5.31:学习IAR的使用方法,设计调试板。2011.6.1-2011.6.10:步进电机驱动电路及接口设计并相关程序。2011.6.11-2011.6.21:进行系统调试。2011.6.22-2011.6.30:撰写论文及相关文档。4指导教师审阅意见 对任务有基本了解,方案可行,同意开题。指导教师(签字): 2011 年 4 月 6 日说明:本报告必须由承担毕业论文(设计)课题任务的学生在毕业论文(设计) 正式开始的第1周周五之前独立撰写完成,并交指导教师审阅。 毕业设计 (论文)成绩评定表学生姓名 性别 学号 专 业班 级 课题名称智能小车设计课题类型实际应用难度简单毕业设计(论文)时间 2011 年4月 18日2011年6月 5日共9周指导教师 (职称 高工 )课题任务完成情况论文 10 (千字); 设计、计算说明书 (千字); 图纸 (张);其它(含附件):程序附件指导教师意见分项得分:开题调研论证 分; 课题质量(论文内容) 分; 创新 分;论文撰写(规范) 分; 学习态度 分; 外文翻译 分指导教师审阅成绩: 指导教师(签字): 年 月 日评阅教师意见分项得分:选题 分; 开题调研论证 分; 课题质量(论文内容) 分; 创新 分;论文撰写(规范) 分; 外文翻译 分评阅成绩: 评阅教师(签字): 年 月 日验收小组意见分项得分:准备情况 分; 毕业设计(论文)质量 分; (操作)回答问题 分验收成绩:验收教师(组长)(签字): 年 月 日答辩小组意见分项得分:准备情况 分; 陈述情况 分; 回答问题 分; 仪表 分答辩成绩: 答辩小组组长(签字): 年 月 日成绩计算方法(填写本系实用比例)指导教师成绩 20 () 评阅成绩 30 () 验收成绩 30 () 答辩成绩 20 ()学生实得成绩(百分制)指导教师成绩 评阅成绩 验收成绩 答辩成绩 总评 答辩委员会意见毕业论文(设计)总评成绩(等级): 系答辩委员会主任(签字): 系(签章) 年 月 日备注 目录1引言12需求分析22.1项目来源及背景22.2项目目标22.3应用环境22.3.1系统硬件环境22.3.2系统软件环境62.4功能规格73系统设计83.1系统总体设计83.1.1总体设计83.1.2系统的功能模块83.1.3小车系统结构图93.2详细设计103.2.1详细设计的任务103.2.2具体设计103.2.3总体设计流程图134系统实现144.1核心部分实现方法144.1.1红外蔽障模块144.1.25V4相步进电机的驱动模块5144.1.3速度控制模块144.2部分模块实现结果144.2.1红外避障模块的实现144.2.2电机驱动模块的实现144.2.3蜂鸣器模块的实现144.2.4加减车速控制模块154.2.5车速显示模块155小车系统测试166结束语17致 谢18参考文献197 附件1:系统实现207.1核心部分实现方法207.1.1红外蔽障模块207.1.25V4相步进电机的驱动模块5237.1.3速度控制模块26摘要智能小车属机器人的一种,它可按照预先设定的模式在一个环境里自主运行,不需要人为管理,多应用于学术应用、科学探测、救灾抢险等用途。人们通过编译环境编程实现行进、绕障、停止、检测数据的存储、显示等功能,无需人工干预。智能小车设计具有实际意义,与实际相结合,现实意义很强。本系统以Easyarm1138为核心的控制电路,采用模块化的设计方案,运用光电发射接收器、步进电机、传感模块、车轮模块、车速控制模块、速度显示模块等组成不同的模块,实现小车在行驶中测试、躲避障碍物、自我调整方向、蜂鸣提醒、加减行驶速度、显示当前速度等问题。并将测量数据传送至Arm板进行处理,然后由Arm板根据所检测的各种数据实现对电动小车的智能控制。这种方案能使得智能小车满足控制灵活、可靠,精度高,可满足系统的各项要求。【关键词】Easyarm1138、步进电机、光电传感器、驱动模块、蜂鸣模块、车速控制模块、显示模块、躲避障碍物智能小车设计AbstractThe intelligent mobile car is a kind of the robot .It can work by itself as the way designed before without management by our human beings ,therefore ,it is usually used on the fields of academic ,scientific exploration ,relief rescue and so on .The marching ,avoiding obstacles ,stopping , monitoring data ,display become true by the programming. The intelligent mobile car is realistic and associated with actual. This system is used by Easyarm1138 as the core control circuit, and the way of design is modular, and there are so much modules such as photoelectric launch receiver, stepping motor, sensing module, wheel module,buzz remind,speed display module which realize the details about the car driving test, evades obstacles, self adjusting direction,remind by buzz,adding and subtracting speeds, display the speed and so on. The measured data are transfered to the arm board processing, then according to the various data from the arm control the intelligent car. This scheme can make the intelligent mobile car flexible, reliable control ,high precision, and can meet the requirements of the system. 【Key words】Easyarm1138, Stepping motor, Photoelectric launch receiver, Driver module, Buzz remind,Speed display module, Speed control module, Evades obstacles291 引言智能小车可集环境感知、动态决策、行为控制等多种功能于一体。随着传感技术、计算机技术、人工智能及其它学科的迅速发展,机器人小车逐渐具有智能其必须具有感知作业环境、任务规划以及决策的能力。从系统硬件方面讲,机器人小车必须具有复杂的传感器,功能强大的计算机以及精确的驱动系统。单片机作为控制系统的微处理器,早已经无法满足系统的需求,ARM微处理器资源丰富,在数据处理和代码存储等方面具有良好的通用性。ARM是32位微处理器,集成了16位的Thumb指令集, ARM可以代替16位的处理器如51系单片机,同时具有32位处理器的速度。ARM的嵌入式系统性能优良、移植性好,已广泛应用于各个行业,因此将ARM微处理器应用于机器人小车是一种较优的选择。1本系统以Easyarm1138为核心的控制电路,采用模块化的设计方案,运用光电发射接收器、步进电机、传感模块、车轮模块、蜂鸣模块、速度控制模块、速度显示模块等组成不同的模块,实现小车在行驶中测试、躲避障碍物、自我调整方向、蜂鸣提醒、加减行驶速度、显示当前行驶速度等问题。根据题目的要求,确定如下方案:在Easyarm1138上,加装光电、红外线传感器、七段数码管,利用蜂鸣器,实现对电动车的速度、运行状况的实时测量及监控,并将测量数据传送至ARM进行处理,然后由ARM根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。2 需求分析2.1 项目来源及背景随着社会发展及人类的公共交通需求,以及人工智能化水平的日益提升,汽车工业也前所未有的迅速发展,关于汽车方面的研究也就越来越受人关注。全国电子竞赛、省内电子竞赛以及全国各高校每年举办竞赛也都有智能小车这方面的题目,由此可知,各方各面都很重视该题目的研究,可见其研究意义之大。此次设计也是顺应社会发展的大潮以及人们的需求而产生的,此次设计的智能电动小车能够实现在行驶中自动探测、躲避障碍物、自我车身调整、蜂鸣提醒、加减运行速度、显示行驶速度等具体功能。2.2 项目目标本项目设定的目标如下:小车系统应具有良好的运行效率,具有较高的前行、左右转向、遇到障碍物的反应、蜂鸣警示及躲避的响应速度;小车系统应具有良好的可扩展性,可以为日后升级系统提供方便;小车系统应具有良好的灵活性,使行驶速度、自身调整角度都可以灵活改变;小车系统提供良好的测试模式,使设计人员可以调整观察行驶速度、方便的操作、调整小车运行模式;在做这个项目的过程中不断的积累自己的技术水平,力求做出实用灵活的智能小车。2.3 应用环境2.3.1 系统硬件环境Easyarm1138内核:32位ARM Cortex-M3(ARM v7M架构);运行频率:50MHz时钟周期:快速可嵌套中断,612个时钟周期;外设资源:7组GPIO内置:看门狗定时器(WatchDog Timer) 、USB接口的下载仿真器外围电路设计:5只LED指示灯、3只KEY、1只交流蜂鸣器、两排插针引出全部GPIO资源,以及ADC0ADC7、5V、3.3V、GND等; Easyarm1138各部位电路图如下:图2-1 Easyarm1138的MCU电路图JTAG是由几家主要的电子制造商发起制订的PCB 和IC 测试标准。其原理图如下:图2-2 JTAG电路图USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。其原理图如下:图2-3 USB/PWR电路图LED是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。其原理图如下:图2-4 LED电路图步进电机28BYJ-48-5V额定电压:5VDC相数:4相8拍步距角:5.625/64减速比:1/64步进角度:5.625 x 1/64牵入转矩:34.3mN.m(120Hz)自定位转矩:34.3mN.m直径:28mm重量: 32g步进电机28BYJ-48-5V工作原理图如下:图2-5 步进电机28BYJ-48-5V工作原理图该步进电机为四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。步进电机28BYJ-48-5V电路图如下:图2-6 步进电机28BYJ-48-5V电路图红外避障驱动有障碍:OUT输出持续(断点)低电平无障碍:OUT输出持续高电平工作电压:3.8v-5v最大工作电流(5V时):14mA三条线:VCC、GND、OUT精密可调电位器:根据使用环境调节可调电位器调节范围:5cm-100cm反射距离:跟具体的反射目标来决定,可根据情况调节红色的LED:探测到障碍时发光 数码管显示共阴极数码管:图2-7 数码管原理图小车轮子轮宽:26.6mm轴外径:13.8mm轴孔宽:3.66mm轴孔长:5.3mm皮胎内径:51.8mm皮胎外径:66mm2.3.2 系统软件环境本系统的软件环境如下:操作系统:Windows2000或以上版本开发工具包:Stellaris外设驱动库集成开发工具:IAR Embedded Workbench2.4 功能规格系统采用C语言、IAR Embedded Workbench软件及Stellaris外设驱动库进行小车的程序书写,采用Protell99SE进行红外避障以及步进电机驱动的硬件模块设计。23 系统设计3.1 系统总体设计3.1.1 总体设计(1) 根据需求分析生成的文档,对项目进行总体设计,使用模块流程图,组成模块元素清单,对系统进行设计与分析提供详细的指导。(2)设计模块结构,将按功能需求划分为最小单元的功能模块。确定各模块间的关系,将其连接起来进行整体分析。3.1.2 系统的功能模块a. 红外避障功能模块此子系统主要功能模块有:收发信号模块、预调电位器、LED显示模块。收发信号模块的功能:由发射器发射信号,若前方有障碍,则接收器能够接收到信号,最终将信号输送至Easyarm1138;反之,若前方无障碍,则接收器不能接收到信号,因此仍保持小车前一秒的运行状态。预调电位器的功能:可调红外感应距离,使小车在复杂多变的地形环境中可以灵活多变的进行应用。LED显示模块的功能:有障碍时输出低电平,无障碍时输出持续高电平。其显示作用在于提醒用户哪一端检测到了障碍物。b. 步进电机驱动功能模块此子系统主要功能模块有:ULN2003AN、LED显示模块ULN2003AN模块的功能:交替为四相八拍步进电机提供4个交替的高低电平,通过对四相交替的输入高电平,使得电机开始转动。LED显示模块的功能:高电平时其点亮,表明其对应的四相的工作正常。c. 蜂鸣功能模块此子系统主要功能模块有:蜂鸣工作模块蜂鸣工作模块的功能:遇到障碍物时报警。为以示区别,左侧红外检测到障碍时发出低沉的声音,右侧红外检测到障碍物时发出尖锐的声音。d. 加减速功能模块此子系统主要功能模块有:KEY1键、KEY2键KEY1键的功能:加速,提高速度档位。KEY2键的功能:减速,降低速度档位。e. 速度显示模块此子系统主要功能模块有:七段数码管七段数码管的功能:根据KEY1键及KEY2键的速度调整情况,实时的显示当前小车行驶的速度的档位情况。3.1.3 小车系统结构图小车系统结构总设计图:图3-1 小车结构图3.2 详细设计3.2.1 详细设计的任务根据总体设计生成的小车系统结构图,确定具体地实现智能小车其各种功能的具体方法,既在行驶中自动探测、躲避障碍物、自我车身调整、蜂鸣提醒、加减运行速度、显示行驶速度为目标加以确定核心代码的实现方案。详细设计之后应该得出模块需求的精确描述,进行需求模块的流程图绘制,使得在设计时思路更加清晰,使代码编写阶段根据以上述描述编写具体代码。3.2.2 具体设计a. 红外避障流程图4图3-2 红外避障流程图图解:当小车向前行进时,左右两个红外避障检测仪实时监测左右两方是否遇到障碍物。当检测仪检测到有障碍物时,开始判断障碍物的位置,是在左、右、还是正前方,然后将信息输入Easyarm1138进行后续步进电机行动处理。当检测仪没有检测到障碍物时,开始判断此时是否有按键中断,即此时是否需要进行小车行进速度的调整。b. 步进电机驱动流程图图3-3 步进电机驱动流程图图解:当红外监测完毕后,小车按照监测结果选择行进方式。当左侧红外检测到障碍物时,左轮不动,右轮超前前进10,若右侧红外没有探测到障碍物,则左轮顺时针、右轮逆时针旋转20,进行二次调整,躲避障碍物之后向前行进。当左侧红外检测到障碍物时,左轮不动,右轮超前前进10,若右侧红外探测到障碍物,则左轮顺时针、右轮逆时针旋转90,躲避障碍物之后向前行进。当右侧红外检测到障碍物时,右轮不动,左轮超前前进10,若左侧红外没有探测到障碍物,则右轮顺时针、左轮逆时针旋转20,进行二次调整,躲避障碍物之后向前行进。当右侧红外检测到障碍物时,右轮不动,左轮超前前进10,若左侧红外探测到障碍物,则右轮顺时针、左轮逆时针旋转90,进行二次调整,躲避障碍物之后向前行进。当左右红外均没有探测到障碍物时,小车向前行进。c. 加减行驶速度模块流程图图3-4 加减行驶速度流程图图解:由中断后的按键选择进行行驶速度的调整。按下KEY1键,进行加速运动,即减小电机延迟。按下KEY2键,进行减速运动,即增加电机延时。d. 速度显示模块流程图图3-5 速度显示流程图图解:由中断后的按键选择进行当前速度档位的显示。每按下KEY1键一次,七段数码管所显示的数字逐个加1,每按下KEY2键一次,反之,七段数码管所显示的数字逐个减1。此次设计,为凸显行驶速度的突变,共设1-4的4个档位,因此档位最小为1,最大为4。但程序中已写好可调整至9个档位的程序,使得此项功能灵活多变。3.2.3 总体设计流程图掉电右前左前右左减速有中断无中断有障碍加速小车上电向前行进无障碍检测障碍退出检测按键中断障碍位置加速/减速减小电机延迟增加电机延时更新七段数码管的档位值左/右左调整右调整前方/左方右转90度二次右调整前方/右方方左转90度二次左调整图3-6 小车系统总体设计流程图4 系统实现4.1 核心部分实现方法4.1.1 红外蔽障模块红外蔽障模块包括,初始化红外蔽障函数和红外蔽障模块中断服务子程序。这是小车在行进过程中遇到障碍及时调整的核心内容。此外红外蔽障模块还有配合显示的LED子模块和配合发音的蜂鸣器子模块。它们都是为方便我们判断小车当前行为状态的子模块。其部分代码及代码分析见附件1。4.1.2 5V4相步进电机的驱动模块55V4相步进电机的驱动是驱动程序中最大的一块,也是整个小车最主要的代码之一。电机的驱动部分包括六个函数。部分函数代码及详解见附件1。4.1.3 速度控制模块为了提高智能小车的复杂性,使小车更加强大,速度控制则必不可少。速度控制模块包括速度按键控制子模块和七段数码管速度显示子模块。其中速度按键控制子模块是该模块的核心,它包括初始化按键函数和两个终端服务子程序。七段数码管速度显示子模块起辅助作用主要用于显示当前的档位信息。速度控制模块部分代码及说明见附件1。4.2 部分模块实现结果4.2.1 红外避障模块的实现当一侧红外探测器探测到障碍物时,小车进行自身调整看另外一侧是否也探测到了障碍物,若另一侧也探测到了,则进行左/右的90旋转,若另一侧没有探测到,则小车进行左/右的20的修正,继续前行;当两侧红外都没有探测到障碍物时,小车持续前行。4.2.2 电机驱动模块的实现小车根据红外探测传输到arm板的结果,再结合对电机四相交替的供给正电的情况,实时的来执行向前、向左90、向右90、左探测10、右探测10、左调整20、右调整20这7条指令。4.2.3 蜂鸣器模块的实现根据红外探测传输到arm板的结果,在arm板内进行判断,若左侧红外先检测到障碍物,则发出低沉的蜂鸣声;若右侧红外先检测到障碍物,则发出尖锐的蜂鸣声。64.2.4 加减车速控制模块通过中断的KEY1键、KEY2键进行小车行驶速度的加、减控制,使得小车可以依照人们的意愿进行速度的调整,使得其更加具有灵活性。4.2.5 车速显示模块依照加减车速控制模块中KEY1键、KEY2键的按下及抬起状况,显示当前小车行驶的速度,使得整个小车的情况为人们所了解,便于掌控。5 小车系统测试测试的目的是为了发现尽可能多的缺陷,设计完善的系统不应该害怕挑剔的用户进行测试。因此,为了提高系统的执行效率我对项目进行了测试。 小车系统测试的规范是:(1)及时发现问题,及时修改,每完成一个模块的设计就对其进行测试;(2)设计合适的测试;(3)根据测试结果生成测试报告。小车系统测试的结果:测试正常的模块:红外避障模块、步进电机驱动模块、蜂鸣器模块、加减车速模块、车速显示模块测试出现异常的模块以及出现的问题: 步进电机红外避障后的自我调整模块出现过问题。由于最初设计的调整模块为不够完善,在此举例表述:最初设计的当左侧红外先检测出障碍物时,左轮不动,右轮向前调整10若右侧红外没能检测到障碍物,则右轮不动,左轮向前行驶20进行向右自我调整,以防止左轮撞到左墙。但在此设计中不妥的是当向右自我调整时,若右轮不动,左轮向前行驶20虽为向右自我调整设计,但仍十分容易撞到左墙,为防止此类情况发生,最终,我将程序设计为在向右自我调整时左轮向前、右轮向后同时旋转20,这样可以避免撞墙的尴尬事件发生。该问题十分需要解决,因为智能小车设计本身就需要及时躲避障碍物,并且在复杂的地形环境下应该灵活应对各种情况。6 结束语通过这次毕业设计,我更加熟悉了C语言的逻辑设计、硬件之间的紧密联系、以及Easyarm1138等方面的技术应用,对这些技术的了解从以前的略知一二,到现在的逐步掌握。并将其充分应用到了项目中,使项目的专业化水平及自身学习能力都有大幅度的提升,同时也为日后的就业奠定了良好的基础。在项目中我利用Easyarm1138的使用工程模板构建了写入arm板的语言框架、老师所讲内容、以及光盘中所带的各种资料,着重学习了Easyarm1138的程序书写逻辑设计及方式,通过请教老师、查阅大量相关书籍,最终编写完成了智能小车的程序,将其与硬件设备相结合,实现了可灵活躲避障碍物的智能小车的设计。在程序编写的过程中也遇到了许多问题,其中最大的问题就是对写入arm中的语言结构没有具体的概念,这也是我们花费力气最大的地方,为此查阅了很多书籍。尤其是arm板程序开发方面的,它直接关系到项目整体布局、实现等问题。此外,对Easyarm1138开发板的不熟悉也严重影响了项目的进度,因此,也花费了大量的时间浏览网站,从而写出通用又满足功能的智能小车代码。当项目逐个模块完成之后,自己有种说不出的高兴,在这几个月的项目开发中我获得的不仅是项目实训,更重要的是提升了自我学习的能力,这种经验将使我终身受益。致 谢经过将近2个月的努力最终完成了智能小车的多项功能的设计,并且让设计的智能小车看起来比较灵活使用。在这里起关键作用的正是我的指导老师王载阳老师,他不仅每周都认真细心的为我们答疑解惑,还在我最没有概念的时候为我耐心的画图指导。他用他的丰富的实践经验带领我们走向了成功。所以衷心的感谢王载阳老师对我的帮助,同时也感谢一切帮助过我的人,谢谢你们。参考文献1 杜春雷主编. ARM体系结构与编程M.北京:清华大学出版社. 20032 范书瑞. ARM处理器与C语言开发应用M.北京: 北京航空航天大学出版社. 20083 刘岚,尹勇,李京蔚. 基于ARM的嵌入式系统开发M.北京: 电子工业出版社.20084 周立功.ARM嵌入式系统基础教程(第二版)M. 北京: 北京航空航天大学出版社.20065 侯冬晴. ARM技术原理与应用M. 北京: 北京交通大学出版社.20096 吴明辉. 基于ARM的嵌入式系统开发与应用M.北京: 人民邮电出版社.20047 赵星寒,刘涛. 从51到ARM32位嵌入式系统入门M. 北京: 北京航空航天大学出版社.20057 附件1:系统实现7.1 核心部分实现方法7.1.1 红外蔽障模块红外蔽障模块包括,初始化红外蔽障函数和红外蔽障模块中断服务子程序。这是小车在行进过程中遇到障碍及时调整的核心内容。此外红外蔽障模块还有配合显示的LED子模块和配合发音的蜂鸣器子模块。它们都是为方便我们判断小车当前行为状态的子模块。其部分代码及代码分析如下:a. 红外避障模块宏定义部分3#define IS_PERIPH SYSCTL_PERIPH_GPIOB / 定义红外蔽障所在的GPIO模块#define IS_PORT GPIO_PORTB_BASE / 定义红外蔽障的端口基地址#define IS_PIN_LEFT GPIO_PIN_0 / 定义红外蔽障的左传感器的针脚#define IS_PIN_RIGHT GPIO_PIN_1 / 定义红外蔽障的右传感器的针脚b. 定义配合红外避障模块起辅助显示作用的LED信息#define LED_PERIPH SYSCTL_PERIPH_GPIOG#define LED_PORT GPIO_PORTG_BASE#define LED_PIN_LEFT GPIO_PIN_2#define LED_PIN_RIGHT GPIO_PIN_3c. 定义配合红外避障模块起辅助发音作用的蜂鸣器信息,即音调#define LOW_DEGREE 185 /低音#define HIGH_DEGREE 4000 /高音#define First 10 /定义发现障碍调整的第一修正值#define Secend 20 /定义发现障碍调整的第二修正值d. 红外避障的函数声明部分void InitIS(void); /初始化红外蔽障模块的函数声明void GPIO_Port_B_ISR(void); /红外蔽障模块终端服务子程序的函数声明void InitBuzzer(void); /初始化蜂鸣器void BuzzerSound(unsigned short usFreq); /是蜂鸣器发音void BuzzerQuiet(void); /中断蜂鸣器的发音e. 初始化红外避障模块函数void InitIS(void) SysCtlPeriEnable(LED_PERIPH); / 使能LED所在的GPIO端口 GPIOPinTypeOut(LED_PORT, LED_PIN_LEFT); / 设置左LED所在管脚为输出 GPIOPinTypeOut(LED_PORT, LED_PIN_RIGHT); / 设置右LED所在管脚为输出 SysCtlPeriEnable(IS_PERIPH); / 使能红外避障传感器所在的GPIO端口 GPIOPinTypeIn(IS_PORT, IS_PIN_LEFT); / 设置左红外避障传感器所在管脚为输入 GPIOPinTypeIn(IS_PORT, IS_PIN_RIGHT); / 设置红外避障传感器所在管脚为输入 GPIOIntTypeSet(IS_PORT, IS_PIN_LEFT, GPIO_LOW_LEVEL); / 设置右红外避障传感器管脚的中断类型 GPIOIntTypeSet(IS_PORT, IS_PIN_RIGHT, GPIO_LOW_LEVEL); / 设置右红外避障传感器管脚的中断类型 GPIOPinIntEnable(IS_PORT, IS_PIN_LEFT); / 使能左红外避障传感器所在管脚的中断 GPIOPinIntEnable(IS_PORT, IS_PIN_RIGHT); / 使能右红外避障传感器所在管脚的中断 IntEnable(INT_GPIOB); / 使能GPIOB端口中断 IntMasterEnable(); / 使能处理器中断 GPIOPinWrite(LED_PORT, LED_PIN_LEFT, 0xFF); GPIOPinWrite(LED_PORT, LED_PIN_RIGHT, 0xFF);f. 红外避障模块的中断服务子程序void GPIO_Port_B_ISR(void) unsigned long ulStatus; /记录GPIOB模块的中断状态 ulStatus = GPIOPinIntStatus(IS_PORT, true); / 读取中断状态 GPIOPinIntClear(IS_PORT, ulStatus); / 清除中断状态 if (ulStatus & IS_PIN_LEFT) / 如果左红外传感器的中断状态有效 GPIOPinWrite(LED_PORT, LED_PIN_LEFT, 0x00); /使左LED亮 BuzzerSound(LOW_DEGREE); /发低音 SysCtlDelay(10 * (TheSysClock / 3000); / 延时约10ms,消除红外传感器的抖动 GoLeft2(First); /向左调整First度 if(GPIOPinRead(IS_PORT, IS_PIN_RIGHT) = 0x00) /若发现右红外传感器也检测到障碍物 GoRight(90+First); /则说明障碍物在正前方,所以向右转90度,其中右转First度是为了消除左调整带来的旋转误差。 else GoRight(Secend); /若右红外传感器没有发现障碍物,则说明障碍物只在左侧,所以右转Secend-First度,其中右转First度是为了消除左调整带来的旋转误差。 GPIOPinWrite(LED_PORT, LED_PIN_LEFT, 0xFF); /使左LED灭 BuzzerQuiet(); /停止发音 else if (ulStatus & IS_PIN_RIGHT) 由于右红外避障传感器的中断状态与左红外中断传感器的避障方法是镜像的,因此就不在详细说明了。7.1.2 5V4相步进电机的驱动模块55V4相步进电机的驱动是驱动程序中最大的一块,也是整个小车最主要的代码之一。电机的驱动部分包括六个函数。部分函数代码及详解如下:a. 宏定义段#define Motor_PERIPH SYSCTL_PERIPH_GPIOA /定义电机所在的GPIO模块#define Motor_GPIO GPIO_PORTA_BASE /电机所在GPIO模块的基地址 #define Motor_Fixed 2.4 /电机转动修正量#define MAX_SPEED_DEGREE 4 /定义电机的最高档位#define PER_SPEED_DEGREE 5 /定义电机每档位延时递减量b. 全局变量int speed = 5; /全局变量,定义当前小车步进电机延时,单位0.5msc. 函数声明段void InitMotor(void); /声明初始化步进电机函数void MotorForward(void); /声明步进电机前进函数void GoLeft(int angle); /声明步进电机左转函数void GoRight(int angle); /声明步进电机右转函数void GoLeft2(int angle); /声明步进电机左调整函数void GoRight2(int angle); /声明步进电机右调整函数d. 初始化电机函数void InitMotor(void) SysCtlPeriEnable(Motor_P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 表彰大会活动报告
- 七年级语文下册 第二单元 8 少年爱因斯坦教学设计 语文版
- 初中英语人教新目标 (Go for it) 版九年级全册Section A第4课时教学设计
- 初中信息技术大连版八年级下册第一单元 探秘动画世界第十课 交互动画之魂-按钮元件的应用教学设计
- 初中体育华东师大版七年级全一册迈向成熟的蜕变-青春期特点、常见问题和预防教案
- 碧桂园项目总培训
- 九年级数学下册 第二十九章 投影与视图29.2 三视图第2课时 由三视图确定几何体教学设计 (新版)新人教版
- 房地产精装装修培训讲师
- 抖音基础教学培训
- 七年级语文下册 第三单元 10 阿长与《山海经》教学设计 新人教版
- 冲击波球囊治疗冠脉
- JJG 927-2013轮胎压力表检定规程
- 村内绿化方案设计
- 六年级分数应用题100题及答案
- GB/T 22076-2024气动圆柱形快换接头
- 医院网络信息安全课件
- 高清监控系统报价清单
- 研究生科研第一课:快速进行文献检索与阅读
- 2023年1月浙江省普通高校招生选考高考政治真题及答案
- T-JSSAE 001-2021 汽车混合动力系统 术语
- 第十三章-希尔德吉德·E·佩普劳的人际关系理论
评论
0/150
提交评论