业 设 计(论 文)
智能小车设计
毕
目:
毕业设计(论文)诚信声明书
本人声明:本人所提交的毕业论文《 》是本人在指导教师指导下研究、写作的成果,论文中所引用他人的文献、数据、图件、资料均已明确标注;对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。
本人完全清楚本声明的法律后果,申请学位论文和资料若有不实之处,本人愿承担相应的法律责任。
论文作者签名: 时间: 年 月 日 指导教师签名: 时间: 年 月 日
西 安 邮 电 学 院
毕业设计(论文)任务书
学生姓名 学院 专业 题目
智能小车设计
指导教师
职称
系部
任务与要求
1. 2. 3. 4. 5.
学习并熟系统基本结构设计的基本理论。 学习arm的基本原理和应用设计。 学习并掌握IAR的使用方法。
学习掌握步进电机驱动电路及接口设计。 设计结构及系统电路并相关程序。
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到ARM—32位嵌入式系统入门》 《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平台基础上,设计智能小车使其集自动避障、加减行驶速度、蜂鸣提醒等功能。 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 2 2.1 2.2 2.3
引言 .................................................................................................................... 1 需求分析 ............................................................................................................ 2 项目来源及背景 ................................................................................................ 2 项目目标 ............................................................................................................ 2 应用环境 ............................................................................................................ 2
2.3.1 系统硬件环境 .................................................................................................2 2.3.2 系统软件环境 .................................................................................................6 2.4 3 3.1
功能规格 ............................................................................................................ 7 系统设计 ............................................................................................................ 8 系统总体设计 .................................................................................................... 8
3.1.1 总体设计 .........................................................................................................8 3.1.2 系统的功能模块 .............................................................................................8 3.1.3 小车系统结构图 .............................................................................................9 3.2
详细设计 .......................................................................................................... 10
3.2.1 详细设计的任务 .......................................................................................... 10 3.2.2 具体设计 ...................................................................................................... 10 3.2.3 总体设计流程图 .......................................................................................... 13 4 4.1
系统实现 .......................................................................................................... 14 核心部分实现方法 .......................................................................................... 14
4.1.1 红外蔽障模块 .............................................................................................. 14 4.1.2 5V4相步进电机的驱动模块[5] .................................................................... 14 4.1.3 速度控制模块 .............................................................................................. 14 4.2
部分模块实现结果 .......................................................................................... 14
4.2.1 红外避障模块的实现 .................................................................................. 14 4.2.2 电机驱动模块的实现 .................................................................................. 14 4.2.3 蜂鸣器模块的实现 ...................................................................................... 14
4.2.4 加减车速控制模块 ...................................................................................... 15 4.2.5 车速显示模块 .............................................................................................. 15 5 6
小车系统测试 .................................................................................................. 16 结束语 .............................................................................................................. 17
致 谢 ........................................................................................................................... 18 参考文献 ......................................................................................................................... 19 7 附件1:系统实现 .......................................................................................... 20 7.1
核心部分实现方法 .......................................................................................... 20
7.1.1 红外蔽障模块 .............................................................................................. 20 7.1.2 5V4相步进电机的驱动模块[5] .................................................................... 23 7.1.3 速度控制模块 .............................................................................................. 26
摘要
智能小车属机器人的一种,它可按照预先设定的模式在一个环境里自主运行,不需要人为管理,多应用于学术应用、科学探测、救灾抢险等用途。人们通过编译环境编程实现行进、绕障、停止、检测数据的存储、显示等功能,无需人工干预。智能小车设计具有实际意义,与实际相结合,现实意义很强。
本系统以Easyarm1138为核心的控制电路,采用模块化的设计方案,运用光电发射接收器、步进电机、传感模块、车轮模块、车速控制模块、速度显示模块等组成不同的模块,实现小车在行驶中测试、躲避障碍物、自我调整方向、蜂鸣提醒、加减行驶速度、显示当前速度等问题。并将测量数据传送至Arm板进行处理,然后由Arm板根据所检测的各种数据实现对电动小车的智能控制。这种方案能使得智能小车满足控制灵活、可靠,精度高,可满足系统的各项要求。
【关键词】Easyarm1138、步进电机、光电传感器、驱动模块、蜂鸣模块、车速控制模块、显示模块、躲避障碍物
I
智能小车设计
Abstract
The 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 obstacles
II
智能小车设计
1 引言
智能小车可集环境感知、动态决策、行为控制等多种功能于一体。随着传感技术、计算机技术、人工智能及其它学科的迅速发展,机器人小车逐渐具有智能其必须具有感知作业环境、任务规划以及决策的能力。从系统硬件方面讲,机器人小车必须具有复杂的传感器,功能强大的计算机以及精确的驱动系统。单片机作为控制系统的微处理器,早已经无法满足系统的需求,ARM微处理器资源丰富,在数据处理和代码存储等方面具有良好的通用性。ARM是32位微处理器,集成了16位的Thumb指令集, ARM可以代替16位的处理器如51系单片机,同时具有32位处理器的速度。ARM的嵌入式系统性能优良、移植性好,已广泛应用于各个行业,因此将ARM微处理器应用于机器人小车是一种较优的选择。[1]
本系统以Easyarm1138为核心的控制电路,采用模块化的设计方案,运用光电发射接收器、步进电机、传感模块、车轮模块、蜂鸣模块、速度控制模块、速度显示模块等组成不同的模块,实现小车在行驶中测试、躲避障碍物、自我调整方向、蜂鸣提醒、加减行驶速度、显示当前行驶速度等问题。根据题目的要求,确定如下方案:在Easyarm1138上,加装光电、红外线传感器、七段数码管,利用蜂鸣器,实现对电动车的速度、运行状况的实时测量及监控,并将测量数据传送至ARM进行处理,然后由ARM根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
1
智能小车设计
2 需求分析
2.1 项目来源及背景
随着社会发展及人类的公共交通需求,以及人工智能化水平的日益提升,汽车工业也前所未有的迅速发展,关于汽车方面的研究也就越来越受人关注。全国电子竞赛、省内电子竞赛以及全国各高校每年举办竞赛也都有智能小车这方面的题目,由此可知,各方各面都很重视该题目的研究,可见其研究意义之大。此次设计也是顺应社会发展的大潮以及人们的需求而产生的,此次设计的智能电动小车能够实现在行驶中自动探测、躲避障碍物、自我车身调整、蜂鸣提醒、加减运行速度、显示行驶速度等具体功能。
2.2 项目目标
本项目设定的目标如下:
小车系统应具有良好的运行效率,具有较高的前行、左右转向、遇到障碍物的反应、蜂鸣警示及躲避的响应速度;
小车系统应具有良好的可扩展性,可以为日后升级系统提供方便; 小车系统应具有良好的灵活性,使行驶速度、自身调整角度都可以灵活改变;
小车系统提供良好的测试模式,使设计人员可以调整观察行驶速度、方便的操作、调整小车运行模式;
在做这个项目的过程中不断的积累自己的技术水平,力求做出实用灵活的智能小车。
2.3 应用环境
2.3.1 系统硬件环境 Easyarm1138
内核:32位ARM Cortex-M3(ARM v7M架构); 运行频率:50MHz
时钟周期:快速可嵌套中断,6~12个时钟周期; 外设资源:7组GPIO
内置:看门狗定时器(WatchDog Timer) 、USB接口的下载仿真器 外围电路设计:5只LED指示灯、3只KEY、1只交流蜂鸣器、两排插针引出全部GPIO资源,以及ADC0~ADC7、5V、3.3V、GND等;
2
智能小车设计
Easyarm1138各部位电路图如下:
图2-1 Easyarm1138的MCU电路图
JTAG是由几家主要的电子制造商发起制订的PCB 和IC 测试标准。其原理图如下:
图2-2 JTAG电路图
USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。其原理图如下:
3
智能小车设计
图2-3 USB/PWR电路图
LED是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。其原理图如下:
图2-4 LED电路图
步进电机28BYJ-48-5V
额定电压:5VDC 相 数:4相8拍 步距角:5.625°/
4
智能小车设计
减速比:1/
步进角度:5.625 x 1/ 牵入转矩:>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电路图
5
智能小车设计
红外避障驱动
有障碍: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 皮胎外径:66mm 2.3.2 系统软件环境
本系统的软件环境如下:
操作系统:Windows2000或以上版本
6
智能小车设计
开发工具包:Stellaris外设驱动库 集成开发工具:IAR Embedded Workbench
2.4 功能规格
系统采用C语言、IAR Embedded Workbench软件及Stellaris外设驱动库进行小车的程序书写,采用Protell99SE进行红外避障以及步进电机驱动的硬件模块设计。[2]
7
智能小车设计
3 系统设计
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键的功能:加速,提高速度档位。
8
智能小车设计
KEY2键的功能:减速,降低速度档位。
e.
速度显示模块
此子系统主要功能模块有:七段数码管
七段数码管的功能:根据KEY1键及KEY2键的速度调整情况,实时的显示当前小车行驶的速度的档位情况。 3.1.3 小车系统结构图
小车系统结构总设计图:
图3-1 小车结构图
9
智能小车设计
3.2 详细设计
3.2.1 详细设计的任务
根据总体设计生成的小车系统结构图,确定具体地实现智能小车其各种功能的具体方法,既在行驶中自动探测、躲避障碍物、自我车身调整、蜂鸣提醒、加减运行速度、显示行驶速度为目标加以确定核心代码的实现方案。详细设计之后应该得出模块需求的精确描述,进行需求模块的流程图绘制,使得在设计时思路更加清晰,使代码编写阶段根据以上述描述编写具体代码。 3.2.2 具体设计
a.
红外避障流程图
[4]
图3-2 红外避障流程图
图解:当小车向前行进时,左右两个红外避障检测仪实时监测左右两方是否遇到障碍物。
①当检测仪检测到有障碍物时,开始判断障碍物的位置,是在左、右、还是正前方,然后将信息输入Easyarm1138进行后续步进电机行动处理。
②当检测仪没有检测到障碍物时,开始判断此时是否有按键中断,即此时是否需要进行小车行进速度的调整。
10
智能小车设计
b. 步进电机驱动流程图
图3-3 步进电机驱动流程图
图解:当红外监测完毕后,小车按照监测结果选择行进方式。
①当左侧红外检测到障碍物时,左轮不动,右轮超前前进10°,若右侧红外没有探测到障碍物,则左轮顺时针、右轮逆时针旋转20°,进行二次调整,躲避障碍物之后向前行进。
②当左侧红外检测到障碍物时,左轮不动,右轮超前前进10°,若右侧红外探测到障碍物,则左轮顺时针、右轮逆时针旋转90°,躲避障碍物之后向前行进。
③当右侧红外检测到障碍物时,右轮不动,左轮超前前进10°,若左侧红外没有探测到障碍物,则右轮顺时针、左轮逆时针旋转20°,进行二次调整,躲避障碍物之后向前行进。
④当右侧红外检测到障碍物时,右轮不动,左轮超前前进10°,若左侧红外探测到障碍物,则右轮顺时针、左轮逆时针旋转90°,进行二次调整,躲避障碍物之后向前行进。
⑤当左右红外均没有探测到障碍物时,小车向前行进。
11
智能小车设计
c. 加减行驶速度模块流程图
图3-4 加减行驶速度流程图
图解:由中断后的按键选择进行行驶速度的调整。 ①按下KEY1键,进行加速运动,即减小电机延迟。 ②按下KEY2键,进行减速运动,即增加电机延时。
d.
速度显示模块流程图
图3-5 速度显示流程图
图解:由中断后的按键选择进行当前速度档位的显示。
①每按下KEY1键一次,七段数码管所显示的数字逐个加1,每按下KEY2键一次,反之,七段数码管所显示的数字逐个减1。
②此次设计,为凸显行驶速度的突变,共设1-4的4个档位,因此档位最小为1,最大为4。但程序中已写好可调整至9个档位的程序,使得此项功能灵活多变。
12
智能小车设计
3.2.3 总体设计流程图
小车上电 向前行进 检测障碍 有障碍 无障碍 无中断 障碍位置 掉电 左/右 左 左调整 右调整 检测按键中断 有中断 右 加速 减小电机延迟 加速/减速 减速 增加电机延时 前方/左方 前方/右方前 左 右转90度 前 左转90度 更新七段数码管的档位值 右 二次右调整 二次左调整 退出 图3-6 小车系统总体设计流程图
13
智能小车设计
4 系统实现
4.1 核心部分实现方法
4.1.1 红外蔽障模块
红外蔽障模块包括,初始化红外蔽障函数和红外蔽障模块中断服务子程序。这是小车在行进过程中遇到障碍及时调整的核心内容。此外红外蔽障模块还有配合显示的LED子模块和配合发音的蜂鸣器子模块。它们都是为方便我们判断小车当前行为状态的子模块。其部分代码及代码分析见附件1。 4.1.2 5V4相步进电机的驱动模块[5]
5V4相步进电机的驱动是驱动程序中最大的一块,也是整个小车最主要的代码之一。电机的驱动部分包括六个函数。部分函数代码及详解见附件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板内进行判断,若左侧红外先
14
智能小车设计
检测到障碍物,则发出低沉的蜂鸣声;若右侧红外先检测到障碍物,则发出尖锐的蜂鸣声。[6]
4.2.4 加减车速控制模块
通过中断的KEY1键、KEY2键进行小车行驶速度的加、减控制,使得小车可以依照人们的意愿进行速度的调整,使得其更加具有灵活性。 4.2.5 车速显示模块
依照加减车速控制模块中KEY1键、KEY2键的按下及抬起状况,显示当前小车行驶的速度,使得整个小车的情况为人们所了解,便于掌控。
15
智能小车设计
5 小车系统测试
测试的目的是为了发现尽可能多的缺陷,设计完善的系统不应该害怕挑剔的用户进行测试。因此,为了提高系统的执行效率我对项目进行了测试。
小车系统测试的规范是:
(1)及时发现问题,及时修改,每完成一个模块的设计就对其进行测试; (2)设计合适的测试;
(3)根据测试结果生成测试报告。 小车系统测试的结果:
测试正常的模块:红外避障模块、步进电机驱动模块、蜂鸣器模块、加减车速模块、车速显示模块
测试出现异常的模块以及出现的问题:
步进电机红外避障后的自我调整模块出现过问题。由于最初设计的调整模块为不够完善,在此举例表述:最初设计的当左侧红外先检测出障碍物时,左轮不动,右轮向前调整10°若右侧红外没能检测到障碍物,则右轮不动,左轮向前行驶20°进行向右自我调整,以防止左轮撞到左墙。但在此设计中不妥的是当向右自我调整时,若右轮不动,左轮向前行驶20°虽为向右自我调整设计,但仍十分容易撞到左墙,为防止此类情况发生,最终,我将程序设计为在向右自我调整时左轮向前、右轮向后同时旋转20°,这样可以避免撞墙的尴尬事件发生。
该问题十分需要解决,因为智能小车设计本身就需要及时躲避障碍物,并且在复杂的地形环境下应该灵活应对各种情况。
16
智能小车设计
6 结束语
通过这次毕业设计,我更加熟悉了C语言的逻辑设计、硬件之间的紧密联系、以及Easyarm1138等方面的技术应用,对这些技术的了解从以前的略知一二,到现在的逐步掌握。并将其充分应用到了项目中,使项目的专业化水平及自身学习能力都有大幅度的提升,同时也为日后的就业奠定了良好的基础。
在项目中我利用Easyarm1138的使用工程模板构建了写入arm板的语言框架、老师所讲内容、以及光盘中所带的各种资料,着重学习了Easyarm1138的程序书写逻辑设计及方式,通过请教老师、查阅大量相关书籍,最终编写完成了智能小车的程序,将其与硬件设备相结合,实现了可灵活躲避障碍物的智能小车的设计。
在程序编写的过程中也遇到了许多问题,其中最大的问题就是对写入arm中的语言结构没有具体的概念,这也是我们花费力气最大的地方,为此查阅了很多书籍。尤其是arm板程序开发方面的,它直接关系到项目整体布局、实现等问题。此外,对Easyarm1138开发板的不熟悉也严重影响了项目的进度,因此,也花费了大量的时间浏览网站,从而写出通用又满足功能的智能小车代码。
当项目逐个模块完成之后,自己有种说不出的高兴,在这几个月的项目开发中我获得的不仅是项目实训,更重要的是提升了自我学习的能力,这种经验将使我终身受益。
17
智能小车设计
致 谢
经过将近2个月的努力最终完成了智能小车的多项功能的设计,并且让设计的智能小车看起来比较灵活使用。在这里起关键作用的正是我的指导老师王载阳老师,他不仅每周都认真细心的为我们答疑解惑,还在我最没有概念的时候为我耐心的画图指导。他用他的丰富的实践经验带领我们走向了成功。
所以衷心的感谢王载阳老师对我的帮助,同时也感谢一切帮助过我的人,谢谢你们。
18
智能小车设计
参考文献
[1] 杜春雷主编. ARM体系结构与编程[M].北京:清华大学出版社. 2003
[2] 范书瑞. ARM处理器与C语言开发应用[M].北京: 北京航空航天大学出版社. 2008 [3] 刘岚,尹勇,李京蔚. 基于ARM的嵌入式系统开发[M].北京: 电子工业出版社.2008 [4] 周立功.ARM嵌入式系统基础教程(第二版)[M]. 北京: 北京航空航天大学出版社.2006
[5] 侯冬晴. ARM技术原理与应用[M]. 北京: 北京交通大学出版社.2009 [6] 吴明辉. 基于ARM的嵌入式系统开发与应用[M].北京: 人民邮电出版社.2004 [7] 赵星寒,刘涛. 从51到ARM—32位嵌入式系统入门[M]. 北京: 北京航空航天大学出版社.2005
19
智能小车设计
7 附件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_3
c.
定义配合红外避障模块起辅助发音作用的蜂鸣器信息,即音调
#define LOW_DEGREE 185 //低音 #define HIGH_DEGREE 4000 //高音
#define First 10 //定义发现障碍调整的第一修正值 #define Secend 20 //定义发现障碍调整的第二修正值
d.
红外避障的函数声明部分
void InitIS(void); //初始化红外蔽障模块的函数声明
20
智能小车设计
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);
21
智能小车设计
}
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(); //停止发音
22
智能小车设计
}else if (ulStatus & IS_PIN_RIGHT) 由于右红外避障传感器的中断状态与左红外中断传感器的避障方法是镜像的,因此就不在详细说明了。 7.1.2 5V4相步进电机的驱动模块[5]
5V4相步进电机的驱动是驱动程序中最大的一块,也是整个小车最主要的代码之一。电机的驱动部分包括六个函数。部分函数代码及详解如下:
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.5ms
c.
函数声明段
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_PERIPH); //使能电机所在的GPIO模块 GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_0); //设置右轮所在的GPIO引脚为输出引脚
GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_1);
23
智能小车设计
GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_2); GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_3);
GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_4); //设置左轮所在的GPIO引脚为输出引脚
GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_5); GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_6); GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_7);
GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0x00); //设置右轮的四个相都为低电平
GPIOPinWrite(Motor_GPIO, GPIO_PIN_1, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_2, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_3, 0x00);
GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0x00); //设置左轮的四个相都为低电平
GPIOPinWrite(Motor_GPIO, GPIO_PIN_5, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_6, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_7, 0x00); }
e.
控制电机前进函数
void MotorForward(void) {
//至左轮的D相与右轮的A相为高电平 GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0xFF); GPIOPinWrite(Motor_GPIO, GPIO_PIN_7, 0xFF);
SysCtlDelay(speed * (TheSysClock / 6000)); // 延时约speed*0.5ms GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_7, 0x00);
//至左轮的C相与右轮的B相为高电平
GPIOPinWrite(Motor_GPIO, GPIO_PIN_1, 0xFF);
24
智能小车设计
GPIOPinWrite(Motor_GPIO, GPIO_PIN_6, 0xFF);
SysCtlDelay(speed * (TheSysClock / 6000)); // 延时约speed*0.5ms GPIOPinWrite(Motor_GPIO, GPIO_PIN_1, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_6, 0x00);
//至左轮的B相与右轮的C相为高电平 GPIOPinWrite(Motor_GPIO, GPIO_PIN_2, 0xFF); GPIOPinWrite(Motor_GPIO, GPIO_PIN_5, 0xFF);
SysCtlDelay(speed * (TheSysClock / 6000)); // 延时约speed*0.5ms GPIOPinWrite(Motor_GPIO, GPIO_PIN_2, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_5, 0x00);
//至左轮的A相与右轮的D相为高电平 GPIOPinWrite(Motor_GPIO, GPIO_PIN_3, 0xFF); GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0xFF);
SysCtlDelay(speed * (TheSysClock / 6000)); // speed*0.5ms GPIOPinWrite(Motor_GPIO, GPIO_PIN_3, 0x00); GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0x00); }
f.
控制电机左转的函数
void GoLeft(int angle) //angle为形参,表示左转的角度 {
int count = (int)angle*512/360*Motor_Fixed; //angle计算的公式,Motor_Fixed为角度的修正值
int i; //记录循环的次数的变量
for(i=0;i { GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0xFF); GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0xFF); SysCtlDelay(speed * (TheSysClock / 6000)); // 延时约speed*0.5ms GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0x00); 25 智能小车设计 GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0x00); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, 0xFF); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_5, 0xFF); SysCtlDelay(speed * (TheSysClock / 6000)); // 延时约speed*0.5ms GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, 0x00); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_5, 0x00); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2, 0xFF); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_6, 0xFF); SysCtlDelay(speed * (TheSysClock / 6000)); // 延时约speed*0.5ms GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2, 0x00); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_6, 0x00); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0xFF); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_7, 0xFF); SysCtlDelay(speed * (TheSysClock / 6000)); // 延时约speed*0.5ms GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0x00); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_7, 0x00); } } 电机驱动的另外三个函数控制右转,左调整和右调整。其大部分代码与控制左转函数相近,所以无需列出。只是左调整时左轮不动,右调整时右轮不动。这样的好处是,在红外模块的一个传感器发现障碍时,可以方便的判断另一个传感器与障碍的距离。 7.1.3 速度控制模块 为了提高智能小车的复杂性,使小车更加强大,速度控制则必不可少。速度控制模块包括速度按键控制子模块和七段数码管速度显示子模块。其中速度按键控制子模块是该模块的核心,它包括初始化按键函数和两个终端服务子程序。七段数码管速度显示子模块起辅助作用主要用于显示当前的档位信息。速度控制模块部分代码及说明如下: 26 智能小车设计 a. 速度控制模块宏定义、按键宏定义部分 #define KEY_PLUS_PERIPH SYSCTL_PERIPH_GPIOD //加速按键所在GPIO模块的宏定义 #define KEY_PLUS_PORT GPIO_PORTD_BASE //加速按键所在GPIO基地址的宏定义 #define KEY_PLUS_PIN GPIO_PIN_1 //加速按键所在针脚的宏定义 #define KEY_SUB_PERIPH SYSCTL_PERIPH_GPIOG //减速按键所在GPIO模块的宏定义 #define KEY_SUB_PORT GPIO_PORTG_BASE //减速按键所在基地址的宏定义 #define KEY_SUB_PIN GPIO_PIN_5 //减速按键所针脚的宏定义 b. 数码管宏定义 #define SSLED_LOW_PERIPH SYSCTL_PERIPH_GPIOB //数码管前四个引脚所在的GPIO模块的定义 #define SSLED_LOW_PORT GPIO_PORTB_BASE //数码管前四个引脚的基地址的定义 #define SSLED_a__PIN GPIO_PIN_2 //数码管引脚a的针脚定义 #define SSLED_b__PIN GPIO_PIN_3 //数码管引脚b的针脚定义 #define SSLED_c__PIN GPIO_PIN_4 //数码管引脚c的针脚定义 #define SSLED_d__PIN GPIO_PIN_5 //数码管引脚d的针脚定义 #define SSLED_HIGH_PERIPH SYSCTL_PERIPH_GPIOC //数码管后四个引脚所在的GPIO模块的定义 #define SSLED_HIGH_PORT GPIO_PORTC_BASE //数码管后四个引脚的基地址的定义 #define SSLED_e__PIN GPIO_PIN_4 //数码管引脚e的针脚定义 #define SSLED_f__PIN GPIO_PIN_5 //数码管引脚f的针脚定义 #define SSLED_g__PIN GPIO_PIN_6 //数码管引脚g的针脚定义 #define SSLED_dp__PIN GPIO_PIN_7 //数码管引脚dp的针脚定义 #define MAX_SPEED_DEGREE 4 //定义电机的最高档位 #define PER_SPEED_DEGREE 5 //定义电机每档位延时递减量 27 智能小车设计 c. 全局变量 int speed = 5; //记录当前电机转动延迟时间,单位0.5ms d. 函数声明段 void InitKey(void); //初始化速度按键函数 void GPIO_Port_D_ISR(void); //加速度按键中断服务子程序 void GPIO_Port_G_ISR(void); //减速度按键中断服务子程序 void InitSSLED(void); //初始化七短数码管 void SSLEDDisplay(int value); //七段数码管显示函数 e. 速度按键控制模块、初始化按键 void InitKey(void){ SysCtlPeriEnable(KEY_PLUS_PERIPH); //使能加速KEY所在的GPIO端口 GPIOPinTypeIn(KEY_PLUS_PORT,KEY_PLUS_PIN); // 设置加速KEY所在管脚为输入 GPIOPinTypeIn(KEY_SUB_PORT,KEY_SUB_PIN); // 设置减速速KEY所在管脚为输入 GPIOIntTypeSet(KEY_PLUS_PORT,KEY_PLUS_PIN,GPIO_LOW_LEVEL); // 设置加速KEY管脚的中断类型 GPIOIntTypeSet(KEY_SUB_PORT, KEY_SUB_PIN, GPIO_LOW_LEVEL); // 设置减速KEY管脚的中断类型 GPIOPinIntEnable(KEY_PLUS_PORT,KEY_PLUS_PIN); // 使能加速KEY所在管脚的中断 GPIOPinIntEnable(KEY_SUB_PORT,KEY_SUB_PIN); // 使能减速KEY所在管脚的中断 IntEnable(INT_GPIOD); // 使能GPIOD端口中断 IntEnable(INT_GPIOG); // 使能GPIOG端口中断 } f. 加速按键的中断服务子程序 void GPIO_Port_D_ISR(void) { 28 智能小车设计 unsigned long ulStatus; ulStatus = GPIOPinIntStatus(KEY_PLUS_PORT, true); //读取中断状态 GPIOPinIntClear(KEY_PLUS_PORT,ulStatus); // 清除中断状态 If(ulStatus&KEY_PLUS_PIN) // 如果加速KEY的中断状态有效 { if(speed!=PER_SPEED_DEGREE) //如果当前速度不是最大速度 { speed = speed - PER_SPEED_DEGREE; //将电机延迟降低 } SSLEDDisplay(((MAX_SPEED_DEGREE*PER_SPEED_DEGREE)+PER_SPEED_DEGREE-speed)/PER_SPEED_DEGREE); //让七段数码管显示调整后的档位 SysCtlDelay(10 * (TheSysClock / 3000)); // 延时约10ms,消除按键抖动 while (GPIOPinRead(KEY_PLUS_PORT, KEY_PLUS_PIN) == 0x00); // 等待KEY抬起 SysCtlDelay(10 * (TheSysClock / 3000)); // 延时约10ms,消除松键抖动 } } g. 七段数码管显示函数[7] void SSLEDDisplay(int value) { //形参value记录要显示的数字范围为0~9的整数 switch(value) { case 0: GPIOPinWrite(SSLED_LOW_PORT, SSLED_a__PIN, 0xFF); //当value为1时控制GPIO端口显示数字1 GPIOPinWrite(SSLED_LOW_PORT, SSLED_b__PIN, 0xFF); GPIOPinWrite(SSLED_LOW_PORT, SSLED_c__PIN, 0xFF); GPIOPinWrite(SSLED_LOW_PORT, SSLED_d__PIN, 0xFF); GPIOPinWrite(SSLED_HIGH_PORT, SSLED_e__PIN, 0xFF); GPIOPinWrite(SSLED_HIGH_PORT, SSLED_f__PIN, 0xFF); GPIOPinWrite(SSLED_HIGH_PORT, SSLED_g__PIN, 0x00); GPIOPinWrite(SSLED_HIGH_PORT, SSLED_dp__PIN, 0x00); 29 智能小车设计 break; ……(为节约篇幅,case 1~case 9不列出,代码基本与case 0相同) }} 30 智能小车设计 毕业论文(设计)原创性声明 本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明 本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 31 智能小车设计 32 智能小车设计 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 33 智能小车设计 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 3)其它 34
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务