電子產(chǎn)品方案設(shè)計書及制作實習(xí)報告_第1頁
電子產(chǎn)品方案設(shè)計書及制作實習(xí)報告_第2頁
電子產(chǎn)品方案設(shè)計書及制作實習(xí)報告_第3頁
電子產(chǎn)品方案設(shè)計書及制作實習(xí)報告_第4頁
電子產(chǎn)品方案設(shè)計書及制作實習(xí)報告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 天津電子信息職業(yè)技術(shù)學(xué)院電子產(chǎn)品設(shè)計及制作總結(jié)報告課題題目 姓 名 學(xué) 號 班 級 專 業(yè) 完成日期 一、 物流機器人的概述1.1 設(shè)計的目的和要求通過基于AT89S52系列單片機的智能尋跡小車的設(shè)計與控制實訓(xùn),除了加深和鞏固學(xué)生課程理論學(xué)習(xí)之外,更重要的是加強實踐、拓展應(yīng)用,讓學(xué)生了解基于AT89S52系列單片機的開發(fā)和應(yīng)用的一個整體開發(fā)流程,包括在訓(xùn)練中要求學(xué)生能夠自己根據(jù)性能指標(biāo)和功能要求掌握硬件電路的設(shè)計和制作、元器件的選用和安裝、軟件的編寫和調(diào)試,同時學(xué)會硬件仿真、軟件仿真和整機聯(lián)調(diào),其中最關(guān)鍵的兩部分:硬件電路設(shè)計與制作和控制軟件的編寫以及調(diào)試,使得準(zhǔn)產(chǎn)品最后達到技術(shù)指標(biāo)的要求。

2、1.2 技術(shù)指標(biāo)1. 能尋跡小車需基于AT89S52系列進行開發(fā)和設(shè)計。2. 能實現(xiàn)在橢圓軌道、S形軌道,等多種規(guī)則黑線軌道上尋跡運行。3. 小車外觀包裝優(yōu)美、電路設(shè)計制作焊接等工藝精良、軟件程序可讀性強。4. 可擴展其它功能。二、 設(shè)計方案的選擇和確定2.1 主控系統(tǒng)方案選擇LPC2103 ARM作為小車的控制中樞。2.2 傳感器系統(tǒng)反射式紅外發(fā)射接收裝置,只有物體反射紅外光時才有信號輸入,其信號強度與小車距障礙物的距離成正比。因此可利用信號強度作為循跡依據(jù)。紅外探測器以其發(fā)射功率大、抗干擾能力強而在工業(yè)生產(chǎn)中有著廣泛的應(yīng)用,紅外探測器按其工作模式可大致分為主動式與被動式,主動式紅外探測器自

3、帶紅外光源,通過對光源的遮擋、反射、折射等光學(xué)手段可以完成對被探測物體位置的判別。被動式紅外探測器本身沒有光源,通過接受被探測物體的特征光譜輻射來測量被探測物的位置、溫度或進行紅外成像。直流直接驅(qū)動方式裝置簡單但檢測距離和抗干擾能力都比較差;交流調(diào)制方式由于可以采用交流耦合方式解決了放大器的直流漂移問題從而可以大大提高檢測的距離,同時由于環(huán)境光產(chǎn)生的干擾多數(shù)情況是信號的直流或低頻分量可以由濾波器加以隔絕,因此交流調(diào)試方式抗干擾能力也比較強,缺點是系統(tǒng)相對復(fù)雜。在本體中我們要利用紅外探測器檢測障礙物的距離,顯然選用主動式紅外傳感器比較合適,系統(tǒng)的造價可以降低可靠性可以提高。主動式紅外傳感器又可分

4、為分立元件型、透射遮擋型和反射型(如圖1.2.3示),分立元件型發(fā)光管與接收管相互獨立,用戶在使用時可以根據(jù)需要靈活的設(shè)定發(fā)光管與接受管的位置,并可利用棱鏡、透鏡等完成特殊的目的,缺點是裝置麻煩。透射遮擋型和反射型通過塑料模具將發(fā)光管與接收管封裝在一起,非常方便用戶使用,在本題中對障礙物的檢測我使用紅外對管TCRT5000。2.3光電對管電路的設(shè)計我們設(shè)計并論證了光電對管檢測及調(diào)理電路,電路原理圖分別如4所示: 圖4 光電對管檢測電路1圖4所示電路中,R1起限流電阻的作用,當(dāng)有光反射回來時,光電對管中的三極管導(dǎo)通,R2的上端變?yōu)楦唠娖?,此時VT1飽和導(dǎo)通,三極管集電極輸出低電平。當(dāng)沒有光反射回

