版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2006年吉林化工学院电子设计竞赛 自动排爆车参赛队员: 指导教师: 目录摘要31方案比较与论证41.1方案一41.2方案二41.3 方案论证42.系统设计42.1 总体要求42.2总体设计52.3系统设计详细电路图52.3模块设计7电机驱动模块设计7光电隔离模块设计8金属传感器模块8寻迹模块92.4单片机嵌入式操作系统设计13(1)总体设计思路13(2)WDT中断处理13(3)P1 中断13(4)P2中断133、系统调试143.1硬件调试14(1)车体驱动电源14(2)行程开关143.2软件调试154、指标测试154.1. 测试仪器154.2.测试指标154.3测试结果155、结论15摘要该
2、作品主要制作一个自动排爆小车,共有七部分组成,分别为车架、单片机系统、驱动电路、寻迹电路、光电隔离电路、摆臂电路、金属探测及金属处理电路组成。车架用来支撑和摆放各电路及达到运动的目的;单片机系统是通过控制各部分电路达到控制整个小车有序运动及显示运动时间的目的;驱动电路是给各个部分供电;寻迹电路是用来采集黑线信号;光电隔离电路是把外部高电压与单片机隔离开,达到保护单片机的目的;摆臂电路是控制横臂的转动;金属探测及金属处理电路是通过金属探测器来探测并将探测到的信号送回单片机系统,通过单片机系统反馈出的信号来控制对金属的拾、放动作。该系统的主要实现对可疑金属的探测及对可疑金属的处理,通过寻迹电路使车
3、体在预定的范围内行使,同时金属探测及处理电路对可以金属进行扫描及扫到后的处理。光电隔离可以有效保护单片机系统的安全工作。 1方案比较与论证1.1方案一让车从四周以螺旋线轨迹向中间移动,并在车头装上横向扫描的探头,车每行动一步,让探头来回扫描一次。但很快被否决了,因为想让车以螺旋线行走,得经过很复杂的计算,包括行进时车体旋转角度及行动距离,并且必须使用步进电机,步进电机功耗较大,因此舍弃了此方案。芯片的选用,我们选用msp430f449。因为430系列芯片一款精简指令、超低功耗的芯片,外部电路灵活而且功能强大。而51虽然比较普遍,比起430功能实现比较困难,不适合制作本系统,因此选用了msp43
4、0f449 1.2方案二除一些最基本的电路外,整个设计都以msp430f449单片机为载体,该单片机功耗极低,外部电路灵活而且功能强大,有多种省电模式,大大节约了能源。 1.3 方案论证经过比较,虽然两种方案都可以实现此功能,但51需要的外部电路特别复杂,因此实现起来比较困难,而且功耗比起msp430要大很多,因此我们选用了方案二作为最终方案。 2.系统设计2.1 总体要求设计并制作一个能自动进入危险现场排除险情的简易排爆机器人小车,危险现场如图1所示。进入危险现场通道起点距危险现场1.3m,通道宽25cm,画有1cm宽的黑色中心线,危险现场为直径1m的圆形平面场所,边长1.5cm的可疑铁磁材
5、料薄片任意放置于场内,现场所有的边界均为宽2cm的黑线。1要求机器人小车进入现场找到可疑铁磁材料薄片,并将其转移到防爆处理库的危险品储仓,在整个搜索和转移过程中机器人小车除探头和机械手外均不得接触边线和可疑铁磁材料薄片。图1 现场示意图2送入危险品储仓后机器人小车要回到出发点。2.2总体设计 首先,让车沿黑线直线进入圆内,行进的同时通过车体周围的寻迹传感器随时矫正车体,防止车轮触及黑线。进入圆形区域后,让车体沿左边沿着圆环内圈运动,同时让摆臂向右摆动,摆臂前的金属探头开始扫描。扫描一次,当摆臂碰到行程开关后,让摆臂往回摆动,摆臂复位,碰到另一个行程开关,一次扫描结束。小车边运动,摆臂边扫描,如
6、此往复运动,直到扫描到可疑金属后,摆臂稍做调整,用电磁铁将可疑金属物吸起,发出声光警报,并让摆臂复位。小车沿着圆内线继续运动直到扫描到通道中间的黑线,车体骑着黑线运动。到危险品储仓时,让车转过90度角,进入仓库,把危险品放入防爆处理库。车体转过180度角,离开车库。最后回到出发点。整个过程,时间由液晶显示频显示。 2.3系统设计详细电路图图一为msp430f449基本功能电路图图二为外围电路电路图2.3模块设计 本方案硬件方面运用了电机驱动模块、光电隔离模块、金属传感器模块、寻迹模块。在软件方面运用单片机嵌入式操作系统,实现了对单片机的控制及时间的显示功能。电机驱动模块设计电机驱动主要由L29
7、3D构成,由外部的输入IN1与IN2经芯片比较,通过控制输出的OUT1和OUT2高低电平来控制电机的正反转与停止。光电隔离模块设计光电隔离主要用了发光管和受光管构成。通过对光电隔离模块的运用,使芯片只对外输出高低电平信号,不与外部高电压接触,能有效保护芯片,不至于被外部高电压所损坏。而由芯片所发出的高低电平信号也不会由于外部信号的影响而出现混乱。金属传感器模块当金属探测器探测到金属时,电感线圈中的电感迅速变化,从而产生感应电流,电流经过三极管的放大,改变了输出电流。将输出信号变送给单片机。这样,系统就检测到金属传感器探测到可疑金属片,并对摆臂和电磁铁进行控制,使得电磁铁将可疑金属片吸引起来。寻
8、迹模块如下图,寻迹传感器主要由发光管和光电管组成。 寻迹其实就是寻找黑线的过程。当传感器工作时,有一端一定会在白纸上,另一端可能在黑线上也可能在白纸上。其寻迹的工作原理是:发光管两端有固定的电压,发出一定的光强,因为白纸与黑线对光的反射效果不同,因此光电管在同一光强上表现的吸收效果就不同,从而表现出的外部特性即电阻阻值出现较大变化,导致与其串联的电阻两端电压出现明显变化,将两个传感器输出的电压值做比较,就可以得出传感器是在白纸上还是在黑线上,达到寻迹的目的。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过15cm。对于发射和接收红
9、外线的红外探头,可以自己制作或直接采用集成式红外探头。 由于发光管与光电二极管在制造工艺水平比较低,所购买的元件存在明显的个体差异,因此在把二者组合的之前,我们首先对它们做了测试,以确保达到预期的目的。具体测试方法如下:拿同一发光管与其它光电管组合,分别测它们在同一外部条件下,在黑线与白纸上,测得与光电管串联的电阻两端的电压。并计算出差值,从而比较并挑选出合适的发光管与光电管的组合。 具体测试数据如下:(单位:V)发光管1 白纸上黑线上差值光电管11.200.270.93光电管20.810.210.60光电管30.640.120.52光电管41.250.231.02光电管50.980.180.
10、80光电管60.960.160.80光电管71.430.371.06光电管80.700.100.60发光管2白纸上黑线上差值光电管12.130.901.23光电管21.370.610.76光电管31.250.550.70光电管41.640.611.03光电管51.530.630.90光电管62.241.440.80光电管71.730.641.09光电管81.370.410.90发光管3白纸上黑线上差值光电管12.020.931.09光电管21.550.570.98光电管31.210.550.66光电管41.830.811.02光电管51.700.601.10光电管62.121.011.11光电
11、管71.900.801.10光电管81.300.560.74发光管4白纸上黑线上差值光电管12.300.801.50光电管21.270.670.60光电管31.200.500.70光电管41.800.701.10光电管51.540.620.92光电管61.560.561.00光电管71.510.600.91光电管81.200.500.70发光管5白纸上黑线上差值光电管12.561.700.95光电管22.001.070.93光电管31.850.900.95光电管42.681.601.08光电管52.501.550.95光电管62.351.351.00光电管72.241.101.14光电管81.
12、900.801.10发光管6白纸上黑线上差值光电管12.400.901.50光电管21.400.720.68光电管31.020.500.72光电管42.000.981.02光电管51.240.840.40光电管61.560.740.82光电管71.220.540.68光电管80.850.440.41发光管7白纸上黑线上差值光电管11.450.600.85光电管21.010.400.61光电管30.240.020.22光电管41.010.350.66光电管51.200.540.66光电管61.200.460.74光电管71.300.520.78光电管80.850.270.58发光管8白纸上黑线上
13、差值光电管12.501.660.84光电管22.121.150.97光电管30.450.270.18光电管42.411.440.97光电管51.760.890.87光电管61.100.350.75光电管71.400.600.80光电管80.780.270.51初步选定组合:发光管光电管白纸上黑线上差值112.280.761.52282.451.161.29360.900.340.54441.450.550.90531.560.680.88671.320.570.75721.860.841.02851.230.480.75经过进一步的测试,最终选定了以下六组发光管光电管112844537265红
14、外探头的安装 在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,在小车底盘安装6个红外探头。2.4单片机嵌入式操作系统设计(1)总体设计思路 开始工作后,首先对单片机各功能模块进行初始化:将定时器、LCD显示器、各个端口分别进行初始化,然后小车开始运动。(2)WDT中断处理 WDT在工作中起主要作用,处理大部分的中断,包含了小车在行进过程中的主要函数功能的完成。(3)P1 中断 P1端口负责在小车行进中通过行程开关控制摆臂往返运动。(4)P2中断 P2端口负责金属探测(探测到金属后产生中断)。3、系统调试3.1硬件调试(1)车体驱动电源 原方案:只用一个电源给小车(除单片
15、机外)供电,发现小车耗电量很大,一段时间后就不能正常工作。 改进:用双电源分别给电机供电,使小车可以长时间稳定工作。(2)行程开关原方案:将行程开关放在两段(图一),其中一个行程灵活性不好,碰到后不能正常返回。改进:将一个开关用线与摆臂相连,用摆臂给线的牵引力代替碰撞,解决了这个问题。(如下图)3.2软件调试因为红外管的性能影响,在白天和晚上的时候光电探头的A/D转换部分在程序设计的黑线和白纸上差异较大。因此,要根据当时的光强确定其比较数值。4、指标测试4.1. 测试仪器 电源 、金属铁片、白纸黑线场地4.2.测试指标(1)车轮是否触及边线(2)电磁铁能否将可疑金属片吸起(3)能否正常返回4.
16、3测试结果由于光电探头与车轮几乎在一条直线上,因此运动时可能会稍微触及边线。电磁铁基本都可以吸引铁片。正常返回时,在入库的时候,车容易迷失方向。5、结论本次设计我组基本完成了题目要求,在整个竞赛过程中独立设计了众多模块,实现了多项题目要求。因为个人能力所限,及所购买的元件质量问题,我们的作品仍然存在着很多问题,请评委批评指正。6、收获通过本次的电子竞赛,让我们学到了许多书本上学不到的许多知识。在刘老师的精心指导和大家互相协作的基础上,我们基本完成了本次任务,并且认识到了合作的重要性。在电子竞赛中学到的知识,能让我们在以后学习生活中受益无穷。大家都希望以后可以有更多的机会去多锻炼自己。小车整个排
17、爆过程:1. 直线阶段:光电探头5始终沿中间的黑线前进(正对),探头4(左侧)负责检测左边路黑线,当检测为黑线时小车向右转(车体一直来回摆动),而检测不为黑线时,小车左转,就这样探头4控制着小车沿左边路黑线行进。2. 进入雷区:当探头5离开中间黑线时,表明小车进入雷区,此时小车启动扫描程序。具体步骤为让小车前进一小段距离(小于金属探测器探测范围),摆臂一次,直到探测到金属片,启动电磁铁,进行拾取。具体为:发现金属片后,让小车单步后退(距离小于电磁铁吸引范围),然后用电磁铁吸引金属片。3. 拾取后,小车返库阶段:小车沿左边线前进,同时开启探头6,当6检测到黑线时,说明小车已处于仓库入口,调整车速
18、,沿一定角度入库。同时开启光电探头1检测到黑线时左转,探头3检测到黑线时车体右转。当1检测到两次以上黑线时,开启探头2,沿入库的黑线进入。当2检测到白色区域,说明小车就位,放下金属片,进入调头步骤,原地左转(左轮后退,右轮前进)。4. 回起点:当光电探头1检测到黑线时左转,探头3检测到黑线时车体右转。当1检测到两次以上黑线时,读取探头2。当1、2、3全部检测到黑线时,车左转。当探头3检测到白色区域,再次检测到黑线时,读取探头1,沿着边线运动。当1、2、3全部检测到黑线时,车转身回到初始位置。(注:关闭与开启的意思就是 是否读取数据) 整个过程的源程序 /*调试内容:整个排爆过程*/*输入、输出
19、端口分配*/* 寻迹传感器OUT1P6.0/A0 95寻迹传感器OUT2P6.1/A1 96寻迹传感器OUT3P6.2/A2 97寻迹传感器OUT4P6.3/A3 02寻迹传感器OUT5P6.4/A4 03寻迹传感器OUT6P6.6/A6 04左电机E1端P3.5/TB4 66左电机IN1端+P3.3 68左电机IN2端-P3.4 67右电机E2端P2.2/TB1 77右电机IN3端-P3.1 70右电机IN4端+P3.2 69摆臂电机E1端P2.3/TB2 76摆臂电机IN1端+P2.7 72摆臂电机IN2端-P3.0 71行程开关1P1.0 87行程开关2P1.1 86金属传感器OUTP2
20、.5 74电磁铁驱动信号P2.6 73声光报警P3.6/TB5 65*/*光电探头数据范围*/* ADC_result0>340&&ADC_result0<400/A0 光电探头1 ADC_result1>310&&ADC_result1<360/A1 光电探头2 ADC_result2>320&&ADC_result2<360/A2 光电探头3 ADC_result3>355&&ADC_result3<480/A3 光电探头4 ADC_result4>370&&
21、;ADC_result4<400/A4 光电探头5 ADC_result5>350&&ADC_result5<365/A4 光电探头6*/#include <msp430x44x.h>char digit10 = 0xD7, /* "0" LCD 段 a+b+c+d+e+f */ 0x06, /* "1" */ 0xE3, /* "2" */ 0xA7, /* "3" */ 0x36, /* "4" */ 0xB5, /* "5"
22、 */ 0xF5, /* "6" */ 0x07, /* "7" */ 0xF7, /* "8" */ 0xB7 /* "9" */ ;int ccr2,ccr1=80,ccr4=50,ccr0=512; /*ccr2摆臂电机调速,ccr1右电机调速,ccr4左电机调速,ccr0 PWM周期*/float ADC_result6; int a,b6,c8,d4,e; / 切换控制变量int tdly2=1,0; /延时 tdly0为0时进入延时模式 为1时正常工作 tdly1为延时时长void td(void) /
23、*延时函数*/ tdly1+; if(tdly1=30) tdly0=1;tdly1=0; void LCDclr(void) /*LCD清空*/ int i; for (i=0; i<10; i+) LCDMEMi=0x00; void init_LCD(void) /*LCD初始化*/ LCDCTL = LCDON + LCD4MUX+LCDP1; / 设置LCD 4Mux, S0-S20 BTCTL = BT_fLCD_DIV32; / 设置LCD频率 P5SEL = 0xFC; / COM和Rxx 都被选中 LCDclr(); LCDMEM0=0xD7; / 零位 LCDMEM1
24、=0xD7; LCDMEM3=0xD7; LCDMEM4=0xD7; LCDMEM6=0xD7; LCDMEM7=0xD7; void init_TB_PWM(void) /*PWM电机调速驱动*/ TBCTL = TBSSEL0 + TBCLR; / ACLK, 清零TBR TBCCR0=ccr0-1; / PWM周期 TBCCTL1=OUTMOD_7; /输出模式:复位、置位模式 TBCCR1=ccr1; / TB1占空比 TBCCTL2=OUTMOD_7; TBCCR2=ccr2; / TB2占空比 TBCCTL4=OUTMOD_7; TBCCR4=ccr4; / TB4占空比 P3DI
25、R = 0x3F; /P3、P2初始化 P3SEL = 0x20; /TB4 P3OUT = 0x0C; P2DIR = 0xCC; P2SEL = 0x0C; /TB1,TB2 P2OUT = 0x80; P2IES = 0x10; P2IE |= 0x30; P2IFG &= 0x00; TBCTL |= MC0; /增模式启动TB void ADC_res(void) /*读AD数据*/ ADC_result0 = ADC12MEM0>>2; ADC_result1 = ADC12MEM1>>2; ADC_result2 = ADC12MEM2>&g
26、t;2; ADC_result3 = ADC12MEM3>>2; ADC_result4 = ADC12MEM4>>2; ADC_result5 = ADC12MEM5>>2; ADC12CTL0 |= ADC12SC; /启动转换 void init_ADC12(void) /*ADC初始化*/ int i; P6SEL |= 0x1F; / 使能A/D通道A0A4 ADC12CTL0 = ADC12ON+SHT0_2+REFON+MSC+REF2_5V; / 接通并设置ADC12 ADC12CTL1 = SHP+CONSEQ_1; / 使用采样定时器 A
27、DC12MCTL0 = INCH_0+SREF_0; /序列开始 ADC12MCTL1 = INCH_1+SREF_0; ADC12MCTL2 = INCH_2+SREF_0; ADC12MCTL3 = INCH_3+SREF_0; ADC12MCTL4 = INCH_4+SREF_0; ADC12MCTL5 = INCH_5+SREF_0+EOS; / 序列结束 for ( i=0; i<0x3600; i+) / 延时等待启动参考电源 ADC12CTL0 |= ENC; / 使能转换 ADC12CTL0 |= ADC12SC; / 启动转换 void init_Js(void) /*
28、行程开关初始化*/ P1SEL &= 0xFC; P1DIR &= 0xFC; P1IES &= 0xFC; P1IE |= 0x03; /P1.0,1.1中断使能 void timer(void) /*计时器*/ int time6; static int h,m,s,t,n=64; t+; if(t=n) if(n%2=0) n=65; else n=64; s+; t=0; if(s=60) m+; s=0; if(m=60) h+; m=0; if(h=24) h=0; LCDclr(); time0=s%10; time1=s/10; time2=m%10;
29、time3=m/10; time4=h%10; time5=h/10; LCDMEM0=digittime5; LCDMEM1=digittime4; LCDMEM3=digittime3; LCDMEM4=digittime2; LCDMEM6=digittime1; LCDMEM7=digittime0; void ctl1(int k) /*step1:直线跑道*/ /m为380时直线,为2000时任意路线,为0时停止 P3OUT |= 0x0C; P3OUT &= 0xED; /前进 if(ADC_result4<k) if(ADC_result3>450) /左转
30、 TBCCR4=0; TBCCR1=80; else if(ADC_result3<450) /右转 TBCCR4=80; TBCCR1=0; else /直线 TBCCR4=85; TBCCR1=85; else /停止 TBCCR4=0; TBCCR1=0; a=1; void ctl2(void) /*step2:雷区*/ P3OUT |= 0x0C; P3OUT &= 0xED; timer();c7=1; if(tdly0=0) td(); else switch(b0) case 0:if(b1=0) TBCCR2 = 57; /摆臂工作 else b2+; if(b
31、2=7) b2=0; b1=0; b0=1; TBCCR2 = 0;tdly0=0; /摆臂停止 break; case 1: if(b3=0) b4+; if(b4<65) ctl1(2000); /沿边界前进 else b3=1; b4=0; else b0=0; b3=0; ctl1(0);tdly0=0; /停止前进 break; void ctl3_1(void) /*拾取*/ P2OUT |= 0x40; if(tdly0=0) td(); else if(c6=0) TBCCR2 = 57; /摆臂工作 else if(c4+c5=2) c3+; if(c3=7) TBCC
32、R2 = 0;c3=0; c6=0;tdly0=0;c2=0;a=5;e=1; void ctl3(void) /*扫描,拾取*/ timer(); TBCCR1 = 0; /电机全停 TBCCR2 = 0; TBCCR4 = 0; P3OUT |= 0x12; /电机设为后退 P3OUT &= 0xF3; if(tdly0=0) td(); else if(c2=0) c1+; /后退 if(c1<15) TBCCR1=50;TBCCR4=60; else TBCCR1=0;TBCCR4=0;c1=0;c2=1;tdly0=0; else if(c6=0) TBCCR2 = 5
33、7; else if(c4+c5=2) c3+; if(c3=7) TBCCR2 = 0;c3=0; c6=0;tdly0=0;c2=0;a=3; else TBCCR2 = 0;c6=0;tdly0=0;c2=0; void ctl4(void) /*返 库*/ P3OUT |= 0x0C; P3OUT &= 0xED; /前进 if(ADC_result4>400&&d2=2) d2=3; if(ADC_result5>315&&d0=0) ctl1(2000); if(d2=3) if(ADC_result2>350&&a
34、mp;d3=1) TBCCR4=0;TBCCR1=50; if(ADC_result2<350&&d3=1)TBCCR4=50;TBCCR1=0;d0+; if(ADC_result0<340) TBCCR4=0;TBCCR1=50;d3=1; if(d0>5&&ADC_result1>370) TBCCR4=0;TBCCR1=0;P2OUT &= 0xBF;d0=3;a=6; if(ADC_result5<330&&d2=0) d2=1; if(ADC_result4<340&&d2=
35、1) d2=2; void ctl5(void) /*调 头*/ P3OUT |= 0x14; P3OUT &= 0xF5; /原地转向 if(ADC_result0<340) TBCCR4=0;TBCCR1=50;d0+; else if(ADC_result2<340) TBCCR4=50;TBCCR1=0; if(d0>2&&ADC_result1<310&&ADC_result0<340&&ADC_result2<340) TBCCR4=0;TBCCR1=0;P2OUT &= 0xBF;d0=3;a=7; void ctl6(void) /*转向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网产品设计流程要点
- 儿科护理中的心理评估与干预
- 内科护理学护理职业社会适应课件
- 2026年加油站应急处置试题及答案
- 依法行使权利 课件-2025-2026学年统编版道德与法治八年级下册
- cad课程设计过程步骤
- ui课程设计摘要
- 云锦公馆施工方案(3篇)
- 暗管暖气施工方案(3篇)
- 水渠基础施工方案(3篇)
- 2025年上饶职业技术学院单招综合素质考试试题及答案解析
- 2026年包头铁道职业技术学院单招职业适应性考试题库及参考答案详解(新)
- 女性职场健康 保健知识课件
- 河北保定市安新县2025-2026学年第一学期期末质量监测九年级数学试题(试卷+解析)
- 2026年春季人教版(PEP)三年级下册英语教学计划附教学进度表
- 特种设备质量安全风险日管控周排查月调度管理制度
- CMA质量手册(2025版)-符合27025、评审准则
- 饲料厂复工安全培训课件
- 2025年夜间音乐节五年行业报告
- 光伏电站运维安全教育培训
- 甘肃银行笔试题库及答案
评论
0/150
提交评论