收藏 分销(赏)

综合实训基于单片机技术的智能循迹小车设计.doc

上传人:w****g 文档编号:2487597 上传时间:2024-05-30 格式:DOC 页数:26 大小:1.55MB
下载 相关 举报
综合实训基于单片机技术的智能循迹小车设计.doc_第1页
第1页 / 共26页
综合实训基于单片机技术的智能循迹小车设计.doc_第2页
第2页 / 共26页
综合实训基于单片机技术的智能循迹小车设计.doc_第3页
第3页 / 共26页
综合实训基于单片机技术的智能循迹小车设计.doc_第4页
第4页 / 共26页
综合实训基于单片机技术的智能循迹小车设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、攀枝花学院本科综合实验(论文)基于单片机技术的智能循迹小车设计学生姓名: 彭韬_ _ _ _学生学号: 201310501044 _院(系): 电气信息工程学院_年级专业: 2013级电子信息工程指导教师: 孙艳忠 _ _ _同组成员: _鲁亚霜 罗梅_ _ _二一六年五月目 录第1章 绪论31.1引言.31.2课题任务要求31.3本论文研究的内容3第2章 系统总体设计42.1智能小车的结构组成及设计42.2智能小车寻迹基本原理42.3智能小车测速基本原理5 2.3.1 光电编码器测量小车速度的原理5第3章 系统硬件设计73.1控制器的选择73.1.1概述73.1.2AT89S52开发工具特性

2、73.2硬件电路设计73.2.1系统电源电路73.2.2伺服电机73.2.3 QTI循迹传感器.93.2.4 小车循迹策略9第4章 系统软件设计114.1编译环境114.2智能小车设计算法11 4.3 智能小车程序调试12第5章 系统调试分析205.1系统设计中的注意事项205.1.1外部因素205.1.2内部因素205.2 硬软件总体调试20 第6章 结束语21致谢21参考文献21附录图21总结23第一章 绪论1.1引言我们所处的这个时代是信息革命的时代,各种新技术、新思想层出不穷,纵观世界范围内智能汽车技术的发展,每一次新的进步无不是受新技术新思想的推动。随着汽车工业的迅速发展,传统的汽车

3、的发展逐渐趋于饱和。伴随着电子技术和嵌入式技术的迅猛发展,这使得汽车日渐走向智能化。智能汽车由原先的驾驶更加简单更加安全更加舒适,逐渐的向智能驾驶系统方向发展。智能驾驶系统相当于智能机器人,能代替人驾驶汽车。它主要是通过安装在前后保险杠及两侧的红外线摄像机,对汽车前后左右一定区 域进行不停地扫描和监视。计算机、电子地图和光化学传感器等对红外线摄像 机传来的信号进行分析计算,并根据道路交通信息管理系统传来的交通信息,代替人的大脑发出指令,指挥执行系统操作汽车。1.2课题任务要求 应用AT89S52微控制器中的端口、外部中断、定时器等基本模块,实现核心控制,再结合电源板、电机驱动板来控制电机的转向

4、,最后加上QTI传感检测模块,实现小车的智能寻迹。 1.3本论文研究的内容本论文是基于AT89S52单片机开发,主要是研究3轮小车的路径识别及其控制算法。 第二章 系统总体设计2.1智能小车的结构组成及设计智能循迹小车的车体结构图如图1所示,智能循迹小车的主要结构有电源、控制电路板、传感器、电机驱动、液晶显示系统的总体框架图如上图所示。本次实验主要实现智能循迹小车的循迹功能,总体设计方案如下:智能循迹小车以AT89S52单片机作为整个控制电路板的核心,外接控制电机信号以及QTI传感器;智能循环小车的电机是使用伺服舵机来驱动小车进行基本的动作(前行、后退、左右转、掉头、停止);传感器方面智能循迹

5、小车选择的是QTI红外传感器来探测地面上的黑白线,小车车体的下面分别从左到右安装了四个QTI红外传感器,传感器的信号连接着单片机的四个引脚,单片机根据传感器所检测到的信号来控制小车沿着轨迹进行行驶;小车的底盘部件分别包括了电池盒、底盘木体、尾轮和左右轮等一些部件。三轮结构的小车前方的两侧分别为驱动轮,在小车的后方有一个尾轮,可以起到支撑的作用,这样小车在隐性的过程中可以灵活地循迹。2.2智能小车巡迹小车基本原理宝贝车使用QTI传感器,QTI灰度传感器是一个反射型光电传感器。是使用光电接收管来检测物体表面反射光强度的传感器。因此这种光电传感器便可应用在检测物体表面颜色的深度和测量一定距离的移动物