5、來時,光電對管中的三極管不導(dǎo)通,VT1截至,其集電極輸出高電平。VT1在該電路中起到濾波整形的作用。經(jīng)試驗和示波器驗證,該電路工作性能一般,輸出還有雜散干擾波的成分。如果輸出加施密特觸發(fā)器就可以實現(xiàn)良好的輸出波形。但是這種電路用電量比較大,給此種傳感器調(diào)理電路供電的電池壓降較快。究其原因,是因為光敏三極管和三極管VT1導(dǎo)通時的導(dǎo)通電流較大。而且檢測距離不穩(wěn)定,和環(huán)境有很大關(guān)系。三、系統(tǒng)硬件設(shè)計3.1 整體構(gòu)思經(jīng)過方案論證的過程之后,我們選定了僅采用lpc2103作為核心部件的方案,其系統(tǒng)總方框圖如圖3.1.1所示。 具體的功能設(shè)置已通過該圖做了直觀的說明。通過主控芯片控制各傳感器輸入的信號,控

6、制方式由軟件來實現(xiàn),其中包括兩個紅外傳感器用來循跡。在功能和作用上,我分成了四大部分:主控、驅(qū)動、顯示和在系統(tǒng)編程部分??傇韴D見論文后。數(shù)碼管顯示模塊時間程LPC2103穩(wěn)壓電路左右兩側(cè)有光電對管萬向輪鋁制小車底板控制直流電機驅(qū)動器塑料輪子 圖3.1.1 系統(tǒng)總原理框圖 開 始初始化LPC2103啟動小車前行左側(cè)右側(cè)右避子程序左避子程序停止返回如果都沒檢測到黑線加 速前 進 圖3.1.2 主程序框圖3.2直流電機的驅(qū)動電路(H橋L298)由于我們做的是循跡小車,只需要前進就可以了,所以沒有用到H橋前進后退的功能了。但還是介紹L298。設(shè)計中,驅(qū)動電路的四個輸入端我們只用了兩路輸入分別與ARM

7、LPC2103的P0.15和P0.14連接。這樣四路輸入就有高低電平了,輪子就能轉(zhuǎn)起來。再接入兩路PWM驅(qū)動,就能控制速度。P0.19控制車的右輪,P0.20控制車的左輪。一驅(qū)動電路如圖3.2.3。由I/O的脈沖來控制H橋中三極管的通斷,從而來控制直流電機的前進、后退、左轉(zhuǎn)和右轉(zhuǎn)的動作,具體如下表3.2.1。采用普通直流電機,通過控制脈沖占空比算法,實現(xiàn)對小車速度的控制。這種調(diào)速方式有調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)速范圍廣、帶載能力大,能承受頻繁的負載沖擊,還可以實現(xiàn)頻繁的無級快速啟動、制動和反轉(zhuǎn)等優(yōu)點。由三極管Q9、Q10、Q11、Q12構(gòu)成H橋驅(qū)動電路,控制著幾個管子的通斷就可以控制直流電機的

8、正轉(zhuǎn)、反轉(zhuǎn)。表3.2.1P0.3P0.2P0.1P0.0狀態(tài)1001前行0110后退1010左轉(zhuǎn)0101右轉(zhuǎn)圖3.2.3 小車驅(qū)動3.3鍵盤板顯示模塊方案1:通過使用DXP2006畫PCB板,自己動手制作一個鍵盤顯示板。雖然這樣可以同時提高畫PCB板的能力,但是考慮到時間有限,而且自己做的板子穩(wěn)定性不高。方案2:使用原單片機的配套鍵盤顯示板,使用方便,而且穩(wěn)定性也很高。外觀比較美觀,和LPC2103比較和諧。因此我們選擇了使用方案2 圖5鍵盤顯示板圖四、 系統(tǒng)的軟件設(shè)計4.1主程序流程圖 我們所設(shè)計的軟件的主程序流程圖如圖4.1.1所示:圖4.1.1 主程序流程圖4.2 傳感器數(shù)據(jù)處理及尋跡程

9、序流程 我們把小車直線行進時分成兩種狀態(tài),當(dāng)兩個傳感器都檢測到白線時,小車在跑道的正上方,這時控制兩電機同速度全速運行。當(dāng)檢測到有一個傳感器偏出白線時,小車處這時這時把一個電機的速度調(diào)至極低,另一電機全速運行,從而在較短時間內(nèi)完成路線的調(diào)整。該檢測傳感器子程序的流程圖。 如圖4.2.1所示:圖4.2.1 傳感器信息處理子程序流程圖4.3 系統(tǒng)完整電路圖穩(wěn)壓整流原理圖、PCB H橋原理圖、PCB紅外對管原理圖、PCB4.5 ARM控制小車程序#include config.h#define key 0x02#define RCK 0x01#define right 0x017#define le

