




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆交通大学计算机与信息学院综合性设计性实验报告班 级: 电子信息工程 专业2013 级01 班 姓名(学号): 杨云森(1) 实验项目名称: 红外循迹智能小车 实验项目性质: 设 计 性 实验所属课程: 电子设计实践 实验室(中心): 现代电子实验中心 指 导 教 师 : 李星星 实验完成时间: 2016 年 6 月 17日教师评阅意见: 签名: 年 月 日实验成绩:一、实验目的学习智能小车的制作流程,加深对单片机开发的理解和应用二、实验内容及要求做好单片机外扩,电源模块,寻迹模块,驱动模块四块板子,使小车能够正常的循迹。三、实验原理这里的循迹是指小车在地板白纸上循黑线行走,通常采取的方法是红外探测法。激光探测法,即利用激光激光在黑白颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射激光,当激光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则激光被吸收,小车上的接收管接收不到激光。单片机就是否收到反射回来的激光为依据来确定黑线的位置和小车的行走路线。激光探测器探测距离可以比较远,一般有60cm左右。1. 单片机最小系统单片机最小系统采用5V供电,并接有指示灯, 5mA左右电流足以驱动LED,LED导通电压1.7V左右,因此配上1K电阻;蜂鸣器由8550驱动,1N4007二极管起到保护左右。单片机根据接收的按键输入数据和传感器输出电平信号,输出一定脉冲数控制电机A和电机B的转动,从而控制小车的运动。2. 电源电路设计智能车控制系统中,不同电路模块需要的工作电压和电流容量各不相同。芯片需要提供5V的工作电压,而电机所需的电压为9V,本设计中用到的是9V的电源供电,然后通过三端稳压器LM7805将电压变换为5V电压供给电路系统。电源系统的电路图如图所示。3.电机驱动电路设计电路采用PWM(脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码)驱动形式,四路输入和输出以控制电机运转。电路主要由L298N、光电耦合器、稳压二极管组成,驱动电路可控制电机的正反转。电路是由单片机控制的,与单片机的接口采用光电耦合器,利用光电耦合器传输信号可以消除相互之间的干扰,提高系统的稳定性。单片机的输入/输出口P1.0输出为高电平,P1.1输出低电平,这时左边的光耦导通,右边的光耦不导通,电机正转。反之,P1.0为低电平,P1.1为高电平,电机反转。若P1.0和P1.1都为低电平。则电机不转动。4.循迹电路设计循迹是指小车在白色地板上循黑线行走通常采取的方法是红外探测法,红外探测法即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射反射光被装在小车上的接收管接收,如果遇到黑线则红外光被吸收小车上的接收管接收不到红外光 ,单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线 ,从而实现小车的循迹功能。四、实验仪器、材料笔记本电脑,51单片机,电机,红外对管模块,电机驱动模块。五、方案设计在进行单片机控制系统设计时,除了系统硬件设计以外,大量的工作就是如何根据系统每一个现象或者作用设计应用程序。因此,软件设计在单片机控制系统设计中占有重要的地位。对于本系统,软件更为重要。本次软件设计需要完成以下两个任务。1:单片机根据传感器I/O口的输入状态,来相应的执行判断程序,来达到小车的前进,后退,停止;2:单片机两个I/O口同时产生两个占空比不相同的方波,来控制小车电机的车速,来达到小车的左转弯、右转弯;为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实际上就是完成一定功能,相对独立的程序段,这中程序设计方法叫做模块化程序设计法。六、实验过程及原始记录 /stc12c5a60s2# include #include intrins.h#include /黑1 白0#define uint unsigned int#define uchar unsigned char#define FOSC L#define uchar unsigned charsfr CCON = 0xD8;sbit CCF0 = CCON0; sbit CCF1 = CCON1;sbit CR = CCON6; sbit CF = CCON7; sfr CMOD = 0xD9;sfr CL = 0xE9;sfr CH = 0xF9;sfr CCAPM0 = 0xDA;sfr CCAP0L = 0xEA;sfr CCAP0H = 0xFA;sfr CCAPM1 = 0xDB;sfr CCAP1L = 0xEB;sfr CCAP1H = 0xFB;sfr PCA_PWM0= 0xf2;sfr PCA_PWM1= 0xf3;/*/*/*/*端口设置/*/*/*/左探测sbit zuo1=P04;sbit zuo2=P21;/右探测sbit you1=P05;sbit you2=P06; /中探测sbit qian1=P07;sbit qian2=P20;/电机sbit Left1 = P02;sbit Left2 = P03;sbit Right1 = P00; sbit Right2 = P01;sbit infrared_out_pin=P22;/*/*/*/*变量定义/*/*/*/int flag = 0;/标志线数int flag1 = 0;/出普通while循环标志int flag2 = 0;/转弯结束标志int inFlag = 1;/ 后车第三个弯,内循迹标志int stopFlag = 0;int starFlag = 0;int countTime0 = 0;int countTime1 = 0;int com = 0; /蓝牙命令int carFlag = 0;/小车前后标志,0为前车,1为后车/*/*/*/*函数部分/*/*/*/void delay(uint x)while(x-);void initPWM_line() /*PWM调速CCON=0;CL=0;CH=0;CMOD = 0x02;CCAP0H = CCAP0L = 0x00; / 右 越小越快CCAPM0 = 0x42; CCAP1H = CCAP1L = 0x00; /左 CCAPM1 = 0x42; CR=1;/zuo1 = 1;you1 = 1;you2 = 1;qian1 = 1;void left() /*左转CCAP0H = CCAP0L = 0x49; /49 59 44 54CCAP1H = CCAP1L = 0x59;Right1=0;Right2=1;Left1=1;Left2=1;void right() /*右转CCAP0H = CCAP0L = 0x59;CCAP1H = CCAP1L = 0x49;Right1=0;Right2=1; Left1=0;Left2=1;void little_right()CCAP0H = CCAP0L = 0x55;CCAP1H = CCAP1L = 0x50;Right1=0;Right2=1; Left1=0;Left2=1; void righter() /*右死转CCAP0H = CCAP0L = 0x50;CCAP1H = CCAP1L = 0x50;Right1=1;Right2=0; Left1=0;Left2=1;void lefter() /*左死转CCAP0H = CCAP0L = 0x50;CCAP1H = CCAP1L = 0x50;Right1=0;Right2=1; Left1=1;Left2=0;delay(20);void stop() /*停止Right1=0;Right2=0;Left1=0;Left2=0;void in_line()/内循迹if(!zuo1)left();if(zuo1|zuo2)right();void out_line()/直线外循迹if(you2|you1)left();if(!you2)right();if(qian1|qian2)flag+;flag2 = 1;void out_line2()/直线外循迹if(you2|you1)left();if(!you2)right();/普通弯道void smallCurve()TR0 = 1;/开始计时while(flag1 = 0)in_line();flag1 = 0;flag2 = 0; /转弯结束标志/出超车道,慢慢右转,然后外循迹void outCurve()int outflag = 1;int finishflag = 1; while(outflag) little_right();if(you2=1)|(you1=1)while(finishflag)out_line();if(flag=4)outflag = 0;finishflag = 0;starFlag = 0; /进超车道,一直内循迹,后车发出信号后,停车让行void bigCurve()int flag3 = 1;/到达直角标志while(flag1 = 0)if(you2=1)|(you1=1) while(flag3)righter();/右死转if(zuo1=1)&(you2=0)flag3 = 0;elsein_line();flag1 = 0;if(com = 0x01)while(stopFlag)stop();if(com = 0x02)while(starFlag)outCurve();void rightCurve()uint goFlag = 1;uint leftFlag = 1;while(goFlag)out_line2();if(zuo1&zuo2)while(leftFlag)lefter();if(you2=1)&(zuo1=0) leftFlag = 0;goFlag = 0;flag2 = 0;/* Init_time0 */50毫秒void InitTimer0(void) TMOD = 0x01; TH0 = 0x4C; TL0 = 0x00; EA = 1; ET0 = 1; TR0 = 0;/* time0 */void Timer0Interrupt(void) interrupt 1 TH0 = 0x4C; TL0 = 0x00; /add your code here!countTime0+;if(countTime0 = 70) /定时3.5秒转弯countTime0 = 0; TR0 = 0;/取消计时flag1 = 1; /*Init blue tooth*/void InitBlueTooth()SCON = 0x50; / SCON: 模式1, 8-bit UART, 使能接收TMOD |= 0x20;TH1=0xfd; /波特率9600TL1=0xfd;TR1= 1;EA= 1; ES= 1; /* 串口中断程序*/void UART_SER () interrupt 4if(RI) RI=0;if(!carFlag)com = SBUF;if(com = 0x01)/停车flag1 = 1;stopFlag = 1;if(com = 0x02)starFlag = 1;stopFlag = 0;if(TI)TI=0;void Initexter()EA=1;EX0=1;IT0=0;void exter0() interrupt 0stop(); /* main */void main (void)InitTimer0();InitBlueTooth();Initexter();initPWM_line(); while(1)if(!flag2) /如果没到标志线走直线out_line();elsewhile(flag2)/如果过标志线转弯switch(flag)/若flag为1,2,4是普通弯道,flag为3为超车道case 1 :smallCurve();break;case 2 :smallCurve();break;case 3 :if(carFlag)SBUF = 0x01;if(TI)TI = 0;if(carFlag = 0)/前车内弯bigCurve();elserightCurve();break;case 4 :if(carFlag)SBUF = 0x02;if(TI)TI = 0;if(carFlag)carFlag = 0;elsecarFlag = 1;smallCurve();flag = 0;break;default:break; 七、实验结果及分析在调试过程中,遇到了小车左右摆动幅度过大,和弯道容易跑出的问题。解决的方法有:不断调整两边红外对管的间距与黑线跑道之间的关系,反复调试,找到最快的方案。左右两边各增加了一对红外对管,也就是左右两边各有两对红外对管,可以一定程度上“度量”小车偏移轨道的程度,并对电机速度做出不同的调整。四对红外对管增大了检测的精度,一定程度上有助于提高小车速度。当检测到直道时,提高小车行进速度,弯道时,降低速度,可以让小车跑的既快又稳。八、实验体会以前总感觉学的东西是比较虚的,经过这一次的动手实践,让我感觉到这 是一门真实的,很有应用的一门学科。一开始在制作电源板时,我请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省松滋市2026届中考语文最后冲刺模拟试卷含解析
- 无菌操作室设备管理制度
- 师德培训课件图片
- 2025年全国禁毒知识竞赛培训试题库及答案
- 手术室内消毒及无菌护理的落实
- 注射实施中的无菌操作安全护理
- 短视频公司合规管理制度
- 历年司法考试试题及答案
- 新疆伊犁州重点达标名校2026届中考五模语文试题含解析
- 二零二五年度会展租赁服务与品牌推广合同
- 医疗健康行业数字营销战略解析
- 生产经营单位事故隐患内部报告奖励制度
- 民政局笔试题及答案
- 青少年体态管理课件
- 网络安全维护与用户免责声明
- 风湿免疫病患者结核病诊治及预防实践指南(2025版)解读课件
- 新苏教版三上《认识长方形和正方形》教学设计
- 山东省枣庄市峄城区2024-2025学年七年级上学期期末考试数学试题(原卷版+解析版)
- 脑积水患者治疗与护理
- 项目管理体系运行
- 物业工程前期介入方案
评论
0/150
提交评论