6、体。反射型光电传感器的结构是由一个红外发射管和一个红外接收管组成,在一定距离内,当发射出去的红外光线被颜色深度较浅的物体所接受时,会将这些红外光线反射回来,红外接收管便可以接收到这个返回来的信号;若发射出去的红外光线被颜色深度较深的物所接受时,较深的颜色物体能吸收红外光而反射回来的红光线很弱或没有反射回来红外光线,这时接收管接收不到信号。这样便可以用这两种状态来判断被测物体的颜色深度。用这个结构的光电传感器再外加一些阻容件便可以将光能转为电能了。一组QTI传感器的元器件。一组QTI传感器的元器件包括:1.QTI传感器光电接收头1 个;2.公母铜柱1 组;3.3pin 插头1 个;4. 塑料垫圈

7、2 个;5.螺丝2 个;6.3 针杜邦线1 根; 其系统结构如所示:2.3 智能小车测速基本原理2.3.1光电编码器测速基本原理光电编码器是由一个红外发射接受装置和一个码盘构成。当红外光由发射器射出,射于黑色条纹上时,将被间断地反射于接收器上,在接收器的输入端会受到通轮子转速为正比关系的光脉冲信号,进而在接收器的输出端形成具有一定频率的电信号。再利用微处理器对电脉冲进行计算,就可以得到小车的移动速度。 其中小车行驶距离L的表达式为:LD/n*nx公式中:n为码盘上黑白条纹的个数;D为驱动轮的外径;nx为实际测量中电脉冲政府跳变的次数。小车的行驶速度V的计算表达式为:VL/t公式中:t表示时间。

8、2.3.2光电编码测速的实现 光电编码的发光装置一般由发光二极管来实现。光敏元件则由光敏三极管接上拉电阻来完成。光电式旋转编码器是转速或转角的检测元件,旋转的编码器与电动机相连,当电机转动时,带动码盘旋转,便发出转速或转角信号。其信号示意图如下:示:2.3 智能小车测速基本原理2.3.1光电编码器测速基本原理光电编码器是由一个红外发射接受装置和一个码盘构成。当红外光由发射器射出,射于黑色条纹上时,将被间断地反射于接收器上,在接收器的输入端会受到通轮子转速为正比关系的光脉冲信号,进而在接收器的输出端形成具有一定频率的电信号。再利用微处理器对电脉冲进行计算,就可以得到小车的移动速度。 其中小车行驶

9、距离L的表达式为:LD/n*nx公式中:n为码盘上黑白条纹的个数;D为驱动轮的外径;nx为实际测量中电脉冲政府跳变的次数。小车的行驶速度V的计算表达式为:VL/t公式中:t表示时间。2.3.2光电编码测速的实现 光电编码的发光装置一般由发光二极管来实现。光敏元件则由光敏三极管接上拉电阻来完成。光电式旋转编码器是转速或转角的检测元件,旋转的编码器与电动机相连,当电机转动时,带动码盘旋转,便发出转速或转角信号。其信号示意图如下:第3章 系统硬件设计3.1 控制器的选择3.1.1选择 本次设计采用的是AT89S52单片机。3.1.2 概述AT89S52是一个8位单片机,片内ROM全部采用FLASHR

10、OM技术,与MCS-51系列完全兼容,它能以3V的超低电压工作,晶振时钟最高可达24MHz。AT89S52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。第31引脚需要接高电位使单片机选用内部程序存储器;第9引脚是复位引脚,要接一个上电手动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接0.1F高频滤波电容。第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号。8K字节的程序存储器,256字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结

11、构,一个双工的串行口,片上震荡器和时钟电路。 AT89S52也是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。Atmel 公司为全球性的业界领先企业,致力于设计和制造各类微控制器、电容式触摸解决方案、先进逻辑、混合信号、非易失性存储器和射频 (RF) 元件。凭借业界最广泛的知识产权 (IP

12、) 技术组合之一,Atmel 为电子行业提供针对工业、消费、安全、通信、计算和汽车市场的全面的系统解决方案。 3.1.3 AT89S52 开发工具特性1,89S52内核,5V工作电压,操作频率040MHZ;2,16KB片内Flash存储器,1KB片内SRAM;3,SPI串行通信接口和增强型UART;4,PCA(可编程计数器列阵),具有PWM和捕获、比较功能;5,4个8位I/O口,含有三个高电流P1口(每个I/O口的电流为16mA);6,8个中断源,4个中断优先级,3个16位定时器/计数器和可编程看门狗定时器(WDT);7,2个DPTR寄存器;3.2 硬件电路设计3.2.1系统电源电路 交流电经