10、ft 0x018#define LED1 0x0117#define LED2 0x0118uint8 const weima12= 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x40, 0x00; /0-9和- 黑的段碼uint8 const duanma8= 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f; /從右至左的位碼volatile uint8 shizhong8 = 5,5,10,9,5,10,3,2, /時間數(shù)組 從左向右的碼 pwm8 = 0,0,0,0

11、,1,0,10,2, /PWM數(shù)組 zkb8 = 0,0,11,11,11,11,0,0; /占空比數(shù)組volatile uint32 timeflag=0, /時鐘標(biāo)志timerflag=0, /閃爍標(biāo)志PWM=1000, /輸出PWMW周期timer=500; /定時器0的參數(shù)volatile uint8 i=0, /位碼標(biāo)志KEY=10, /按鍵Modifly=0, /修改及確定鍵yiweiflag=0, /移位標(biāo)志page=0, /換頁鍵zkb1, /占空比1路zkb2, /占空比2路flag0=0, /加速標(biāo)志1flag1=0, /加速標(biāo)志2key4flag=0,/* * 函數(shù)名稱:

12、Timer0_Init() * 函數(shù)功能:定時器0 cap捕獲 * 輸入?yún)?shù):無 * 輸出參數(shù):無 */void Timer0_Init( uint32 timer0 )T0TCR = 0x02;T0TC = 0;T0PR = 0;T0MCR = 0x03; /中斷并復(fù)位T0MR0 = Fpclk/timer0; /p0.2捕獲T0TCR = 0x01; /啟動定時器/* * 函數(shù)名稱:IRQ_Timer0() * 函數(shù)功能:中斷函數(shù)* 輸入?yún)?shù):無 * 輸出參數(shù):無 */void _irq IRQ_Timer0(void)if(T0IR & 0x01)!=0) /匹配中斷timeflag+;

13、flag0+;if(flag0=200)flag0=0;flag1=1;T0IR=0x01;VICVectAddr =0;/* * 函數(shù)名稱:VIC_Init()* 函數(shù)功能: * 輸入?yún)?shù):無 * 輸出參數(shù):無 */void VIC_Init(void)VICIntSelect = VICIntSelect & (1 4);VICVectCntl0 = 0x20 | 4;VICVectAddr0 = (uint32)IRQ_Timer0;VICIntEnable = 1 4;IRQEnable();/* * 函數(shù)名稱:Timer1_Init() * 函數(shù)功能:定時器1PWM輸出 * 輸入?yún)?shù)

14、:無 * 輸出參數(shù):無 */void Timer1_Init(uint32 PWM,uint8 zkb1,uint8 zkb2)T1TCR = 0x02;T1TC = 0;T1PR = 0;PWM1CON= 0x0C; /輸出PWM控制T1MRO T1MCR = 0x02; /復(fù)位T1MR0 = Fpclk/PWM; /輸出PWM周期T1MR2 = (T1MR0/100)*(100-zkb1); /設(shè)置PWM1.2 (p0.19引腳)輸出占空比T1MR3 = (T1MR0/100)*(100-zkb2); /設(shè)置PWM1.3 (p0.20引腳)輸出占空比T1TCR = 0x01;/* * 函數(shù)

15、名稱:SPI_Init() * 函數(shù)功能: * 輸入?yún)?shù):無 * 輸出參數(shù):無 */void SPI_Init(void)SPI_SPCCR = 0x52;SPI_SPCR = (0 3) | (1 4) | (1 5) | (0 6) | (0 =timer)timeflag=0;shizhong0+;if(shizhong0=10)shizhong0=0;shizhong1+;if(shizhong1=6) shizhong1=0; shizhong3+; if(shizhong3=10) shizhong3=0; shizhong4+; if(shizhong4=6) shizhong4

16、=0; shizhong6+; if(shizhong6=4)&(shizhong7=2)|(shizhong6=10)&(shizhong7=3) shizhong7=0; /* * 函數(shù)名稱:main * 函數(shù)功能:* 輸入?yún)?shù):無 * 輸出參數(shù):無 */int main (void)PINSEL0 = PINSEL0 & (0xfffffff);PINSEL0 = PINSEL0 |(0x024) /p0.2 為 cap捕獲 |(0x018) /p0.4 為 SCK時鐘信號 | (0x0112); /p0.6 為 DATA傳送數(shù)據(jù)PINSEL1 = PINSEL1 & (0x0f);PI

