ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:1.47MB ,
资源ID:466948      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-466948.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(arduino循迹小车毕业论文Word格式文档下载.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

arduino循迹小车毕业论文Word格式文档下载.doc

1、关键词:Arduino单片机,自动循迹,驱动电路。引言自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的目标。单片机是一种可通过编程控制的微处理器,虽其自身不能单独用在某项工程或产品上,但当其与外围数字器件和模拟器件结合时便可发挥强大的功能,现在单片机已广泛应用于众多领域。例如:工业自动化,智能仪器仪表,消费类电子产品,通信方面,武器装备等。作为与自动化技术和电子密切相关的理工科学生,掌握单片机是最基础的要求。为进一步

2、丰富和巩固单片机知识,也为能更好的联系实际应用,本次毕业设计选择了基于单片机Arduino循迹车,并做出实物。鉴于电子技术、计算机技术以及各种更先进的仿真软件的出现,使用高级语言如C代替汇编语言进行编程和控制已成为现实,单片机C语言编程相对于MC51汇编语言编程有如下优点:对单片机的指令系统不需要有很深的理解就可以编程操作单片机。寄存器分配、不同存储器的寻址及数据类型等细节完全由编辑器自动处理。程序有规范的结构,可分为不同的函数,可使程序结构化。库中包括许多标准子程序,具有较强的处理能力,使用方便。具有方便的模块化编程技术,使已编好的程序便于移植,可极大缩短开发时间,增加程序的可读性和可维护性

3、。事实上,当今许多硬件的开发都已开始用C语言编程,如各种单片机、DSP、ARM等,用C语言进行工业控制也已成为一种趋势,为了更好的适应当今社会形势,为了更好的面对挑战、把握机遇,此次毕业设计决定尝试用C语言编程完成。也希望能在进一步熟悉单片机控制的同时,对数字电子技术、模拟电子技术、计算控制技术以及常用外围芯片有更深层次的了解,提高自己的综合能力。1 Arduino智能小车设计方案与参数根据设计要求,Arduino智能小车要沿着山道环山跑一圈。Arduino智能小车主要由四部分组成:分别为大脑-微控制器Arduino、眼睛-灰度传感器、躯体-电机驱动模块和心脏-电源模块。1.1 Arduino

4、智能小车方案简介依据所需功能的要求,设计计价器系统的结构图和硬件电路,绘制出智能小车的电路图,再绘制程序框图,之后编程并烧录到单片机;将各模块组合进行调试。1.1.1功能要求小车以Arduino 为控制核心, 用单片机产生PWM波,控制小车速度。利用灰度传感器对路面黑色轨迹进行检测,并将路面检测信号反馈给单片机内。单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着黑色轨迹自动行驶,实现小车自动寻迹的目的。1.1.2基本原理智能小车系统主要由四部分组成:大脑-微控制器Arduino、眼睛-灰度传感器、手脚-电机驱动模块、能源-电源模块, 智能车循迹行驶过程是:首

5、先灰度传感器将检测到黑线的信号传送给单片机最小系统,然后通过单片机最小系统的控制算法对信号进行计算处理,将此信号在通过控制算法驱动电机,最后实现对智能车运动轨迹进行实时控制。微控制器-Arduino为内部核心处理处理单元,将外部给予的电平信号通过以植入的c语言程序为主进行处理。灰度传感器为智能小车的眼睛,通过辨别地面的黑色线条的物理信号,灰度再将之转换为单片机能够处理的电平信号。单片机将信号传输给电机驱动模块,即我们小车结构的手脚接受指令运行。智能车总体模块设计图如图1-1所示。 L298N 驱动模块 Arduino 单片机 电源模块灰度传感器模块 直流电机 小车 路径 图1-1 循迹车总体模

6、块设计图 1.2 循迹小车参数系统参数如下表所示:微控制器Arduino路径检测模块灰度传感器俩轮驱动车模配套直流电机直流电机驱动模块芯片:LM298N电机电源9V 3A参数2 Arduino与51单片机的区别2.1 Arduino单片机2.1.1 Arduino单片机的介绍 Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于爱好者、艺术家、设计师和对于互动有兴趣的朋友们。是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/W

7、iring开发环境。Arduino包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。2.1.2 Arduino单片机的特色 开放源代码的电路图设计,程序开发接口可以免费下载,也可依个人需求自己修改。而且低价格的微处理控制器 (AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。Arduino支持ISP在线烧,可以将新的bootloader固件烧入AVR芯片。有了bo

8、otloader之后,可以通过串口或者USB to RS232线更新固件。也可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超音波,热敏电阻,光敏电阻,伺服马达,等)支持多种互动程序,如:Flash、Max/Msp、vvvv、PD、C、Processing等。应用方面:利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。2.1.3 Arduino单片机的功能在功能上可以快速使用Arduino与Adobe Flash, Proc

9、essing, Max/MSP, Pure Data, SuperCollider等软件结合,作出互动作品。 Arduino可以使用现有的电子元件例如开关或者传感器或者其他控制器件、LED、步进马达或其他输出装置。 Arduino也可以独立运行,并与软件进行交互,例如: Macromedia Flash, Processing, Max/MSP, Pure Data, VVVV或其他互动软件等。 Arduino的IDE界面基于开放源代码,可以免费下载使用,开发出更多令人惊艳的互动作品。在更多功能上有基于知识共享开放元源码的电路图设计,有基于知识共享开放源码的程式开发环境。Arduino可使用I

10、CSP线上烧入器,将bootloader烧入新的IC晶片,可依据官方电路图,简化Arduino模组,完成独立运作的微处理控制,可简单地与传感器,各式各样的电子元件连接(例如:红外线,超声波,热敏电阻,光敏电阻,伺服马达等),USB接口上,不需外接电源。另外有提供9V直流电源输入。 2.2 51单片机2.2.1 51单片机的介绍 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于

11、工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。2.2.2 51单片机的功能51单片机的功能特点分别有:8位CPU4kbytes程序存储器(ROM) (52为8K),128bytes的数据存储器(RAM) (52有256bytes的RAM),32条I/O口线111条指令,大部分为单字节指令,21个专用寄存器,2个可编程定时/计数器5个中断源,2个优先级(52有6个),一个全双工串行通信口,外部数据存储器寻址空间为64kB,外部程序存储器寻址空间为6

12、4kB,逻辑操作位寻址功能双列直插40PinDIP封装。51单片机的内部结构分别为CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统; 一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频

13、率为6M-12M。2.3 Arduino比51更好的地方Arduino与51单片机相比:变更人性化,编程相对人性化和直观,没有单片机基础的人也能很快上手。硬件性能上,Arduino更加稳定,不会像51一样时常出现跑飞的现象。Arduino作为开源的一款的单片机,更重要的是在这个4g时代可搜寻的学习资料是非常多的。综上所述,Arduino无疑是比51更适合新手和用于比赛专用的。3 循迹小车设计3.1 硬件设计3.1.1单片机最小系统主控机系统采用Arduino mega2560单片机,采用USB接口的核心电路板,它最大的特点就是具有多达54路数字输入输出,特别适合需要大量IO接口的设计。Mega

14、2560的处理器核心是ATmega2560, 同时具有54路数字输入/输出口(其中16路可作为PWM输出),16路模拟输入,4路UART接口,一个16MHz晶体振荡器,一个USB口,一个电源 插座,一个ICSP header和一个复位按钮。单片机最小系统电路图如图3-1所示。图3-1 单片机最小系统Arduino mega2560的主要参数:处理器 ATmega2560,工作电压 5V,输入电压(推荐) 7-12V,输入电压(范围) 6-20V,数字IO脚 54 (其中16路作为PWM输出),模拟输入脚 16,IO脚直流电流 40 mA,3.3V脚直流电流 50 mA,Flash Memory

15、 256 K,(ATmega328,其中8 KB 用于 bootloader),SRAM 8 KB,EEPROM 4 KB,工作时钟 16 MHz。存储器:ATmega2560包括了片上256KB Flash,其中8KB用于Bootloader。同时还有8KB SRAM和4KB EEPROM。输入输出:一共有数字输入输出口,4路串口信号,6路外部中断,14路脉冲宽度调制PWM(0-13),SPI(53(SS),51(MOSI),50(MISO),52(SCK):SPI通信接口,16路模拟输入,特别LED(13号):Arduino专门用于测试LED的保留接口,和TWI接口(专门支持通信)。3.1

16、.2 灰度传感器模块灰度传感器是利用黑线对红外线不同的反射能力通过光敏二极管或光敏三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换为单片机可识别的高低电平。灰度传感器实现循迹的基本电路如3-2所示。图3-2 灰度传感器电路图(1)灰度传感器工作原理传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;而当红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。小车行驶过程中向地面发射红外光,当红外光遇到绿色路

17、线,地板发生漫反射,安装在小型车的反射光接收器会接收;如果是遇到黑色路线,红外光将被黑线吸收,安装在小车上的接收管没有收到红外光。控制器会根据是否收到反射的红外光为判断依据来确定的黑线的位置和小车的路线。这种探测方法,即利用红外线在不同颜色的表面特征,具有不同的反射性能。红外发射和接收红外线感应器,可以直接使用集成的红外探头,选择宽度为3-5厘米的黑线。该传感器的灵敏度是可调的,传感器有时遇到黑线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小可改变灵敏度。(2)传感器分布传感器通过信号采集,向单片机提供信息。因此传感器合理的布局很重要,传感器布局需要考虑小车行驶过程中信息检

18、测的准确度和前瞻性,能使在相同数量的传感器下,获得更多的数据。而由于考虑到我们改造车的车座较窄、不平整,且车身较请,适合放多的传感器,最终决定选用对6个传感器来进行布局,即在车子底座前端放6个传感器。这种布局是目前最适合我们改造车的布局方法。3.1.3 电机驱动电路本设计采用L298N电机专用驱动芯片带动两个5V的直流电动机。L298N是一个内部有两个H桥的高电压大电流全桥式驱动芯片,可以用来驱动直流电动机、步进电动机。使用标准逻辑电平信号控制,直接连接单片机管脚,具有两个使能控制端,使能端在不受输入信号影响的情况下不允许器件工作。L298N有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工

19、作。(1) L298N引脚结构如表3-1图3-3 L298N 驱动芯片表3-1 L298N引脚编号与功能:引脚编号名称功能1电流传感器A在该引脚和地之间接小阻值电阻可用来检测电流2输出引脚1内置驱动器A的输出端1,接至电机A3输出引脚2内置驱动器A的输出端2,接至电机A4电机电源端电机供电输入端,电压可达46V5输入引脚1内置驱动器A的逻辑控制输入端16使能端A内置驱动器A的使能端7输入引脚2内置驱动器A的逻辑控制输入端28逻辑地9逻辑电源端逻辑控制电路的电源输入端为5V10输入引脚3内置驱动器B的逻辑控制输入端111使能端B内置驱动器B的使能端12输入引脚4内置驱动器B的逻辑控制输入端213

20、输出引脚3内置驱动器B的输出端1,接至电机B14输出引脚4内置驱动器B的输出端2,接至电机B15电流传感器B(2) 电机驱动原理电路的形状很像字母H。四个三极管就是H桥的四条垂直线,而电机就是H中的横线,如图3-4所示。图3-4 L298N内部H桥驱动电路H桥电机驱动电路包含四个三极管和一个电机。电机运转,必须遵循导通对角线上的一对三极管。基于不同三极管对的导通情况可以控制电机的转向,电流可可以从左至右流过电机,也可以从右至左流过电机。当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右流过电机,然后再经Q4回到电源负极,该流向的电流将驱动电机顺时针转动。下面分析另一对三极管Q2和Q3,当两

21、个三极管同时导通的情况下,电流将从右至左流过电机。从而驱动电机沿逆时针方向转动。电机控制逻辑如下:以电机A为例,当使能端ENA为高电平时,如果输入引脚IN1为低电平而输入引脚IN2为高电平,电机A反转;如果输入引脚IN1为高电平而输入引脚IN2为低电平,电机A正转。电机A电机B图3-5 L298N驱动芯片和直流电机接线图3.2 软件设计本设计的目的是以Arduino单片机为控制核心,将红外光电传感器输出的电信号送至单片机电路,再由单片机向L298N电机驱动模块发送指令,控制后轮电机驱动小车行进,控制前轮电机驱动小车转向,从而自动循迹。3.2.1 系统主程序在主程序模块中,需要完成对各参量和接口

22、的初始化、检测黑线、前进或转向判断等工作。当小车探测到黑线后,根据检测到黑线的传感器的编号不同,小车要做出相应的动作。当小车左边的传感器检测到黑线时,说明小车车头向右边偏移,这时主控芯片控制前轮电机反转,车体向左边修正;同理当小车的右边传感器检测到黑线时,主控芯片控制前轮电机正转,车体向右边修正;当黑线在车体的中间,中间的传感器一直检测到黑线,这样小车就会沿着黑线自动循迹。主程序流程如图3-6所示。图3-6 循迹车程序流程图3.2.2 本系统编译器本设计采用C语言来编译程序。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。因此,软件的设计上,运用了

23、模块化程序的结构对软件进行设计,使得程序变得更加直观易懂。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,ARDUINO IDE软件是目前Arduino专用开发的软件,界面清晰整洁,编程简便。.ARDUINO IDE开发系统可用于编辑C。由编译器编译可以生成目标文件(.ino)。3.2.3 实物展示 图3-7 小车全景图193.4 部分程序展示unsigned int p_1=22; unsigned int p_2=24;unsigned int p_3=26;unsigned int p_4=28;unsigned int p_5=30

24、;unsigned int p_6=32;#define l 1 #define r 2 #define rl 3unsigned int num,co,c=0,mum,d=0;int t;void setup() pinMode(2,OUTPUT);/lift back pinMode(3,OUTPUT);/lift go pinMode(4,OUTPUT);/right back pinMode(5,OUTPUT);/right go for(t=22;t3) /for(co=0;co200;co+); 3) c=c+1; if(c=ti) analogWrite(2,0); analogWrite(4,0); analogWrite(3,40); analogWrite(5,40); delay(350); return; if(p_3) analogWrite(3,90); analogWrite(5,90); else if(p_4)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2