基于單片機(jī)的電動(dòng)模型汽車自動(dòng)控制
全國大學(xué)生電子設(shè)計(jì)競賽中的C題,要求設(shè)計(jì)一個(gè)以單片機(jī)為核心器件實(shí)現(xiàn)對行駛中的電動(dòng)模型汽車自動(dòng)控制系統(tǒng),控制過程是利用反射式光電檢測器采集數(shù)據(jù),通過軟件完成對電動(dòng)模型汽車在不同路段的行駛速度實(shí)時(shí)控制,用數(shù)碼管對指定行程和所用的時(shí)間進(jìn)行顯示,同時(shí)利用紅外數(shù)傳方式將在限速區(qū)、終點(diǎn)區(qū)和返回到起點(diǎn)區(qū)后的時(shí)間和距離數(shù)據(jù)向手持顯示裝置單向傳送。系統(tǒng)將鍵盤設(shè)在小汽車中對其速度的控制調(diào)整更加方便、更加精確。
方案論證
根據(jù)題目的基本要求,設(shè)計(jì)任務(wù)主要是完成電動(dòng)小汽車在規(guī)定行駛路線中的速度控制,根據(jù)不同的行駛路段采用變速行進(jìn),對行程中的有關(guān)數(shù)據(jù)進(jìn)行處理顯示。為了使汽車與固定點(diǎn)保持聯(lián)絡(luò),本系統(tǒng)加裝了紅外數(shù)碼傳感器裝置,以實(shí)現(xiàn)對汽車的行駛過程定位。下面對系統(tǒng)的實(shí)現(xiàn)方案進(jìn)行論證。
1.?dāng)?shù)據(jù)采集方案的選擇數(shù)據(jù)采集一般可采用以下幾種方案:(1)使用發(fā)光二極管和光敏三極管組合;(2)使用紅外發(fā)光二極管和接收管組合;(3)利用激光。
通過對比,在本設(shè)計(jì)中由于是近距離探測,我們采用方案二來完成數(shù)據(jù)的采集。由于紅外光的波長比可見光長,因此受可見光的影響較小。同時(shí)紅外系統(tǒng)還具有尺寸小、重量輕、能有效防止可見光波的干擾、對輔助裝置要求最少、對人眼無傷害等優(yōu)點(diǎn)。當(dāng)然紅外光也有一定的缺點(diǎn),如在潮濕的大氣、霧和云中傳播時(shí)會(huì)衰減,所以只適合于室內(nèi)通信。我們選用的反射式光電檢測器具有體積小、靈敏度高、線性好等特點(diǎn),外圍電路及電路設(shè)計(jì)簡單、安裝方便、電源要求不高、性能穩(wěn)定可靠,用它作為近距離傳感器是較理想的選擇。
2.顯示裝置的選擇車載顯示我們采用了數(shù)碼管,對時(shí)間和路程通過按鍵選擇顯示內(nèi)容。
3.通信方式的選擇可用無線電或紅外光方式,無線電方式通信距離較遠(yuǎn),但電路較復(fù)雜;而紅外光方式適合于近距離通信,電路較簡單。目前只考慮單向傳輸,所以我們選擇了紅外光作為載波來傳送信息。
4.電源供電及車載重量的選擇考慮電動(dòng)車馬力和車載重量及摩擦阻力等問題,電路器件應(yīng)從功耗小、體積小和重量輕三方面進(jìn)行選擇,所以電源采用6節(jié)5號電池組成9伏直流電源。
系統(tǒng)框圖及工作原理
上圖給出系統(tǒng)組成框圖,數(shù)據(jù)采集通過光電傳感器完成對不同標(biāo)志的檢測,并以電信號脈沖的形式送人單片機(jī)的INTO和Tl口。單片機(jī)對送來的信號進(jìn)行分析、運(yùn)算、處理,從Pl.1口輸出信號控制馬達(dá)的轉(zhuǎn)速,使電動(dòng)車的行駛速度得以調(diào)整;電動(dòng)車返回起點(diǎn)后,立即從單片機(jī)的串行通信口輸出數(shù)據(jù)顯示已行駛的距離和所用時(shí)間。另外,單片機(jī)從Pl.7口輸出數(shù)據(jù)通過紅外方式在指定位置向手持接收系統(tǒng)發(fā)送,手持接收系統(tǒng)也是由一單片機(jī)進(jìn)行數(shù)據(jù)處理,這樣我們可以隨時(shí)知道電動(dòng)車運(yùn)行的時(shí)間和位置情況。鍵盤是便于在調(diào)試時(shí)參數(shù)的設(shè)置,使小車的速度和位置更精確。
硬件原理分析及設(shè)計(jì)
由于跑道是白色的,在某些規(guī)定區(qū)域貼有黑色線條標(biāo)志,根據(jù)顏色對光的吸收和反射特性,光接收管在黑白區(qū)域的導(dǎo)通狀態(tài)不相同。當(dāng)小車在規(guī)定的跑道行駛時(shí),貼在小車底部的反射式光電檢測器就會(huì)作出不同的反應(yīng)。小車前端貼有一片光電傳感器,對線區(qū)的數(shù)據(jù)進(jìn)行采集,把變化的光信號轉(zhuǎn)換為電信號,此信號經(jīng)施密特觸發(fā)電路整形后,送入單片機(jī)的中斷端(INTO)。在小車的后輪上貼一白紙及輪框上也貼有一片光電傳感器,對車輪的轉(zhuǎn)數(shù)進(jìn)行采集,送進(jìn)計(jì)數(shù)器端口(Tl)。經(jīng)單片機(jī)處理以后,用P1.0、P1.1分別控制電機(jī)的轉(zhuǎn)向以及脈寬,車載顯示器在運(yùn)行過程中顯示通過地面標(biāo)志的數(shù)量。在車停止后,顯示小車通過全程的時(shí)間及里程,顯示部分設(shè)置兩個(gè)按鍵,一個(gè)用來重啟單片機(jī),另一個(gè)用來翻頁查看小車運(yùn)行過程中的各種參數(shù)。手持顯示部分是由一體化紅外接收頭將發(fā)送過來的串行數(shù)據(jù)送入單片機(jī),采取軟件上的模擬串行通信的手法,對指定位置的里程和運(yùn)行時(shí)間進(jìn)行顯示。
1.?dāng)?shù)據(jù)采集部分利用紅外反射式檢測器對黑色或白色有敏感反應(yīng)的特性,可完成數(shù)據(jù)的采集,上圖為數(shù)據(jù)采集電路原理圖。圖中1、2端為光發(fā)射,3、4端為光接收。當(dāng)光電反射器在黑白面上移動(dòng)時(shí),4端便得到一個(gè)變化的脈沖電壓。在對不同介質(zhì)材料進(jìn)行綜合比較后,我們選擇光電反射器離地面為0.5cm的數(shù)據(jù)為基準(zhǔn),此電壓經(jīng)過一個(gè)施密特電路整形后得到一TTL電平送單片機(jī)。
我們利用NE555定時(shí)器來構(gòu)成施密特電路,輸入輸出之間的遲滯回線特性關(guān)系如上圖所示。當(dāng)電壓由低向高變化時(shí):0<Vi<l/3VCC,Vo=“1”:l/3Vcc<Vi<2/3Vcc,Vo保持不變;Vi>2/3Vcc,Vo翻轉(zhuǎn)為“0”。當(dāng)電壓由高向低變化時(shí):2/3Vcc<Vi<Vcc,Vo=“0”;l/3Vcc<Vi<2/3Vcc,Vo保持不變;Vi<1/3Vcc,Vo翻轉(zhuǎn)為“l(fā)”。當(dāng)輸入低電平ViL為0.49V,高電平ViH為4.19V,壓差為3.70V。若Vcc=5V,有l(wèi)/3Vcc=1.67V,2/3Vcc=3.33V,能滿足要求。但為了適應(yīng)實(shí)際情況,采取可變參考電壓,改變NE555第⑤腳電壓,可取得不同的回差電壓(1/3Vcc),此電壓越大,電路抗干擾性越強(qiáng),但觸發(fā)靈敏度越低。綜合考慮,我們?nèi)、菽_電壓為3.60V,則l/3Vcc=1.2V,2/3Vcc=2.4V。參考圖2,當(dāng)光電傳感器檢測到黑線時(shí),第4端電壓為高電平4.19V,NE555的第②腳也為高電平,③腳輸出低電平“0”;反之,在白紙上時(shí),NE555的③腳輸出高電平“1”。利用下降沿可觸發(fā)AT89C51的中斷“0”。同樣,在黑色車輪上貼一白紙,轉(zhuǎn)動(dòng)時(shí)也有高低電平的變化,觸發(fā)AT89C51的定時(shí)器T1進(jìn)行計(jì)數(shù),對輪子轉(zhuǎn)過的圈數(shù)計(jì)數(shù),從而可得到小車的行駛速度和距離。
2.電機(jī)轉(zhuǎn)速控制小車運(yùn)行速度的測量是通過在后輪加上反光片,當(dāng)輪子轉(zhuǎn)動(dòng)時(shí),光電反射器會(huì)檢測到脈沖,利用單片機(jī)的一個(gè)計(jì)數(shù)器對車輪所轉(zhuǎn)的圈數(shù)進(jìn)行計(jì)數(shù),同時(shí)通過另一個(gè)計(jì)數(shù)器對時(shí)間進(jìn)行測量,結(jié)合兩個(gè)計(jì)數(shù)器的值,由單片機(jī)計(jì)算出小車運(yùn)行的速度,而里程則是由車輪的周長和所轉(zhuǎn)的圈數(shù)計(jì)算得出。
本系統(tǒng)在小車電機(jī)的控制部分利用8050、8550等不同三極管的組合,構(gòu)造一座“橋”,實(shí)現(xiàn)了對驅(qū)動(dòng)電機(jī)的輕松控制,電機(jī)驅(qū)動(dòng)電路如下圖,其控制過程如下:Pl.0為正反轉(zhuǎn)控制端,Pl.1為啟??刂贫恕?/p>
(1)Pl.1為高電平時(shí):當(dāng)Pl.0為低電平時(shí),則“向后”端為低電平,由Q51構(gòu)成的反相器使向前端為高電平。于是,Q52、Q53、Q54導(dǎo)通,Q55、Q56、Q57截止。其中Q52為激勵(lì)級,Q53、Q54為功放級。電流從+9V經(jīng)Q53到電機(jī)“+”端再到“-”端最后經(jīng)Q54人地端,電機(jī)正轉(zhuǎn);當(dāng)Pl.0為高電平時(shí),則反之,Q55、Q56、Q57導(dǎo)通,Q52、Q53、Q54截止,電機(jī)反轉(zhuǎn)。
(2)Pl.1為低電平時(shí),“向前”和“向后”端均為低電平,電機(jī)停轉(zhuǎn)。
該“橋”的優(yōu)點(diǎn)是原理簡單、易控制、帶負(fù)載能力強(qiáng)。在單片機(jī)的配合下,通過調(diào)脈寬的方法,實(shí)現(xiàn)了對驅(qū)動(dòng)電機(jī)的輕松調(diào)速,通過鍵盤對具體參數(shù)的修改,可以使小車適應(yīng)各種不同的電源。正因?yàn)椴扇×嗽擁?xiàng)技術(shù),使我們完成基本要求的過程變得簡單易行。
在速度控制方面,一般是通過改變加在電機(jī)兩端的電壓來實(shí)現(xiàn)的,可以是連續(xù)改變(加直流電壓),也可以是斷續(xù)改變(加脈沖電壓)。為了簡單實(shí)用我們采用了脈寬調(diào)速,脈沖寬度的變化可以通過硬件或軟件來實(shí)現(xiàn)。硬件實(shí)現(xiàn)是通過改變振蕩電路中RC參數(shù)來調(diào)整充放電時(shí)間;而軟件的做法是通過設(shè)置高電平及低電平的保持時(shí)間來達(dá)到。比較而言,軟件調(diào)整量化指標(biāo)更高、調(diào)整更可靠、更方便、更準(zhǔn)確。于是,鍵盤成了人機(jī)交流必不可少的器件。
脈沖頻率對電機(jī)轉(zhuǎn)速也有影響,脈沖頻率高連續(xù)性好,但帶負(fù)載能力差,頻率低則反之。經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),脈沖頻率在15~20Hz效果最佳。
脈寬調(diào)速實(shí)質(zhì)上是調(diào)節(jié)加在電機(jī)兩端的平均功率,通過計(jì)算可發(fā)現(xiàn)汽車的速度與脈寬成正比。
軟件編程時(shí)的考慮是設(shè)置脈寬這個(gè)變量,在P1.1的啟??刂贫水a(chǎn)生20Hz可調(diào)脈寬方波。
3.顯示與鍵盤顯示部分采取獨(dú)具創(chuàng)新的軟件技術(shù),僅使用三根線完成,即數(shù)據(jù)線、時(shí)鐘線及輸入輸出控制線,通過對單片機(jī)串口的編程,創(chuàng)造性地實(shí)現(xiàn)了鍵盤顯示與單片機(jī)之間的串行接口技術(shù)。外部硬件只使用兩片74LS164和一片74LS166完成,通過該接口,我們使用了8個(gè)LED管,可繼續(xù)擴(kuò)展,也可以與鍵盤接口,其原理圖見下圖。
同時(shí)我們還有另一套方案,就是當(dāng)單片機(jī)的串口被其他硬件占用時(shí),我們同樣可以僅使用一個(gè)I/O口,實(shí)現(xiàn)模擬串口功能,使硬件的應(yīng)用更靈活、更方便。我們已在本系統(tǒng)中使用了模擬串口技術(shù),實(shí)現(xiàn)了車載系統(tǒng)與手持顯示系統(tǒng)的數(shù)據(jù)傳遞。這正符合了當(dāng)今時(shí)代所追求的“盡量使用軟件實(shí)現(xiàn)硬件”的原則,大大降低了外設(shè)硬件的成本。
三線串行顯示/鍵盤原理:三線為DAT(P3.O)——串行輸入/輸出數(shù)據(jù)線、CLK(P3.1)——移位時(shí)鐘線、RD(P3.7)——輸入/輸出控制線。
RD為低電平時(shí)為顯示模式,數(shù)據(jù)線(DAT)輸出位碼和段碼,一共16位。數(shù)據(jù)送完后,在U2(74LS164)存放的是位碼,在Ul(74LS164)存放了段