17、NSEL1 = PINSEL1 | (0x026) /p0.19 pwm輸出 | (0x028); /p0.20 pwm輸出 IO0DIR = IO0DIR & (0xffffffff);IO0DIR = IO0DIR | RCK /rck 輸出 & (key) /key 輸入 | (0x0f17); /led 輸出 SPI_Init();VIC_Init();Timer0_Init(timer);zkb1=(zkb7*10+zkb6), /占空比1路zkb2=(zkb1*10+zkb0); /占空比2路Timer1_Init(PWM,zkb1,zkb2);IO0SET = 0x0f=6000

18、)timerflag=0;if(key4flag=1)key2flag=0;if(IO0PIN&(right)=0)&(IO0PIN&(left)=0)if(flag1=1)IO0CLR=LED1|LED2;flag1=0;zkb1=2;/右電機zkb0=2;zkb6=2;/左電機zkb7=2;if(IO0PIN & left )!=0) /左轉(zhuǎn)IO0CLR=LED2;IO0SET=LED1;zkb6=0;/左電機zkb7=0;zkb1=9;/右電機zkb0=9;if(IO0PIN & right )!=0) /右轉(zhuǎn)IO0CLR=LED1;IO0SET=LED2;zkb6=9;/左電機zkb7

19、=9;zkb1=0;/右電機zkb0=0;if(IO0PIN&(right)!=0)&(IO0PIN&(left)!=0)IO0SET=LED1|LED2;zkb1=1;/左電機zkb0=1;zkb6=1;/右電機zkb7=1;elseIO0SET=LED1|LED2;zkb1=0;/右電機zkb0=0;zkb6=0;/左電機zkb7=0;KEY=10;if( IO0PIN & key )=0)if( IO0PIN & key )=0)KEY=i;while(IO0PIN & key )=0);switch(KEY)case 0: /修改鍵Modifly=(Modifly+1)%2;break

20、;case 7: /移位鍵yiweiflag += 1;if(yiweiflag=8)yiweiflag=0;if(page=0) /時鐘if(yiweiflag=2)yiweiflag=3;if(yiweiflag=5);yiweiflag=6;if(page=1) /PWMif(yiweiflag=6)yiweiflag=0;if(page=3)/占空比if(yiweiflag=2)yiweiflag=6;break;case 6: /增建if(page=0) /時鐘shizhongyiweiflag += 1;if(shizhongyiweiflag=10)shizhongyiweifl

21、ag=0;if(page=1) /PWMpwmyiweiflag += 1;if(pwmyiweiflag=10)pwmyiweiflag=0;if(page=3) /PWMzkbyiweiflag += 1;if(zkbyiweiflag=10)zkbyiweiflag=0;break;case 4:key4flag=(key4flag+1)%2;keyflag0=1;break;case 1: /換頁鍵page=(page+1)%4;break;default:break;if(Modifly=1)if(page=0)if(i=yiweiflag)IO0CLR=RCK;if(timerfl

22、ag 3000)Send_Data(weima11);Send_Data(duanmayiweiflag);IO0SET=RCK;elseIO0CLR = RCK;Send_Data(weimashizhongi);Send_Data(duanmai);IO0SET = RCK;if(page=1)if(i=yiweiflag)IO0CLR=RCK;if(timerflag 3000)Send_Data(weima11);Send_Data(duanmayiweiflag);IO0SET=RCK;elseIO0CLR = RCK;Send_Data(weimapwmi);Send_Data(d

23、uanmai);IO0SET = RCK; if(page=2) IO0CLR = RCK; Send_Data(weimacapi);Send_Data(duanmai);IO0SET = RCK; if(page=3) if(i=yiweiflag)IO0CLR=RCK;if(timerflag 3000)Send_Data(weima11);Send_Data(duanmayiweiflag);IO0SET=RCK;elseIO0CLR = RCK;Send_Data(weimazkbi);Send_Data(duanmai);IO0SET = RCK; elseif(page=0)IO

24、0CLR = RCK;Send_Data(weimashizhongi);Send_Data(duanmai);IO0SET = RCK;yiweiflag=0;if(page=1)IO0CLR = RCK;Send_Data(weimapwmi);Send_Data(duanmai);IO0SET = RCK;if(page=2) IO0CLR = RCK; Send_Data(weimacapi);Send_Data(duanmai);IO0SET = RCK; if(page=3) IO0CLR = RCK; Send_Data(weimazkbi);Send_Data(duanmai);IO0SET = RCK; yiweiflag=0;zkb1=(zkb7*10+zkb6), /占空比1路 zkb2=(zkb1*10+zkb0); /占空比2路 PWM=(pwm5*100000+pwm4*10000+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論