論文自動避障追光小車
自動追光避障電動小車論文學(xué)校: 華僑大學(xué)學(xué)院: 信息科學(xué)與工程學(xué)院 班級:10級 集成電路設(shè)計(jì)與集成系統(tǒng)組員: 熊梓淋、項(xiàng)傳煜、崔冰目錄摘要3一、 設(shè)計(jì)要求41.1基本要求.41.2發(fā)揮部分.4二、系統(tǒng)方案設(shè)計(jì)52.1系統(tǒng)功能概述.52.2系統(tǒng)方案概括.52.3系統(tǒng)結(jié)構(gòu)圖.5三、模塊設(shè)計(jì)方案選擇.63.1、電源模塊的設(shè)計(jì).63.2、自動避障模塊的設(shè)計(jì).63.3、感光模塊的設(shè)計(jì).73.4、自動停車模塊的設(shè)計(jì).73.5、穩(wěn)壓模塊的設(shè)計(jì).73.6、步進(jìn)電機(jī)驅(qū)動模塊的設(shè)計(jì).73.7、直流電機(jī)驅(qū)動模塊的設(shè)計(jì).83.8、太陽能電池板模塊的設(shè)計(jì).8四、系統(tǒng)各模塊電路圖附件.94.1、中央控制模塊94.2、太陽能電池板模塊.94.3、感光模塊.94.4、穩(wěn)壓電路.104.5、步進(jìn)電機(jī)驅(qū)動電路.114.6、直流驅(qū)動電路.114.7、超聲波模塊原理圖.114.8、超聲波使能模塊原理圖.12五、軟件設(shè)計(jì).125.1 超聲波控制125.2感光模塊程序.145.3 步進(jìn)電機(jī)驅(qū)動程序16六、電路調(diào)試.176.1追光系統(tǒng)調(diào)試.176.2避障系統(tǒng)調(diào)試.176.3太陽能電池板充電系統(tǒng)調(diào)試.186.4整體電路調(diào)試.18七、總結(jié).18附錄2:程序18摘要隨著汽車自動化、智能化程序的提高,新一代智能汽車的研發(fā)在國內(nèi)外受到越來越多的重視。目前,國內(nèi)比較先進(jìn)的智能車輛通過觀測前方的路況,將路況信息輸入到車內(nèi)的電腦中,通過計(jì)算機(jī)控制方向盤的運(yùn)動實(shí)現(xiàn)自動避障的目的。然而隨著汽車產(chǎn)業(yè)的快速發(fā)展,汽車產(chǎn)業(yè)目前已經(jīng)進(jìn)入調(diào)整期,目前,全球石油資源緊缺,且油價(jià)不斷上漲,沖擊了各個行業(yè),尤其是汽車產(chǎn)業(yè),同時(shí)人類面對著全球變暖、水平面上升等世界性問題。因此未來的汽車必將趨于電氣化、智能化。眾所周知太陽能是目前最為清潔的能源,對人類來說無疑是一種新型的能源。此次設(shè)計(jì)的簡易電動小車的動力來自于太陽能轉(zhuǎn)換的電能,是基于單片機(jī)控制及傳感器技術(shù),實(shí)現(xiàn)的功能是小汽車可自動尋光,并且能夠利用超聲波傳感器檢測道路上的障礙,以及電動小車的自動停車。電動小車由單片機(jī)STC89C52控制電動小汽車的自動尋光、自動避障、及自動停車。關(guān)鍵字:太陽能電池板;單片機(jī);超聲波傳感器;光敏二極管一、任務(wù)要求設(shè)計(jì)制作一套自動追光太陽能充電系統(tǒng)放置在電動小車上。小車以一定速度追著光源行進(jìn),太陽能板始終能面對光源給蓄電池充電。小車行進(jìn)過程中會遇到路障,小車必須能避開路障繞道找到光源并繼續(xù)追光前進(jìn)。1.1基本要求(1)光源用不大于100W的白熾燈,場地不小于1.5m1.5m,障礙物不小于15cm15cm15cm??梢詫庠催M(jìn)行聚光。(2)光源在離小車大于1.5m的固定位置擺放,放置高度不高于25cm。小車發(fā)現(xiàn)光源后沿光源方向前進(jìn)。(3)小車前進(jìn)方向上至少隨機(jī)放置三個障礙物。遇到障礙物,小車應(yīng)繞道前進(jìn)。(4)在小車?yán)@道過程中,太陽能板應(yīng)始終對準(zhǔn)光源。(5)到達(dá)離光源一定位置后,小車應(yīng)停止前進(jìn)。(6)小車前進(jìn)直線距離應(yīng)大于1.2米,時(shí)間不大于2分鐘。(7)能顯示太陽能為蓄電池供電狀態(tài)。1.2發(fā)揮部分(1)場地尺寸2m2m,光源離小車2米以上。(2)障礙物5個以上。(3)能逆著光源前進(jìn),并繞過障礙物。但太陽能板始終對準(zhǔn)光源。(4)完成時(shí)間不大于1分鐘。(5)在無白熾燈光源情況下,小車可以沿自然光源方向前進(jìn)。(6)其它。二、系統(tǒng)方案設(shè)計(jì)2.1 系統(tǒng)功能概述初始時(shí)刻小車置于起點(diǎn),打開電源,啟動小車。小車會通過感光模塊進(jìn)行追光并檢測前方障礙情況,太陽能板也能根據(jù)自己的感光模塊自動正對光源。當(dāng)在前進(jìn)過程中遇到障礙物時(shí),小車會根據(jù)避障系統(tǒng)來選擇左轉(zhuǎn)或右轉(zhuǎn),以便避開障礙物。在避開障礙物后,小車趨光前進(jìn)。同時(shí)太陽能板也時(shí)刻都正對光源,并能時(shí)刻顯示充電狀態(tài)。到達(dá)終點(diǎn)時(shí),小車自動停車。 2.2 系統(tǒng)方案概括 主控制系統(tǒng): 在此次設(shè)計(jì)中,涉及到一個外部中斷,三個定時(shí)中斷,所以采用常用的單片機(jī)STC89C52作為小車的主控制器,通過單片機(jī)來接收指令并發(fā)出指令,使小車的各項(xiàng)功能得以順利完成。(1).感光系統(tǒng):設(shè)計(jì)中不僅要求小車能夠朝著光源前進(jìn),而且還要求太陽能板也要正對光源。通過各方面的了解,比較,最終我們決定采用了兩套獨(dú)立感光系統(tǒng),來完成小車追光與太陽能電池板對光。這兩個模塊分別放在小車車頭和太陽能板的左右兩端,通過比較兩邊光敏電阻的電壓,以此來判斷是否正對這光源。(2).避障系統(tǒng):設(shè)計(jì)中采用三個避障模塊。分別裝在左,中,右,這樣便可使小車順利避障。(3).能源系統(tǒng):使用一片LM2596-5(穩(wěn)定5V輸出)和LM2596_ADJ(可調(diào)輸出)分別給芯片和電機(jī)供電。(4).動力系統(tǒng):這次采用的是直接驅(qū)動兩個直流電機(jī)的方式來解決小車動力問題。通過分別控制兩個直流電機(jī)的轉(zhuǎn)速使小車前進(jìn)、后退、轉(zhuǎn)向、停止等功能。2.3系統(tǒng)結(jié)構(gòu)圖充電狀態(tài)顯示 太陽能電池板蓄電池升壓模塊 主控制 CPU STC89C52穩(wěn)壓模塊避障模塊尋光模塊電機(jī)驅(qū)動驅(qū)動小車系統(tǒng)總流程圖:NYNYNYYNY開始停車是否靠近光源對光太能板是否正對光源避障前方是否有障礙太能板是否正對光源充電小車是否正對光源前進(jìn)尋光三、模塊設(shè)計(jì)方案選擇3.1、電源模塊的設(shè)計(jì)方案一:所有元器件采用單一電源。它供電簡單,方便靈活,減小了車載重量和摩擦阻力。但是電機(jī)啟動瞬間電流很大,會造成電壓不穩(wěn)定、有毛刺干擾等,不適用于要求電源穩(wěn)壓的CPU,嚴(yán)重時(shí)可能造成系統(tǒng)掉電。方案二:單片機(jī)必須與大電流器件分開供電,避免大電流器件對單片機(jī)造成干擾,采用兩路供電,這樣可以使用其中一路單獨(dú)為單片、指示燈供電,另外一路提供L298N驅(qū)動直流電機(jī)使用。介于設(shè)計(jì)穩(wěn)定性考慮,采用方案二。3.2、自動避障模塊的設(shè)計(jì)方案一:采用超聲波。由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播距離遠(yuǎn)且具有頻率高、波長短、繞射現(xiàn)象小等諸多優(yōu)點(diǎn)故而超聲波已經(jīng)廣泛應(yīng)用于現(xiàn)代社會之中。超聲波傳感器主要采用直接反射式的檢測模式。位于傳感器前面的被檢測物通過將發(fā)射的聲波部分地發(fā)射回傳感器的接收器,從而使傳感器檢測到被測物。還有部分超聲波傳感器采用對射式的檢測模式。一套對射式超聲波傳感器包括一個發(fā)射器和一個接收器,兩者之間不斷進(jìn)行信息的傳遞。位于接收器和發(fā)射器之間的被檢測物將會阻斷接收器接收發(fā)射的聲波,從而傳感器將產(chǎn)生高低電平的跳變進(jìn)而由單片機(jī)對其進(jìn)行相關(guān)處理。方案二:使用紅外傳感器,它是一種集發(fā)射與接收于一體的光電傳感器,檢測距離可以根據(jù)要求進(jìn)行調(diào)節(jié)。該傳感器具有探測距離遠(yuǎn)、受可見光干擾小、價(jià)格便宜、易于裝配、使用方便等特點(diǎn)。紅外發(fā)射管發(fā)出紅外線,當(dāng)發(fā)出的紅外線照射到白色的平面后反射,發(fā)出的紅外線照射到黑色的平面后紅外線被吸收。若紅外接收管能接收到反射回的紅外線則檢測出白線繼而輸出低電平,若接收不到紅外線則檢測出黑線繼而輸出高電平。由于測試中使用的是白熾燈,產(chǎn)生的光中,紅外光占有比例較大,如使用紅外傳感器,會有較大的干擾。所以考慮到設(shè)計(jì)中對障礙物中尺寸和顏色上的要求以及使用的方便性、穩(wěn)定性和檢測具體的可調(diào)性,選擇方案一,即使用超聲波進(jìn)行避障,在使用時(shí)可以方便的對最小避障距離進(jìn)行調(diào)節(jié),使得更好地實(shí)現(xiàn)小車避障功能而順利趨光行駛。3.3、感光模塊的設(shè)計(jì)方案一:使用光敏二極管和A/D轉(zhuǎn)換電路來實(shí)現(xiàn)自動尋光。光敏二極管與半導(dǎo)體二極管在結(jié)構(gòu)上是類似的,其內(nèi)部是一個具有光敏特征的PN結(jié),具有單向?qū)щ娦裕虼斯ぷ鲿r(shí)需加上反向電壓。無光照時(shí),有很小的飽和反向漏電流,即暗電流,此時(shí)光敏二極管截止;當(dāng)受到光照時(shí),飽和反向漏電流大大增加,形成光電流,它隨入射光強(qiáng)度的變化而變化。輸出經(jīng)過ADC0832進(jìn)行A/D轉(zhuǎn)換后得到的電壓變化量反饋給單片機(jī)進(jìn)行處理,進(jìn)而控制小車尋找光源。因此可以利用此特性進(jìn)行自動尋找光源。方案二:采用光敏電阻和A/D轉(zhuǎn)換電路來實(shí)現(xiàn)自動尋光。由于光敏電阻的阻值會隨著光照強(qiáng)度的增加而迅速減小,我們可以應(yīng)用此原理,通過一個A/D轉(zhuǎn)換出來的電壓變化量經(jīng)過單片機(jī)的處理來實(shí)現(xiàn)自動尋光功能。測試發(fā)現(xiàn)光敏二極管在對著光源移動時(shí)反應(yīng)過于靈敏,在距離光源較近的位置會出現(xiàn)一個跳變,且在離光源較近時(shí)(大約70cm至100cm)對光源及其不敏感,而且A/D讀書不穩(wěn)定,波動較大,從而影響小車的前進(jìn)。光敏電阻雖然不如光敏二極管靈敏,但經(jīng)過實(shí)際測試發(fā)現(xiàn),其穩(wěn)定性比光敏二極管好很多,經(jīng)A/D轉(zhuǎn)換后的數(shù)據(jù)線性性好,而且價(jià)格相對較低基本可以滿足設(shè)計(jì)要求。因而選擇方案二。3.4、自動停車模塊的設(shè)計(jì):方案一:采用熱敏電阻, 該設(shè)計(jì)采用的光源是白熾燈,白熾燈是在照明的時(shí)候能夠產(chǎn)生大量的熱量,我們可以利用該特性,采用熱敏電阻制作一個停車模塊。熱敏電阻的阻值能夠隨著周圍熱的不同而改變。然后通過比較器控制小車靠近光源時(shí)自動停車。方案二:利用感光模塊上光敏電阻的感光效應(yīng),當(dāng)小車離光源越近時(shí),經(jīng)A/D轉(zhuǎn)換后的電壓值就會越小。因此可以利用此原理,給A/D設(shè)置一個初值,當(dāng)達(dá)到這一初值時(shí)小車自動停止。經(jīng)過實(shí)踐,我們利用熱敏電阻制作的停車模塊對熱不是很敏感,而且我們已有四個感光模塊,效果也不亞于適應(yīng)熱敏電阻。因此我們選用了利用感光系統(tǒng)來進(jìn)行停車。3.5、穩(wěn)壓模塊的設(shè)計(jì)方案一:采用LM2596穩(wěn)壓芯片對干電池輸出電壓進(jìn)行穩(wěn)壓。LM2596具有很好的線性和負(fù)載可調(diào)性。有固定輸出和可調(diào)輸出,其固定輸出有3.3V、5V、12V,可調(diào)可以輸出1.237V的各種電壓。方案二:采用LM7805三端穩(wěn)壓器件進(jìn)行穩(wěn)壓。其可固定輸出5V穩(wěn)定電壓而且內(nèi)部有過熱保護(hù)和安全工作保護(hù)電路。雖然LM7805器件是按照固定電壓值來設(shè)計(jì)的,但當(dāng)加載一些外部器件后,同樣可以輸出可變電壓。綜合考慮上述兩種方案,由于LM2596輸出電壓1.237V穩(wěn)定可調(diào)內(nèi)部有過熱保護(hù)和限流保護(hù)電路,外圍電路簡單,僅需4位外接元件,且使用的電感是比較容易購買的標(biāo)準(zhǔn)電感,輸出電壓可調(diào)性好。而LM7805是按固定輸出5V電壓值來設(shè)計(jì)的,常用于單片機(jī)的供電電路的設(shè)計(jì)。雖可輸出可變電壓值,但是其輸出電壓可調(diào)性差,更主要的是其效率低,只能達(dá)到60%75%,而LM2596最高效率可達(dá)90%。相比之下我們選擇了方案一。3.6、步進(jìn)電機(jī)驅(qū)動模塊的設(shè)計(jì)方案一:采用ULN2003步進(jìn)電機(jī)驅(qū)動驅(qū)動芯片。ULN2003多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控制電路中。通常芯片采用DIP封裝。方案二:采用L298驅(qū)動芯片。L298既可以驅(qū)動直流電機(jī)又可以驅(qū)動步進(jìn)電機(jī),常用于打字機(jī)、數(shù)字機(jī)床、復(fù)印機(jī)等控制電路中。綜合考慮上述步進(jìn)電機(jī)的驅(qū)動芯片,ULN2003具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)、工作效率高、外圍電路設(shè)計(jì)簡單、價(jià)格較低、易于購買等優(yōu)點(diǎn)。所以本次設(shè)計(jì)中我們采用ULN2003作為步進(jìn)電機(jī)的驅(qū)動芯片。3.7、直流電機(jī)驅(qū)動模塊的設(shè)計(jì)直流電機(jī)驅(qū)動采用L298驅(qū)動芯片。L298是SGS公司的產(chǎn)品,比較常見的是15腳Multiwatt封裝的L298N,內(nèi)部同樣包含4通道邏輯驅(qū)動電路。L298N芯片可以驅(qū)動兩個直流電機(jī),也可以驅(qū)動兩個二相步進(jìn)電機(jī)或一個四相步進(jìn)電機(jī),輸出電壓最高可達(dá)46V。L298N可接受標(biāo)準(zhǔn)TTL邏輯電平信號VSS,VSS可接457 V電壓。4腳VS接電源電壓,VS電壓范圍VIH為2546 V,輸出電流可達(dá)25 A,可驅(qū)動電感性負(fù)載。1腳和15腳下管的發(fā)射極分別單獨(dú)引出以便接入電流采樣電阻,形成電流傳感信號。L298N可驅(qū)動2個電動機(jī),OUT1,OUT2和OUT3,OUT4之間可分別接電動機(jī)。5、7、10、12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn)。EnA,EnB接控制使能端,控制電機(jī)的停轉(zhuǎn),也可用于控制PWM調(diào)速。3.8、太陽能電池板模塊的設(shè)計(jì)本次設(shè)計(jì)采用兩塊太陽能電池板并聯(lián)的方式,通過吸收白熾燈散發(fā)的光能并隨之轉(zhuǎn)換成電能來供給蓄電池充。經(jīng)測試一塊太陽能電池板距離100W白熾燈約1.5-2米的時(shí)候電壓約為3V,且而兩塊串聯(lián)時(shí)約有6V。但是本次設(shè)計(jì)需要對太陽能電池板的輸出電壓進(jìn)行升壓處理,以供蓄電池充電。而串聯(lián)時(shí)電流很小,即使離光源很近也無法進(jìn)行升壓。故采用兩塊太陽能電池板新并聯(lián)的方式進(jìn)行升壓。進(jìn)而給蓄電池充電。升壓電路有如下兩種設(shè)計(jì):方案一:使用LM2577升壓電路,輸入電壓,輸出電壓以通過電阻R1和電阻R2的比值進(jìn)行調(diào)節(jié)(Vout=1.23(1+R1/R2))。輸入電壓約5V,輸出電壓可達(dá)10V以上。方案二:使用TPS61200 DC/DC升壓電路,輸入電壓的范圍為0.3-5.5V,輸出的電壓穩(wěn)定在6V左右,測試發(fā)現(xiàn),兩塊太陽能電板并聯(lián)在距離光源2米處可以達(dá)到5V,均滿足兩種芯片輸入電壓的要求,但由于方案二中的TPS61200的價(jià)格較高、不易購買,封裝為貼片式,不易使用,且輸出電壓較低。LM2577所需的最低電壓為3V,但電流要求較高,在光強(qiáng)不夠時(shí),不能進(jìn)行升壓,但在離光源較近時(shí)可以將電壓升至11V左右,以完成對8節(jié)電池充電,并能顯示充電狀態(tài)。綜合考慮上述兩種方案選用LM2577升壓模塊較為合理。四、系統(tǒng)各模塊電路圖附件4.1、中央控制模塊: 該模塊由單片機(jī)最小系統(tǒng)、外加5組電源構(gòu)成。4.2 太陽能電池板模塊太陽能電池板收集的光能轉(zhuǎn)換成電能,由于電壓較低,因此需要升壓電路,給蓄電池充電。升壓電路原理圖:4.3、感光模塊感光電路采用光敏電阻和ADC0832組合電路。通過A/D轉(zhuǎn)換后的電壓變換量反饋到單片機(jī)里進(jìn)行尋光處理。原理圖: 4.4、穩(wěn)壓電路本實(shí)驗(yàn)中的穩(wěn)壓電路采用兩組LM2596芯片組合而成的穩(wěn)壓電路。一組固定輸出5V電壓(上圖),供芯片使用。另外一組輸出電壓可調(diào)(下圖),供電機(jī)使用。原理圖:4.5 步進(jìn)電機(jī)驅(qū)動電路本次設(shè)計(jì)中的步進(jìn)電機(jī)驅(qū)動電路采用ULN2003芯片組合而成的驅(qū)動電路,原理圖:4.6、直流驅(qū)動電路直流電機(jī)驅(qū)動電路,采用L298直流電機(jī)驅(qū)動芯片,具體電路如圖:4.7 超聲波模塊原理圖5.8超聲波使能模塊五、軟件設(shè)計(jì)5.1 超聲波控制本系統(tǒng)利用單片機(jī)控制超聲波的發(fā)射和對超聲波自發(fā)射至接受往返時(shí)間的計(jì)時(shí),接受電路的輸出端接單片機(jī)的外部中斷源輸入口。系統(tǒng)定時(shí)發(fā)射超聲波,在啟動發(fā)射電路的同時(shí)啟動單片機(jī)內(nèi)部定時(shí)器,利用定時(shí)器的計(jì)數(shù)功能記錄超聲波發(fā)射的時(shí)間和接受到反射波的時(shí)間。當(dāng)收到超聲波的反射波時(shí),接收電路輸出端產(chǎn)生一個負(fù)跳變,在單片機(jī)的外部中斷源輸入口產(chǎn)生一個中斷請求信號,單片機(jī)響應(yīng)外部中斷請求,執(zhí)行外部中斷子程序,讀取時(shí)間差,計(jì)算距離。結(jié)構(gòu)圖如下部分程序代碼:void barrier_detection(void) uchar i;barrier_flag=0; detector=4;time_0_count=0;/定時(shí)器0工作在15cm障礙物檢測while(detector)EX0 = 0;/關(guān)外部中斷IE0 = 0; /清除外部中斷0標(biāo)志位TR0 = 0;/關(guān)閉定時(shí)器0 TH0=0xfc; TL0=0x18; leftTX=1;MiddleTX=1;rightTX=1;switch(detector) case 4: leftControl=1;MiddleControl=0;rightControl=0; for(i=0;i<16;i+) leftTX=!leftTX; break;/左側(cè)超聲波發(fā)波 case 2: leftControl=0;MiddleControl=1;rightControl=0; for(i=0;i<16;i+) MiddleTX=!MiddleTX; break;/中間超聲波發(fā)波 case 1: leftControl=0;MiddleControl=0;rightControl=1; for(i=0;i<16;i+) rightTX=!rightTX; break; / 右側(cè)超聲波發(fā)波 default: break; TR0 = 1;/定時(shí)器0開始計(jì)時(shí)detector_busy = 1;/超聲波正在檢測中. _nop_();_nop_();_nop_(); IE0 = 0; /清除外部中斷0標(biāo)志位EX0 = 1; /開外部中斷;while(detector_busy); /等待超聲波檢測障礙物完成detector >>=1;delay1ms(10); EX0 = 0;/關(guān)閉外部中斷 TR0 = 0;/關(guān)閉定時(shí)器1 TH0=0x3c; TL0=0xb0;time_0_count=1; /定時(shí)器0工作在定時(shí)50ms障礙物檢測 TR0 = 1; /打開計(jì)數(shù)器1,65MS檢測障礙 leftControl=0; MiddleControl=0; rightControl=0; 超聲波程序流程圖:5.2感光模塊程序感光模塊主要有ADC0832和光敏電阻組成。正常情況下ADC0832 與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI 并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)ADC0832未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁用,CLK 和DO/DI 的電平可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時(shí)芯片開始轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘輸入端CLK 輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號。在第1 個時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號。在第2、3個脈沖下沉之前DI端應(yīng)輸入2 位數(shù)據(jù)用于選擇通道功能 ,當(dāng)此2 位數(shù)據(jù)為“1”、“0”時(shí),只對CH0 進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“1”、“1”時(shí),只對CH1進(jìn)行單通道轉(zhuǎn)換。當(dāng)2 位數(shù)據(jù)為“0”、“0”時(shí),將CH0作為正輸入端IN+,CH1作為負(fù)輸入端IN-進(jìn)行輸入。當(dāng)2 位數(shù)據(jù)為“0”、“1”時(shí),將CH0作為負(fù)輸入端IN-,CH1 作為正輸入端IN+進(jìn)行輸入。到第3 個脈沖的下沉之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進(jìn)行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個脈沖下沉開始由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位DATA7,隨后每一個脈沖下沉DO端輸出下一位數(shù)據(jù)。直到第11個脈沖時(shí)發(fā)出最低位數(shù)據(jù)DATA0,一個字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個相反字節(jié)的數(shù)據(jù),即從第11個字節(jié)的下沉輸出DATA0。隨后輸出8位數(shù)據(jù),到第19 個脈沖時(shí)數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理就可以了。時(shí)序圖如下:部分程序代碼:uchar AD0832_2(void ) /太陽能充電板感光模塊 uchar data_f,i,data_f1,i1,k1; D1=1; cs1=1; cs2=1; cs3=1; cs4=1; _nop_(); _nop_(); _nop_(); cs4=0; D1=1; /芯片使能之前的初始化。第一個下降沿 clk=1; _nop_(); _nop_(); _nop_(); clk=0; / 確定通道模式、第2個下降沿 _nop_(); _nop_(); _nop_(); clk=1; D1=1; /設(shè)定通道初始化 _nop_(); _nop_(); _nop_(); clk=0; _nop_(); _nop_(); _nop_(); clk=1; D1=1; /設(shè)定通道初始化 .第3個下降沿 _nop_(); _nop_(); _nop_(); clk=0; /AD轉(zhuǎn)化的初始化完成。 for(i1=0;i1<8;i1+) /得到一個正常排序的8位數(shù)據(jù) clk=1; _nop_(); _nop_(); clk=0; _nop_(); _nop_(); data_f1<<=1; data_f1|=D0; cs4=1; a4=data_f1; /將第二個AD值存儲在a2中 k1=abs(a4-a3); return k1; 5.3 步進(jìn)電機(jī)驅(qū)動程序步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。通俗一點(diǎn)講:當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度(及步進(jìn)角)。您可以通過控制脈沖個來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)您可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)28BYJ48型四相八拍電機(jī),電壓為DC5VDC12V。當(dāng)對步進(jìn)電機(jī)施加一系列連續(xù)不斷的控制脈沖時(shí),它可以連續(xù)不斷地轉(zhuǎn)動。每一個脈沖信號對應(yīng)步進(jìn)電機(jī)的某一相或兩相繞組的通電狀態(tài)改變一次,也就對應(yīng)轉(zhuǎn)子轉(zhuǎn)過一定的角度(一個步距角)。當(dāng)通電狀態(tài)的改變完成一個循環(huán)時(shí),轉(zhuǎn)子轉(zhuǎn)過一個齒距。四相步進(jìn)電機(jī)可以在不同的通電方式下運(yùn)行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A。),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)部分程序代碼如下:void left2(uchar Step3) uchar i; while(Step3) for(i=0;i<4;i+) P0=taiyannengzhengi; delay1us(400); Step3-; 六、電路調(diào)試6.1追光系統(tǒng)調(diào)試 首先是把兩個感光模塊分別固定在小車頭的左右兩端,在距離小車1.5米外的地方放置100W的白熾燈做光源。通過顯示經(jīng)A/D轉(zhuǎn)換后的光敏電阻的電壓來判斷對光的強(qiáng)弱變化。當(dāng)小車距離光源較遠(yuǎn)時(shí),讀數(shù)較大;靠近時(shí),讀數(shù)減小。小車是否是正對光源通過比較兩個感光模塊傳出來的數(shù)據(jù)。當(dāng)數(shù)據(jù)差不多相等時(shí),小車正對光源,當(dāng)小車偏離光源越大時(shí)時(shí),差值會增大。 在剛開始測試時(shí),因?yàn)樽x數(shù)的錯誤,出現(xiàn)了讀出來的數(shù)據(jù)會有一個跳變,即數(shù)據(jù)剛開始時(shí)會隨著光強(qiáng)的變亮而減小,當(dāng)減小到最小時(shí)會突然變大,然后在依次減小。而我們對于該種錯誤的讀法采用了給光敏電阻加上一個外罩,使得在一定距離內(nèi)不會出現(xiàn)跳變,且會隨著光強(qiáng)的增強(qiáng)而線性減小。該種方法雖然能過尋到光源,但在某些環(huán)境下會出現(xiàn)差錯。后來經(jīng)過仔細(xì)排查并請教他人。發(fā)現(xiàn)程序中A/D讀數(shù)的方式錯誤,漏掉了其中一位。經(jīng)改正和測試,發(fā)現(xiàn)該種方法能夠順利完成尋光。6.2避障系統(tǒng)調(diào)試 避障系統(tǒng)采用的超聲波避障。在剛開始時(shí),我們采用的一個超聲波模塊配合一個步進(jìn)電機(jī)進(jìn)行避障,即在小車前進(jìn)過程中,通過擺動超聲波模塊及時(shí)檢測小車的左右和前面是否有障礙物,如有障礙物時(shí),小車進(jìn)行避障。在開始測試時(shí),發(fā)現(xiàn)我們購買的是減速電機(jī),速度不能滿足在前進(jìn)過程中左右搖擺并進(jìn)行避障。經(jīng)改進(jìn),我們采用三個超聲波模塊組成的一個避障系統(tǒng)進(jìn)行避障。分別裝在小車車頭的正前方和左右兩邊。當(dāng)超聲波只檢測到左邊或者右邊有障礙物時(shí),小車轉(zhuǎn)向前進(jìn)一個角度進(jìn)行避障。當(dāng)檢測到左中后、右中、左中右都有障礙物時(shí),小車先是進(jìn)行后退轉(zhuǎn)向,然后是前進(jìn)一段距離進(jìn)行避障。該種方法需要在測試時(shí),不斷的進(jìn)行調(diào)試轉(zhuǎn)向的角度,以達(dá)到順利避障的目的。6.3太陽能電池板充電系統(tǒng)調(diào)試 充電系統(tǒng)采用兩塊太陽能電池板并聯(lián)(以提高輸出電流)的方式,再通過一個升壓模塊給8節(jié)電池進(jìn)行充電。采用一個發(fā)光二極管來顯示電池的充電狀態(tài)。即:當(dāng)電池滿電時(shí),由于發(fā)光二極管兩端電勢差較小,因而不足以點(diǎn)亮發(fā)光二極管。隨著干電池電能的不斷耗散發(fā)光二極管兩端的電勢差加大,從而使其發(fā)光。因而我們可以通過觀測發(fā)光二極管的亮滅來顯示蓄電池的充電狀態(tài)。此外由于發(fā)光二極管的單項(xiàng)導(dǎo)通作用:一方面、其正向?qū)▔航岛苄。涣硪环矫?、其反相擊穿電壓很大,且其反相?dǎo)通電阻非常大,因而又可以防止,蓄電池滿電時(shí)給太陽能電池板反相充電。6.4整體電路調(diào)試整體電路的調(diào)試是最繁瑣的,也是最重要的。它需要不斷的進(jìn)行測試,不斷的進(jìn)行電路和程序的改進(jìn)。在尋光和避障兩個功能整合在一起時(shí),就需要對小車進(jìn)行合理的控制,經(jīng)過測試發(fā)現(xiàn)在小車進(jìn)行避障的同時(shí),關(guān)閉尋光模塊,在結(jié)束避障的那一刻又要開啟開啟避障程序。一種能夠良好解決避障和尋光都能實(shí)現(xiàn)的一種方案。在小車進(jìn)行避障是,同時(shí)也要使太陽能板正對光源,在進(jìn)行這一步調(diào)試時(shí),可以使用進(jìn)行多次對光,但又不能把所有的時(shí)間都去對光,這里就可以采用中斷的方式,在小車進(jìn)行避障延時(shí)時(shí),不斷的讓太陽能板去對光。整體電路的調(diào)試是一個核心環(huán)節(jié),需要我們細(xì)致耐心的不斷調(diào)試。這樣才能的得到理想的效果七、總結(jié)經(jīng)過一個月的辛勤勞作,我們團(tuán)隊(duì)沒能完全完成設(shè)計(jì)要求。但也使我們受益頗多,不僅鞏固了我們的所學(xué)知識,讓我們對單片機(jī)有了深層次的了解,并且讓我們學(xué)到了跟多新的知識。例如超聲波的使用、步進(jìn)電機(jī)的驅(qū)動。光敏器件的光敏特性等知識,這些無一不是寶貴的財(cái)富。在整個設(shè)計(jì)過程中我們遇到了許許多多的挫折和困難,例如在剛開始的選材上,我們就走了不少的彎路。由于初次接觸步進(jìn)電機(jī),了解甚少,購買到減速步進(jìn)電機(jī),使得我們不得不放棄原有的設(shè)計(jì)方案,在重新選擇新的方案。在避障模塊中更是選擇了比較難控制的超聲波,這不僅使得設(shè)計(jì)的難度加大了,編程難度也加大了。當(dāng)我們好不容易把每個模塊都分別制作出來并能控制時(shí),難題又一次的出現(xiàn)了,要想把每個模塊整合起來并不一件容易的事情,在整合出來后要對整個系統(tǒng)進(jìn)行控制更是困難重重,光是在避障方面就花去了我們大部分時(shí)間,同時(shí)在尋光方面,由于光強(qiáng)的不確定性,必須經(jīng)過一次次的調(diào)試才能使小車和太陽能板正對光源。這一個又一個的難題不斷的出現(xiàn)在我們面前,但我們并沒有選擇放棄,而是不斷的進(jìn)行著嘗試,不斷的改變,終于在我們團(tuán)隊(duì)堅(jiān)持不懈的女里下完成了這次設(shè)計(jì)。因?yàn)檫@次設(shè)計(jì)出的作品并不是很完善,我們?nèi)詫⒗^續(xù)努力,爭取把小車的個方面內(nèi)容都加以完善并增加上新的內(nèi)容。通過這此設(shè)計(jì)讓我們知道了實(shí)踐同理論聯(lián)系的重要性,我們應(yīng)該抓住機(jī)會多參加此類的競賽,這不僅能過豐富你的動手能力,還能學(xué)到很多書本上學(xué)不到的東西。