13、过全波电路在经过电容滤波,在经过稳压电源芯片做成稳压电路,输出电压5V、7.2V的直流电源。其电源电路原理图如图所示。 小车的驱动电机的供电电压为7.2V,经过电容滤波后接7805进行稳压,稳压输出5V的电压。提供单片机所需5V电压。3.2.2伺服电机:伺服舵机在选择的时候要能够按照指令来控制小车的位置和速度。它的外观如图3所示,伺服舵机上有三条输入线,分别是红色、黑色、白色,红色的是电源线,黑色是地线,白色的是信号控制线。伺服舵机的信号控制周期是20ms的脉宽调制(PWM)信号。在伺服舵机的内部有一个基准电路,能够产生的基准信号宽度为1.5m、周期为20ms;另外还有一个比较器,可以将基准信

14、号与外加信号进行比较,以此来判断方向以及大小,进而产生出电机的转动信号。图上的脉冲序列以高电平1.5ms、低电平20ms进行不断重复。这个脉冲经过零点标定后的不会旋转的伺服电机。如果发现此时的伺服电机在进行旋转,就表明该电机需要进行标定。通过图可知,电机的转速是由高电平持续时间控制的;在高电平持续的时间为1.3ms时,电机进行顺时针的高速旋转;在高电平持续的时间为1.7ms时,电机进行逆时针的高速旋转。选择P1.0的电机来控制小车右轮,选择P1.1的电机来控制小车左轮。伺服电机和单片机之间的接口如图所示。3.2.3 QTI循迹传感器2.2.1传感器的选择。传感器的接线图如下图所示。在接线图中的

15、W表示的是VCC引脚,是白色的线;R表示的是SIG引脚接到单片机I/O引脚,是红色的线;B表示的是GND引脚,是黑色的线。QTI是通过一个发光的二极管和一个光敏三极管的耦合得到一个类似光敏电阻的元件来对信号等的电平进行控制。传感器对于黑色的表面,反射率很低,光敏三极管没有导通,此时由三极管和电容组成的RC电路的时间常数就比较大,电压大部分都降在三极管的两端,其中R端输出高电平1。反之,当传感器经过亮表面时,反射率就比较高,此时的光敏三极管导通,RC电路的时间常数比较小,电压大部分降在电容的两端,R端输出低电平0。3.2.4小车循迹策略将四个QTI传感器的信号线连接到小车相应的I/O口,我们选定

16、的对象是P2中的P2.1、P2.2、P2.3、P2.4。在连接相应的信号线时,使用不同颜色的线,这样在进行错误的检查时就非常简单清晰。传感器的接口设计图如下:在图中,我们可以看到传感器是集中在一条直线上的,P2.2和P2.3引脚信号是第一级方向上的传感信号,P2.1和P2.4是第二级传感信号。小车在前进的过程中,黑线一直在第一级传感器下面,当小车偏离的时候,传感器就可以及时地检测出来并予以纠正。第二级的传感器实际上是第一级的后备装置,当小车偏离的角度过大时,第二级可以进行纠正,提高了小车的循迹可靠性。第4章 系统软件设计4.1 编译环境 USBASP是一种基于ATMEL公司的AVR系列RISC

17、单片机的高性价比和一个由纯软件的USB通信协议栈而构成的一个可以向51系列,AVR系列单片机下载(烧写)程序的下载器.4.2智能小车设计算法1.如果中间任何一个或者两个传感器检测到黑线,左、右两个传感器都没有检测到黑线,则小车前进一步; 2.如果最左边的两个传感器检测到黑线,最右边右两个传感器都没有检测到黑线,则小车左转一小步;3、如果最左边的1个传感器检测到黑线,另外3个传感器没有检测到黑线,则机器人左转1小步。4、如果左边的3个传感器检测到黑线,另外1个传感器没有检测到黑线,则机器人左转905、如果右边的3个传感器检测到黑线,另外1个传感器没有检测到黑线,则机器人右转90。6、如果最右边的

18、2个传感器检测到黑线,另外2个传感器没有检测到黑线,则机器人右转1小步。7、如果最右边的1个传感器检测到黑线,另外3个传感器没有检测到黑线,则机器人右转1小步。8、如果四个传感器都检测到黑线,则机器人右转90。9. 如果四个传感器都检测到白线,则机器人右转掉头。10、如果传感器检测值出现其他的情况,则机器人停止运动。P2.1P2.2P2.3P2.4策略1000左转一步1100左转一小步1110左转900100前进011000100111右转900011右转一小步0001右转一步1111右转900000180掉头其他停止4.3智能小车程序调试1.QTI传感器测试程序#include#includ

