2012年广西大学生电子设计竞赛光源自动跟踪系统(F题)摘要系统采用8位单片机STC89C52作为智能小车系统检测和控制的核心,通过2光敏传感器来对1W的LED白光来感光最强的点进行跟踪,当LED灯随着给小车的行走,通过步进电机支架上的2光敏传感器控制步进电机转动,来对不同感光最强的点进行跟踪从而实现检测并指示点光源位置的模拟光伏发电太阳光自动跟踪系统功能。
硬件系统采用最为精简的电路模块搭建,软件系统使用模块化编程。
硬件由电源电路、单片机最小系统模块、电机驱动电路、循迹引导电路等组成。
,最终实现了能够检测并指示点光源位置的模拟光伏发电太阳光自动跟踪系统功能,测试表明各项指标基本符合设计任务要求。
关键词:STC12C5A60S2单片机、L298N电动机、循迹。
显示屏。
光源、跟踪、检测、激光笔、白光LED目录一、系统设计要求 (2)1.1 任务 (2)1..2设计相关要求 (2)1.2.1.. 基本要求 (3)1.2.1 发挥部分 (3)二、系统方案论证与选择 (3)2.1系统基本方案 (5)2.2系统各模块的最终方案 (5)三、系统的硬件设计与实现 (5)3.1系统硬件的基本组成部分 (5)3.2主要单元电路的设计 (6)3.2.1电源电路 (6)3.2.2 控制电路 (6)3.2.3循迹电路 (7)3.2.4电机驱动电路 (8)3.2.5 显示屏1602 (8)3.2.6 光敏传感器 (9)3.2.7 HB7128电机步进 (10)四、系统软件的设计………………………………………………………………五、系统测试…………………………………………………………………………六、总结…………………………………………………………………………………一、系统要求设计智能车辆是集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,是智能交通系统的一个重要组成部分,其设计主要集机械、电子、检测技术与智能控制于一体,是机器人研究领域的一项重要内容,在军事、民用、太空开发等领域有着广泛的应用前景,且其智能技术广泛运用于各种领域。
本选题以设计智能小车综合考察参赛选手对制造工艺流程管理及自动配给、装配技术的理解,并着重考察运动控制方面的能力,提高参赛选手的动手能力和分析能力。
1.1、任务设计并制作一个能够检测并指示点光源位置的模拟光伏发电太阳光自动跟踪系统,系统示意图如图1所示。
光敏器件80CM图1 光源跟踪系统示意图1.2 设计的相关要求1.2.1 基本要求(1)小车置于C点,将激光笔光点调偏离点光源中心5cm时,激光笔能够尽快指向靶牌中心(10S内完成)。
(2)在激光笔基本对准光源时,以A为圆心,将循迹小车沿着圆周从C到D移动,激光笔能够连续跟踪指向LED点光源(20S内完成)。
(3)跟踪完毕,小车在D点停留5S后关闭LED。
(4)灭LED后小车自动返回到C点(10S内)。
1.2.2 2.发挥部分(1)将光敏板,转向D点,小车放于C到D圆弧的任一位置,光敏板和激光笔能自动旋转,将激光点指向靶牌。
(10S内完成)。
(2)在基本部分2中,可以显示小车运行时间。
(3)能适时显示靶牌旋转的角度,以A为圆心,C点为0度,D点为180度。
(4)其他。
二系统方案论证与选择根据题目要求,系统系统主要实现能够检测并指示点光源位置的模拟光伏发电太阳光自动跟踪系统功能,统框图如图1.1所示,可分为电源部分,单片机最小系统模块、电机驱动模块、循迹引导模块、显示模块、传感模块、电机步进模块等。
1 .电源模块论证与选择方案一:双电源供电。
由于电机驱动和其他芯片工作电压不一样,需用不同的电源供电。
但如用双电源供电则需使用两个不同的电池组,占空间,且增加车体重量,从而影响车速。
方案二:使用14.8的锂电池,用KIS-3R33S 做两个降压模块、稳压后给单片机系统和其它芯片供电。
用这种方案方便车的行走,减少车的重量。
综上所述,采用方案二。
2 控制器模块的论证与选择方案一:选用PIC、或A VR、或凌阳SPCE061A等作为控制核心;这些单片机资源丰富,可以实现复杂的逻辑功能,功能强大,完全可以实现对小车的控制。
但对于本题目而言,其优势资源无法得以体现,且成本稍高。
方案二:采用以增强型80C51内核的STC系列单片机STC12C5A60S2,其片内集成了60KB程序Flash,2通道PWM、16位定时器等资源。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
,较好的符合智能小车的控制,需求环境非常容易搭建。
因此较好地符合设计的需要。
综上所述,采用方案二。
3 循迹模块方案一:用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白纸上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在木板轨迹上方和黑色轨迹上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
单片机据此来判断小车是否偏离轨道或是否到达转弯标志,并根据反馈来不同的电平信号,发出相应的控制操作命令来控制小车。
但是这种方案的缺点是受环境中光线的影响很大,且由于电压变化不是很大,不能够稳定的工作。
方案二:采用TCRT5000红外光电传感器,在小车行驶过程中,遇到黑线时,TCRT5000输出为低电平,灯灭。
此红外光电传感器调理电路简单,工作性能稳定,灵敏度高。
是在黑暗或者是强光照射下,小车系统均可以很稳定的工作,对环境的适应能力较强。
综上所述,采用方案二。
4 电动机驱动模块的论证与选择方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速目的。
但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵,且可能存在干扰。
更主要的问题在于一般电动机的电阻比较小,但电流很大,分压不仅会降低效率,而且实现很困难。
方案二:采用继电器对电动机的开与关进行控制,通过控制开关的切换速度实现对小车的速度进行调整。
这个电路的优点是电路较为简单,缺点是继电器的响应时间长不可用于高速、频繁的开关切换操作,易损坏,寿命较短,可靠性不高。
方案三:采用集成驱动芯片L298N,用单片机PWM进行控制。
L298 是专用的集成驱动芯片,具有输出电流大,功率强,过流保护等特点,并且使用方便。
通过比较,为了保证电机正常稳定工作,我们选择方案三L298N电机驱动模块。
5 显示模块方案一:使用液晶显示屏显示。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
方案二:使用数码管显示。
数码管虽然具有:低能耗、低损耗、低压、寿命长,但电路不稳定。
、综上所述,采用方案一2.2系统各模块的最终方案经过仔细分析和论证,决定了系统各模块的最终方案如下:(1)电源模块:采用14.8V的锂电池(2)控制模块:采用STC89C52单片机(3)循迹模块:采用TCRT5000红外光电传感器(6)电机驱动模块:采用专用芯片L298N作为电机驱动芯片(7)显示模块:使用1602液晶显示(8) 传感器模块:采用光敏电阻三、系统的硬件设计与实现3.1系统硬件的基本组成部分电路原理图系统总的框图如下所示。
图系统总体框图3.2主要单元电路的设计3.2.1电源电路将14.8V的电源降压成7.2V,供给驱动,再将7.2V降压到5V,供给单片机用,电源电路原理图如下:3.2.2单片机最小系统原理图用ST89C51C芯片做的最小系统。
电路图如下:3.2.3三点循迹电路:利用TCRT50000控制小车在行驶时不偏离跑道和转弯处控制小车转弯.。
电路图如下所示;3.2.4 L298N电机驱动电路原理图:L298N可驱动2个电机,UT1、0UT2和OUT3、OUT4之间分别接2个电动机,5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。
单片机STC89C52输出二组PWM波,每一组PWM波用来控制一个电机的速度,另外二个I\O 口可以控制电机的正反转。
控制方法与控制电路都比较简单。
电路图如下所示;3.2.5显示屏1602在本系统中,采用了1602液晶显示,能更准确地显示数据。
液晶显示屏显示的是小车行驶时间和显示靶牌旋转的角度。
3.2.6光敏传感器电路原理图:采用LM393芯片,用光敏电阻能更好地感应光,而且价格便宜。
3.2.7 HB7128电机步进电路图:为了构造完美的跟踪系统,本次设计应用THB7128芯片来做跟踪系统,其驱电路如下图所示:四、系统软件的设计(1)主程序流程图小车循迹设计流程图(2)部分源程序:#define uchar unsigned char#define uint unsigned int#define AheadFlag 0 //前进方向#define BackFlag 1 //倒退方向/**********************************三点寻迹**********************************/ //前灯sbit P_RIGHT=P3^0;sbit P_MIDDLE=P3^1;sbit P_LEFT=P3^2;//后灯sbit P_RIGHT2=P3^3;sbit P_MIDDLE2=P3^4;sbit P_LEFT2=P3^5;/**********************************马达控制**********************************/ sbit L298_IN1=P1^0;sbit L298_IN2=P1^1;sbit L298_IN3=P1^2;sbit L298_IN4=P1^3;/******************************1W LED*******************************/sbit LED1 = P1^4;/******************************12864液晶相关I/O口设置*******************************/sbit RW = P1^5; //读写控制sbit E = P1^6; //使能信号sbit nRST = P1^7; //复位信号//#define LCD12864Data P0 //8位并行数据端口sbit RS = P2^1; //寄存器组选择sbit PSB = P2^0; //串口/并口选择/******************************key*******************************/sbit KEY1 = P2^5;sbit KEY2 = P2^6;sbit KEY3 = P2^7;//-----------------------------///***********************************lcd1602************************************/ sbit lcd_RS = P0^0; //寄存器选择端sbit lcd_RW = P0^1; //读写控制端sbit lcd_EN = P0^2; //使能端/*sbit lcd_RS = P3^4; //寄存器选择端sbit lcd_RW = P3^3; //读写控制端sbit lcd_EN = P3^2; //使能端*/#define DATA_PORT P0 //双向数据端口void readbusy(void); //读忙函数void sentbyte(unsigned char i,unsigned char tybe);//发送一节数void Init_1602(void);//初始化1602液晶显示void Locate_xy(unsigned char x,unsigned char y );//定位写位置void Displaychar(unsigned char x,unsigned char y, unsigned char wdata);//1602液晶显示一个字符void Displaypstr(unsigned char x,unsigned char y,unsigned char *str);//1602液晶显示字符串,//*************************************uint count = 0; //用于计时5Svolatile uint timercnt = 0; //用于计算小车行驶时间volatile uchar timercount = 0;uchar startflag = 0;//小车最初启动标志uchar AheadOrBackFlag;五、系统测试各模块单元电路完成并组装完毕后,在暗光实验室进行测试和调试,首先完成小车循迹,从起始点C点运动到D点,在D点停留5S后关掉LED灯并自动返回C点。