点光源跟踪系统(B)_第1页
点光源跟踪系统(B)_第2页
点光源跟踪系统(B)_第3页
点光源跟踪系统(B)_第4页
点光源跟踪系统(B)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

点光源跟踪系统(B)摘要 :该系统以LM3S811单片机为控制核心,由光敏三极管(3DU33)组成的传感器阵列检测点光源发出的光信号,经过运算放大器LM324将光信号放大后并经A/D模数转换,然后通过单片机处理这些信号后,确定点光源的位置,从而实现云台自动跟踪光信号。点光源以LM3S811为控制核心,通过升压转换器(TPS61062)来控制点光源的功率,再通过INA270A 实现电流监测。关键字:LM3S811 光敏三极管 LM324 点光源 云台 TPS61062 INA270AAbstract: The systems controlling hard-core is single-chip LM3S811.When the photo transistors which consist of transducer array check the light single, which produced by LED, and the LM324 will microscope those single and switch them by A/D. Then the single-ship LM3S811 deals with those signals to decide the place of the LED, in order to achieve automatic tracking point source head. The point lamp-house use MSP430 as its hard-core. Tps61062 used to control the power of the point lamp-house, then the system come true detecting electricity. Keywords: single-ship LM3S811 3DU33 LM324 LED TPS61062 INA270A一.方案论证与比较1总体方案比较及比较方案一:用C2000作为该系统的主控芯片,MSP430作为光源LED控制芯片。C2000在实时控制和高速数据处理方面,显然比其它单片机更具有优势,不时为本系统的最佳解决方案。C2000做起来较复杂,且性价比较高,故没有选择方案。方案二:用LM3S811作为光源跟踪系统的主控芯片,MSP430作为光源LED控制芯片。由于LM3S811控制灵活方便,且在实时控制和高速处理方面明显比其单片机占优势,故选择方案二。 图二 LED控制模块2模块方案论证与比较(1).信号采集模块方案一:采用CCD图像采集传感器,该传感器在分辨率、动态范围、灵敏度、实时传输和自扫描等方面都具有优越性,是本系统的最好的传感器。但是算法很复杂,难于在短时间内实现。所以此方案没有被采纳。图三 CCD采集模块方案二:由光敏三极管排成四象限传感器阵列,将传感器阵列和激光笔固定在一起,传感器阵列动态检测光源位置和强弱。该方案既能快速跟踪光源的位置,又减少了传感器的数量,故选择了方案三。图四 传感器分布图:图五 信号采集主要框图(2)云台的搭建电机布局:在圆形基架的两条对称轴线上分别设置互相垂直的两根轴XX和YY,其中轴YY与基座转动联接,轴XX与工作平台固联并与基架转动联接,电机l通过轴XX带动工作平台相对基架转动,电机2通过轴YY带动基架相对基座转动。轴XX采用背对背滚动轴承,有效地减轻了XX轴的剪切力。轴YY采用圆锥滚子轴承,方便地实现了转动和支撑两大功用。电机采用减速步进电机。不采用直流电机,因为速度不容易控制。方案一:采用功率三极管作为功率放大器的控制步进电机。线性型驱动的电路结构和原理简单,加速能力强,但是电路比较复杂。方案二:采用由达林顿晶体管阵列ULN2003。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。单驱动能力比较弱。方案三:采用恒压桥式驱动芯片L298N。驱动能力强,电路简单,使用方便。故选择此方案。(3).声光显示模块 方案一:采用数码管显示。方案二:用12864液晶图文显示器显示。数码管显示内容单一,不易产生生动具体的图文,而液晶显示12864给我们提供了更大的发挥空间,看起来舒服自然,而且能增加显示的美观性与直观性。最重要的是提供了友好的人机界面。因此本系统中采用液晶显示。电路图如下图所示:二电路理论分析与计算1信号采集模块图六3DU33采集到光信号后,使整个电路导通,再通过运算放大器将微弱的电流信号放大,从而使单片机LM3S811个更好的处理信号。图中的R1为偏执电阻,可以调解工作点及稳定电路3DU33,在正常室内关照下,电流为微安级,选择15k的偏置电阻,放大十一倍后送至A/D.2光耦 (4N25)图七 光耦电路光耦主要起隔离的作用,防止高电压烧坏单片机。通过4N25的最大电流为10mA,在室温条件下,取通过4N25的电流I约为6到7毫安,图中R1为限流电阻,其计算式为R1=V/I,最后求的R1约为3303电机部分的电路图如下图所示图八该电路采用恒压桥式驱动芯片L298N。L298N芯片可以驱动一个四相电机输出电压可高达50V,可以直接通过电源来调节输出电压。桥式整流电路虽然用了四支二极管,但却克服了全波整流电路要求变压器次级有中心抽头和二极管承受反压大的缺点。三软件设计软件流程图如下图所示图九 程序流程图四测试方案及结果测试方案:1激光笔不指向点光源,通过按键调节激光笔指向,并观察激光笔能否指向点光源。2当激光笔指向点光源时,将激光笔光点调偏离点光源中心30cm时,观察激光笔能否重新指向点光源。3当激光笔基本对准点光源时,以工作云台为中心将激光笔平稳转离中心20度,观察并记录激光笔跟踪到点光源的时间。4在激光笔基本对准点光源时,将点光源支架沿直线LM平缓移动60Cm,观察激光笔能否连续跟踪并指向光源,若能则记录时间。5将光源支架旋转一个20,然后平移20Cm,观察激光笔能否跟踪并指向点光源6改变点光源的亮度并将点光源支架沿直线LM平缓移动60Cm,观察激光笔能否连续跟踪并指向点光源,若能则记录时间。实验结果记录题号123456改变位置时能否跟踪并指向点光源能能能(10)能(11)能能表格说明:各个测量初始状态时,激光笔对准 点电源中心结果分析:采用光敏三极管3DU33组成的传感器阵列检测点光源发出的光信号,经过算法补偿,能快速准确跟踪点光源,偏离误差小于两厘米。实现了基本部分的要求,能实现发挥部分的前两项,五附录1参考文献1 康华光等 电子技术基础模电部分(第五版),高等教育出版社.2 C语言程序设计教程(第二版),中国教育出版社. 2.主要元件清单 元件名称数目LM3242TLV154413DU334INA270A1TPS610621主要元器件的介绍(1).LM324:四路运算放大器。(2).TLV1544:它是TI公司生产的CMOS型10bit模数转换芯片,其内部采用开关电容逐次近似来得到模数转换结果。芯片有四路模拟信号输入通道,通过芯片内部参数设置选择不同的通道输入,进行A/D转换输出。(3).4N25:是由砷化镓红外发光二极管和硅光电晶体管检测器光耦合构成。是一种发光二极管与光电晶体管面对面的单回路,内光路光电耦合器。(4).INA270A:它是测量电流的并联检测器(5).TPS61062:升压转换器,由白光LED的亮度强弱控制电源。3程序清单Adc.c:#include ad.hunsigned char ch=0x00,0x02,0x04,0x06; /*AD初始化*/ void adc_init(void) SysCtlPeripheralEnable(ADC_PERIPH);GPIOPinTypeGPIOOutput(ADC_PORT, ADC_DIN|ADC_IOCLK|ADC_EOC|ADC_CS);GPIOPinTypeGPIOInput(ADC_PORT, ADC_DOUT); /*读AD值*/ unsigned int read_adc(unsigned char pa) unsigned char i;unsigned char add;unsigned int adc_data;add=chpa;CLR_ADC_IOCLK;SET_ADC_EOC;CLR_ADC_CS;for(i=0;i9;i+) if(add&0x08) SET_ADC_DI; else CLR_ADC_DI; SET_ADC_IOCLK; add = 1; CLR_ADC_IOCLK; CLR_ADC_EOC; SET_ADC_IOCLK; CLR_ADC_IOCLK; SET_ADC_CS; SysCtlDelay(5 * (TheSysClock / 3000); SET_ADC_EOC; CLR_ADC_CS; SysCtlDelay(1 * (TheSysClock / 3000)/1000); for(i=0;i9;i+) SET_ADC_IOCLK; if(GPIOPinRead(ADC_PORT,ADC_DOUT)=ADC_DOUT) adc_data |= 0x0001; else adc_data &= 0xfffe; SysCtlDelay(1 * (TheSysClock / 3000); CLR_ADC_IOCLK; adc_data point_b)&(point_cpoint_d)run_f1(20);motor_stop2();void turn_left(unsigned int point_a,unsigned int point_b,unsigned int point_c,unsigned int point_d)if(point_apoint_b)&(point_cpoint_c)&(point_bpoint_d)run_f2(20);motor_stop1();void turn_down(unsigned int point_a,unsigned int point_b,unsigned int point_c,unsigned int point_d)if(point_apoint_c)&(point_bpoint_b)&(point_apoint_c)&(point_apoint_d)run_f1(20);run_f2(20);void turn_downleft(unsigned int point_a,unsigned int point_b,unsigned int point_c,unsigned int point_d)if(point_cpoint_a)&(point_cpoint_b)&(point_cpoint_d)run_f1(20);run_b2(20);void turn_upright(unsigned int point_a,unsigned int point_b,unsigned int point_c,unsigned int point_d)if(point_bpoint_a)&(point_bpoint_c)&(point_bpoint_d)run_b1(20);run_f2(20); void turn_downright(unsigned int point_a,unsigned int point_b,unsigned int point_c,unsigned int point_d)if(point_dpoint_a)&(point_dpoint_b)&(point_dpoint_c)run_b1(20);run_b2(20);Motor.c:/*头文件定义*/#includemotor.h /*步进电机初始化*/void motor_init(void)SysCtlPeripheralEnable(MOTOR_PERIPH); / 使能PD口外设GPIOPinTypeGPIOOutput(MOTOR_PORT,0xff);/*步进电机1正传*/void run_f1(unsigned char time)unsigned char a;a=1;while(a-)motor_init();MOTOR_A1_W0;MOTOR_B1_W1;MOTOR_C1_W1;MOTOR_D1_W1;SysCtlDelay(time * (TheSysClock / 3000);MOTOR_A1_W1;MOTOR_B1_W0;MOTOR_C1_W1;MOTOR_D1_W1;SysCtlDelay(time * (TheSysClock / 3000);MOTOR_A1_W1;MOTOR_B1_W1;MOTOR_C1_W0;MOTOR_D1_W1;SysCtlDelay(time * (TheSysClock / 3000);MOTOR_A1_W1;MOTOR_B1_W1;MOTOR_C1_W1;MOTOR_D1_W0;SysCtlDelay(time * (TheSysClock / 3000); /*电机1反转函数*/void run_b1(unsigned char time)unsigned char i=1;while(i-)motor_init();MOTOR_A1_W1;MOTOR_B1_W1;MOTOR_C1_W1;MOTOR_D1_W0;SysCtlDelay(time * (TheSysClock / 3000);MOTOR_A1_W1;MOTOR_B1_W1;MOTOR_C1_W0;MOTOR_D1_W1;SysCtlDelay(time * (TheSysClock / 3000);MOTOR_A1_W1;MOTOR_B1_W0;MOTOR_C1_W1;MOTOR_D1_W1;SysCtlDelay(time * (TheSysClock / 3000);motor_init();MOTOR_A1_W0;MOTOR_B1_W1;MOTOR_C1_W1;MOTOR_D1_W1;SysCtlDelay(time * (TheSysClock / 3000);/*电机1停止函数*/void motor_stop1(void)MOTOR_A1_W1;MOTOR_B1_W1;MOTOR_C1_W1;MOTOR_D1_W1;/*步进电机2正转*/void run_f2(unsigned char time)motor_init();MOTOR_A2_W1;MOTOR_B2_W0;MOTOR_C2_W0;MOTOR_D2_W0;SysCtlDelay(time * (TheSysClock / 3000);MOTOR_A2_W0;MOTOR_B2_W1;MOTOR_C2_W0;MOTOR_D2_W0;SysCtlDelay(time * (TheSysCloc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论