電子競賽論文J_第1頁
電子競賽論文J_第2頁
電子競賽論文J_第3頁
電子競賽論文J_第4頁
電子競賽論文J_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論