19、eint P1_4_state(void) return(P1&0x10)?1:0;int P1_5_state(void) return(P1&0x20)?1:0;int P1_6_state(void) return(P1&0x40)?1:0;int P1_7_state(void) return(P1&0x80)?1:0;int main(void) uart_Init(); printf(Program Running!n); while(1) printf(OTIL=%d,P1_7_state(); printf(OTIM1=%d,P1_6_state(); printf(OTIM2

20、=%d,P1_5_state(); printf(OTIR=%dn,P1_4_state(); delay_nms(500); 2.原地左转:#include#includevoid main() P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20);3.原地右转 #include#includevoid main() P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20);4.向前走#

21、include#includevoid main() P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20);5.向后走#include#includevoid main() P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20);6.从前面向右旋转void main() P1_1=1; delay_nus(1700); /修改脉冲实现 P1_1=0; P1_0=1; delay_nus(

22、1500); P1_0=0; delay_nms(20);7.从后面向右旋转#include#includevoid main() P1_1=1; delay_nus(1300); /修改脉冲实现 P1_1=0; P1_0=1; delay_nus(1500); P1_0=0; delay_nms(20);8.从前面向左旋转#include#includevoid main() P1_1=1; delay_nus(1500); /修改脉冲实现 P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20);9.从后面向左旋转#include#inc

23、ludevoid main() P1_1=1; delay_nus(1700); /修改脉冲实现 P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); 10.ControlServoRunTimes#include#includeint main(void) int i; uart_Init(); while(1) for(i=1;i100;i+) P1_1=1; delay_nus(1700); P1_1=0; delay_nms(20); for(i=1;i200;i+) P1_0=1; delay_nus(1700); P1_0=

24、0; delay_nms(20); 11.StartAndStopWithRamping#include#includeint main() int i; uart_Init(); while(1) for(i=1;i=200;i=i+1) P1_1=1; delay_nus(1500+i); P1_1=0; P1_0=1; delay_nus(1500+i); P1_0=0; delay_nms(20); for(i=1;i=0;i=i-1) P1_1=1; delay_nus(1500+i); P1_1=0; P1_0=1; delay_nus(1500+i); P1_0=0; delay

25、_nms(20); 12.RobotTourChina#include#includeint right90steps=48;int left90steps=48;int uturnsteps=48;int get_4QTI_state(void) return P1&0xf0;void MoveAStep(int leftp,int rightp) P1_1=1; delay_nus(leftp); P1_1=0; P1_0=1; delay_nus(rightp); P1_0=0; delay_nms(20);void rightturn(int steps) int i; for(i=0

26、;isteps;i+) MoveAStep(1550,1500); void leftturn(int steps) int i; for(i=0;isteps;i+) MoveAStep(1500,1250); void rotate(int steps) int i; for(i=0;isteps;i+) MoveAStep(1550,1550); void backward(int steps) int i; for(i=0;isteps;i+) MoveAStep(1250,1550); void follow_line(void) int QTIState; int leftpuls

27、e,rightpulse; QTIState=get_4QTI_state(); printf(4QTI=%4d,QTIState); switch(QTIState) case 0x10: leftpulse=1550; rightpulse=1550; break; case 0x30: leftpulse=1550; rightpulse=1550; break; case 0x20: leftpulse=1550; rightpulse=1250; break; case 0x40: leftpulse=1550; rightpulse=1250; break; case 0x60:

28、leftpulse=1550; rightpulse=1250; break; case 0x80: leftpulse=1250; rightpulse=1550; break; case 0xc0: leftpulse=1500; rightpulse=1250; break; case 0xe0: leftturn(left90steps); leftpulse=1250; rightpulse=1250; break; case 0x70:rightturn(right90steps); leftpulse=1650; rightpulse=1650; break; case 0xf0

29、: rightturn(right90steps); leftpulse=1650; rightpulse=1650; break; case 0x00: rotate(uturnsteps); leftpulse=1500; rightpulse=1500; break; default: leftpulse=1500; rightpulse=1500; break; MoveAStep(leftpulse,rightpulse); void main() uart_Init(); printf(Program Running!n); while(1) follow_line(); 第5章

30、系统调试分析5.1 系统设计中的注意事项5.1.1 外部因素外部因素主要有环境光线、地图材质等因素。以采用光电寻迹方案的智能车为例,如果接收的信号中有很多噪声成分,或者黑白区分不清晰,就很难识别路线,从而对后续的控制过程造成很大影响。因此,合理的传感器离地间隙和反射角度、较好的滤波电路设计都是需要考虑的。 5.1.2 内部因素 重量因素 整车质量的增加,对系统动力性有较大影响。因此,除了智能车工作必须的电路之外,应尽可能减少车重。即使是必备部件,可应该采用轻量化的设计。比如为了测量模型车的速度,需要在驱动轮上加装转速传感器,一般购买的电机编码器重量都较大,有的队伍就利用鼠标上的光电电路设计制作

31、了一个轻量化的转速传感器,从而大大减小了重量。 过度转向的避免 由于是后轮驱动,在弯曲的路线上加速可能会出现过度转向现象,因此在车辆弯道行驶时需要小心控制车辆的转向速度。 传感器的影响刚开始的时候,我的传感器装的比较高,这样就不能很好的感应到路线,以至于出现乱跑的现象。如果在以后的设计中需要的话,可以采用激光传感器进行探测,这样就会更精准的寻迹。5.2 硬软件总体调试硬件、软件独立调试都有效果之后,下一步就是硬软件总体调试了,在硬软件总体调试之前,应现把各个跳线接后,然后在用贴有黑胶带的白纸来回在红外线发射接收管左右移动,看小车的电机转速是否会发生变化,如果用贴有黑胶带的白纸来回在各个红外线发

32、射接收管左右移动时,电机的转速都会发生改变,则说明总体调试初步有效,最后让小车在赛道上进行行走,在初次调试的时候,小车的速度不能太大。 第6章 结束语致谢感谢孙艳忠老师。孙老师在上课期间耐心地为我们讲了很多,无论是在学习上还是精神上,都支持着我们。感谢实验室的伙伴们,每次去找他们时,他们都不惜自己的时间给我们讲解难点以及告诉我们他们的经验。感谢这次综合实训里面的各位同学,因为我们的分工合作,才很好的完成了这次综合实训。感谢攀枝花学院给我这个学习的环境,这是让我梦想起航的地方。参考文献1 秦志强等 C语言原来可以这样学.电子工业出版社2 秦志强等. 基于机器人制作项目的学习和实践. 电子工业出版

33、社附录图 总结 经过几个礼拜的忙碌,在大家共同的努力下,终于给智能循迹 小车画上了句号。谁说不上是完美,但总算成功了。刚开始接触 这个项目,我们几个男生对其一点也不了解,无从下手。后来从 硬件电路开始,慢慢了解其原理,也算知道个大概。在这期间, 我们也遇到过很多问题。很多问题都是不知道怎么解决的,孙老师给了我们很多指导,我们也在网上查阅了很多资料,最开始的便是寻迹电路板。其 次是程序,程序是不可能一次性成功的。在不断的修改调试之后, 小车最终还是实现了预想的功能。通过这次的循迹小车的制作,我们学到了团队合作的重要性以及如何去学习一个以前完全不知道的新东西。目录第一章 可行性研究报告概述11.1

34、项目名称11.2项目承担单位11.3项目建设地点11.4可研报告编制单位11.5项目概述及主要经济技术指标1第二章 编制目的、依据、原则和范围52.1编制目的52.2编制依据52.3编制原则52.4可行性研究的范围6第三章 建设的必要性73.1符合国家“十一五”规划纲要和循环经济要求73.2环境保护和节能降耗的需要83.3企业可持续发展的需要9第四章 项目建设条件104.1主体工程概况104.2厂址选择124.3公用设施及社会依托条件12第五章 改造规模与产品方案155.1改造规模155.2生产方案15第六章 生产设备节电技改方案166.1企业能耗现状分析166.2改造设备运行参数166.3技

35、术方案、设备方案176.4项目建议改造方案226.5消耗定额256.6小结25第七章 项目实施机构和项目法人287.1项目实施机构287.2项目法人28第八章 环境保护28第八章 环境保护29第九章 社会经济效益319.1环境效益319.2社会效益31第十章 节约和合理利用能源3310.1节能依据及标准3310.2节能设计原则3310.3能耗分析3310.4节能措施及节能效果分析34第十一章 环境安全与劳动保护3511.1安全3511.2劳动保护36第十二章 生产管理与人员编制3812.1生产管理3812.2人员编制38第十三章 项目实施进度3913.1 建设工期3913.2 项目实施时期各阶段进度建议39第十四章 项目招标方案41第十五章 投资估算及资金筹措4215.1投资估算4215.2资金筹措43第十六章 经济评价4416.1项目周期4416.2成本参数4416.3损益类参数4416.4经济评价结果45第十七章 结论4717.1结论意见及总的评价、存在的问题和建议4726

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服