arduino循迹小车毕业论文.doc
《arduino循迹小车毕业论文.doc》由会员分享,可在线阅读,更多相关《arduino循迹小车毕业论文.doc(22页珍藏版)》请在冰豆网上搜索。
福建船政交通学院
目 录
摘要 2
引言 2
1Arduino智能小车设计方案与参数 3
1.1Arduino智能小车设计方案简介 3
1.1.1功能要求 3
1.1.2基本原理 3
1.2循迹小车参数 4
2Arduino与51单片机的区别 5
2.1Arduino单片机 5
2.1.1Arduino单片机的介绍 5
2.1.2Arduino单片机的特色 5
2.1.3Arduino单片机的功能 5
2.251单片机 6
2.2.151单片机的介绍 6
2.2.251单片机的功能 6
2.3Arduino比51更好的地方 7
3循迹小车设计 8
3.1硬件设计 8
3.1.1单片机最小系统 8
3.1.2灰度传感器模块 9
3.1.3电机驱动电路 10
3.2软件设计 12
3.2.1系统主程序 13
3.2.2本系统编译器 13
3.3实物展示 14
3.4部分程序展示 15
结论 20
致谢 21
参考文献 22
Arduino循迹小车设计与实现
摘要:
循迹小车是Arduino单片机的一种典型应用。
本智能小车是由ardiuno单片机和外部电路组成,包括检测模块,控制模块,电源模块。
循迹车设计采用Arduino单片机作为小车的控制核心,采用灰度传感器作为小车的检测模块来识别绿色路面中央的黑色引导线,采集信号并将信号转换为能被ardiuno单片机识别的数字信号;采用驱动芯片L298N构成双H桥控制直流电机。
其中软件系统采用C程序。
关键词:
Arduino单片机,自动循迹,驱动电路。
引言
自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。
近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。
人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的目标。
单片机是一种可通过编程控制的微处理器,虽其自身不能单独用在某项工程或产品上,但当其与外围数字器件和模拟器件结合时便可发挥强大的功能,现在单片机已广泛应用于众多领域。
例如:
工业自动化,智能仪器仪表,消费类电子产品,通信方面,武器装备等。
作为与自动化技术和电子密切相关的理工科学生,掌握单片机是最基础的要求。
为进一步丰富和巩固单片机知识,也为能更好的联系实际应用,本次毕业设计选择了基于单片机Arduino循迹车,并做出实物。
鉴于电子技术、计算机技术以及各种更先进的仿真软件的出现,使用高级语言如C代替汇编语言进行编程和控制已成为现实,单片机C语言编程相对于MC51汇编语言编程有如下优点:
对单片机的指令系统不需要有很深的理解就可以编程操作单片机。
寄存器分配、不同存储器的寻址及数据类型等细节完全由编辑器自动处理。
程序有规范的结构,可分为不同的函数,可使程序结构化。
库中包括许多标准子程序,具有较强的处理能力,使用方便。
具有方便的模块化编程技术,使已编好的程序便于移植,可极大缩短开发时间,增加程序的可读性和可维护性。
事实上,当今许多硬件的开发都已开始用C语言编程,如各种单片机、DSP、ARM等,用C语言进行工业控制也已成为一种趋势,为了更好的适应当今社会形势,为了更好的面对挑战、把握机遇,此次毕业设计决定尝试用C语言编程完成。
也希望能在进一步熟悉单片机控制的同时,对数字电子技术、模拟电子技术、计算控制技术以及常用外围芯片有更深层次的了解,提高自己的综合能力。
1Arduino智能小车设计方案与参数
根据设计要求,Arduino智能小车要沿着山道环山跑一圈。
Arduino智能小车主要由四部分组成:
分别为大脑-微控制器Arduino、眼睛-灰度传感器、躯体-电机驱动模块和心脏-电源模块。
1.1Arduino智能小车方案简介
依据所需功能的要求,设计计价器系统的结构图和硬件电路,绘制出智能小车的电路图,再绘制程序框图,之后编程并烧录到单片机;将各模块组合进行调试。
1.1.1功能要求
小车以Arduino为控制核心,用单片机产生PWM波,控制小车速度。
利用灰度传感器对路面黑色轨迹进行检测,并将路面检测信号反馈给单片机内。
单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着黑色轨迹自动行驶,实现小车自动寻迹的目的。
1.1.2基本原理
智能小车系统主要由四部分组成:
大脑-微控制器Arduino、眼睛-灰度传感器、手脚-电机驱动模块、能源-电源模块,智能车循迹行驶过程是:
首先灰度传感器将检测到黑线的信号传送给单片机最小系统,然后通过单片机最小系统的控制算法对信号进行计算处理,将此信号在通过控制算法驱动电机,最后实现对智能车运动轨迹进行实时控制。
微控制器-Arduino为内部核心处理处理单元,将外部给予的电平信号通过以植入的c语言程序为主进行处理。
灰度传感器为智能小车的眼睛,通过辨别地面的黑色线条的物理信号,灰度再将之转换为单片机能够处理的电平信号。
单片机将信号传输给电机驱动模块,即我们小车结构的手脚接受指令运行。
智能车总体模块设计图如图1-1所示。
L298N
驱动模块
Arduino
单片机
电源模块
灰度传感器模块
直流电机
小车
路径
图1-1循迹车总体模块设计图
1.2循迹小车参数
系统参数如下表所示:
微控制器
Arduino
路径检测模块
灰度传感器
俩轮驱动
车模配套直流电机
直流电机驱动模块
芯片:
LM298N
电机电源
9V3A
参数
2Arduino与51单片机的区别
2.1Arduino单片机
2.1.1Arduino单片机的介绍
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。
它适用于爱好者、艺术家、设计师和对于"互动"有兴趣的朋友们。
是一个基于开放原始码的软硬件平台,构建于开放原始码simpleI/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。
Arduino包含两个主要的部分:
硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是ArduinoIDE,你的计算机中的程序开发环境。
你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
2.1.2Arduino单片机的特色
开放源代码的电路图设计,程序开发接口可以免费下载,也可依个人需求自己修改。
而且低价格的微处理控制器(AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。
Arduino支持ISP在线烧,可以将新的"bootloader"固件烧入AVR芯片。
有了bootloader之后,可以通过串口或者USBtoRS232线更新固件。
也可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:
红外线,超音波,热敏电阻,光敏电阻,伺服马达,…等)支持多种互动程序,如:
Flash、Max/Msp、vvvv、PD、C、Processing等。
应用方面:
利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。
2.1.3Arduino单片机的功能
在功能上可以快速使用Arduino与AdobeFlash,Processing,Max/MSP,PureData,SuperCollider等软件结合,作出互动作品。
Arduino可以使用现有的电子元件例如开关或者传感器或者其他控制器件、LED、步进马达或其他输出装置。
Arduino也可以独立运行,并与软件进行交互,例如:
MacromediaFlash,Processing,Max/MSP,PureData,VVVV或其他互动软件等。
Arduino的IDE界面基于开放源代码,可以免费下载使用,开发出更多令人惊艳的互动作品。
在更多功能上有基于知识共享开放元源码的电路图设计,有基于知识共享开放源码的程式开发环境。
Arduino可使用ICSP线上烧入器,将「bootloader」烧入新的IC晶片,可依据官方电路图,简化Arduino模组,完成独立运作的微处理控制,可简单地与传感器,各式各样的电子元件连接(例如:
红外线,超声波,热敏电阻,光敏电阻,伺服马达等),USB接口上,不需外接电源。
另外有提供9V直流电源输入。
2.251单片机
2.2.151单片机的介绍
51单片机是对所有兼容Intel8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。
51单片机是基础入门的一个单片机,还是应用最广泛的一种。
需要注意的是52系列的单片机一般不具备自编程能力。
2.2.251单片机的功能
51单片机的功能特点分别有:
8位CPU·4kbytes程序存储器(ROM)(52为8K),128bytes的数据存储器(RAM)(52有256bytes的RAM),32条I/O口线·111条指令,大部分为单字节指令,21个专用寄存器,2个可编程定时/计数器·5个中断源,2个优先级(52有6个),一个全双工串行通信口,外部数据存储器寻址空间为64kB,外部程序存储器寻址空间为64kB,逻辑操作位寻址功能·双列直插40PinDIP封装。
51单片机的内部结构分别为CPU:
由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:
用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:
用以存放程序、一些原始数据和表格;I/O口:
四个8位并行I/O口,既可用作输入,也可用作输出;T/C:
两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。
最佳振荡频率为6M-12M。
2.3Arduino比51更好的地方
Arduino与51单片机相比:
变更人性化,编程相对人性化和直观,没有单片机基础的人也能很快上手。
硬件性能上,Arduino更加稳定,不会像51一样时常出现跑飞的现象。
Arduino作为开源的一款的单片机,更重要的是在这个4g时代可搜寻的学习资料是非常多的。
综上所述,Arduino无疑是比51更适合新手和用于比赛专用的。
3循迹小车设计
3.1硬件设计
3.1.1单片机最小系统
主控机系统采用Arduinomega2560单片机,采用USB接口的核心电路板,它最大的特点就是具有多达54路数字输入输出,特别适合需要大量IO接口的设计。
Mega2560的处理器核心是ATmega2560,同时具有54路数字输入/输出口(其中16路可作为PWM输出),16路模拟输入,4路UART接口,一个16MHz晶体振荡器