邱永華
(廣東女子職業(yè)技術(shù)學(xué)院 廣東 廣州 510450)
單片機(jī)具有體積小、質(zhì)量輕和價(jià)格便宜等特點(diǎn),為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表和醫(yī)療器械了。單片機(jī)在各個(gè)領(lǐng)域中有著舉足輕重的作用,且在各式各樣的智能化產(chǎn)品中得到廣泛的應(yīng)用。智能小車控制系統(tǒng)就是基于單片機(jī)來設(shè)計(jì)的,實(shí)現(xiàn)小車自動(dòng)尋跡、角度判斷和聲光提示等功能。
設(shè)計(jì)并制作一個(gè)電動(dòng)車蹺蹺板,在蹺蹺板起始端A一側(cè)裝有可移動(dòng)的配重。配重的位置可以在從始端開始的200~600 m m范圍內(nèi)調(diào)整,調(diào)整步長不大于50 m m;配重可拆卸。電動(dòng)車從起始端A出發(fā),可以自動(dòng)在蹺蹺板上行駛。電動(dòng)車蹺蹺板起始狀態(tài)和平衡狀態(tài)示意圖分別如圖1和圖2所示。
圖1 起始狀態(tài)示意圖
圖2 平衡狀態(tài)示意圖
2.1.1 基本要求
在不加配重的情況下,電動(dòng)車完成以下運(yùn)動(dòng):
1)電動(dòng)車從起始端A出發(fā),在30 s內(nèi)行駛到中心點(diǎn)C附近;
圖3 自動(dòng)駛上蹺蹺板示意圖
2)60 s之內(nèi),電動(dòng)車在中心點(diǎn)C附近使蹺蹺板處于平衡狀態(tài),保持平衡5 s,并給出明顯的平衡指示;
3)電動(dòng)車從2)中的平衡點(diǎn)出發(fā),30 s內(nèi)行駛到蹺蹺板末端B處(車頭距蹺蹺板末端B不大于50 m m);
4)電動(dòng)車在B點(diǎn)停止5 s后,1 m in內(nèi)倒退回起始端A,完成整個(gè)行程;
5)在整個(gè)行駛過程中,電動(dòng)車始終在蹺蹺扳上,并分階段實(shí)時(shí)顯示電動(dòng)車行駛所用的時(shí)間。
2.1.2 發(fā)揮部分
將配重固定在可調(diào)整范圍內(nèi)任意指定位置,電動(dòng)車完成以下運(yùn)動(dòng):
1)將電動(dòng)車放置在地面距離蹺蹺板起始端A點(diǎn)300 m m以外、90度扇形區(qū)域內(nèi)某一指定位置(車頭朝向蹺蹺板),電動(dòng)車能夠自動(dòng)駛上蹺蹺板,如圖3所示;
2)電動(dòng)車在蹺蹺板上取得平衡,給出明顯的平衡指示,保持平衡5 s以上;
3)將另一塊質(zhì)量為電動(dòng)車質(zhì)量10%~20%的塊狀配重放置在A至C間指定的位置,電動(dòng)車能夠重新取得平衡,給出明顯的平衡指示,保持平衡5 s以上;
4)電動(dòng)車在3 m in之內(nèi)完成1)~3)全過程。
為了讓電動(dòng)車能保持在蹺蹺板上行駛不致跌落,可以在板上設(shè)置黑色的引導(dǎo)線,利用安裝在電動(dòng)車底板的紅外傳感器來檢測引導(dǎo)線的位置信號并傳送給控制器,控制器通過對電機(jī)運(yùn)行的控制來對電動(dòng)車的運(yùn)動(dòng)軌跡進(jìn)行調(diào)整,以此實(shí)現(xiàn)電動(dòng)車在蹺蹺板上沿指定的路線行駛。
為了能檢測到蹺蹺板的平衡狀態(tài),利用裝載在電動(dòng)車上的光電編碼器和垂直重?cái)[組成的角度傳感器,檢測重?cái)[的擺動(dòng)偏移量,此擺動(dòng)偏移量經(jīng)光電編碼器和LM 629的處理,生成脈沖信號送至控制器,控制器根據(jù)此信號判斷蹺蹺板是否處于平衡狀態(tài),并控制電動(dòng)車做出相應(yīng)的運(yùn)動(dòng)。
控制器通過對各種信號的融合分析,將有關(guān)狀態(tài)信息送到液晶顯示模塊和聲光指示模塊進(jìn)行提示。系統(tǒng)總體設(shè)計(jì)框圖如圖4所示。
圖4 系統(tǒng)總體設(shè)計(jì)框圖
系統(tǒng)控制器主要進(jìn)行紅外、角度傳感器信號檢測和處理、電機(jī)控制、時(shí)間的顯示以及達(dá)到平衡位置的聲光提示。采樣Cygnal公司的C8051F020單片機(jī)作為系統(tǒng)控制器。C8051F020不僅具有算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,運(yùn)行速度快,結(jié)構(gòu)簡單,功能強(qiáng)大的特點(diǎn),并且具有高可靠性和良好的經(jīng)濟(jì)性。同時(shí)具有PWM脈沖輸出,便于對智能小車的速度控制。
雖然步進(jìn)電機(jī)的控制可調(diào)占空比較直流電機(jī)的更為簡單,但是其調(diào)速性能與運(yùn)行穩(wěn)定性不及直流電機(jī),所以我們選擇使用直流電機(jī)進(jìn)行調(diào)速控制。電動(dòng)車前輪和后輪分別采用獨(dú)立的直流電機(jī)驅(qū)動(dòng),其中前輪電機(jī)控制轉(zhuǎn)向,后輪電機(jī)控制速度。電動(dòng)車可以靈活地前進(jìn)和后退。
采用集成芯片L298及其外部輔助電路和電機(jī)構(gòu)成驅(qū)動(dòng)電路。L298中有兩套H橋電路,為了達(dá)到較好的控制效果,同時(shí)減少小車的總耗時(shí),使用PWM波調(diào)速,PWM信號由單片機(jī)的硬件產(chǎn)生,通過非門反相接入L298,使單片機(jī)輸出的3.3 V電平轉(zhuǎn)化為5 V電平供給L298。L298集成芯片是雙通道的直流電機(jī)驅(qū)動(dòng)芯片。它最大能輸出2 A電流,供電電壓范圍4.5~36 V。
3.3.1 循線檢測模塊
循線檢測可以實(shí)現(xiàn)電動(dòng)車沿著黑線軌跡運(yùn)動(dòng),其實(shí)現(xiàn)方案采用紅外光電傳感器,當(dāng)紅外線發(fā)射出去,被黑線吸收時(shí),傳感器收不到反射紅外線,產(chǎn)生一個(gè)低電平,而當(dāng)紅外線通過白紙,沒有被吸收,傳感器收到發(fā)射回來的紅外線,產(chǎn)生一個(gè)高電平,單片機(jī)根據(jù)高低電平來判斷路面軌跡,保證小車沿著黑線行駛。此方案可以降低可見光的干擾,靈敏度高同時(shí)其尺寸小,質(zhì)量輕,電路簡單,安裝方便。
3.3.2 角度傳感器模塊
用于蹺蹺板平衡狀態(tài)檢測的角度傳感器模塊的原理圖如圖5所示。
圖5 角度傳感器模塊
由于LM 629具有增量式EN C接口,所以角度傳感器輸出的檢測信號可以通過LM 629進(jìn)行脈沖采集處理。LM 629是為使用增量式編碼器作位置反饋信號的各種直流電機(jī)伺服系統(tǒng)而設(shè)計(jì)的,可完成高性能數(shù)字控制所需的集中、實(shí)時(shí)的計(jì)算任務(wù),可以隨時(shí)向上位機(jī)反饋各運(yùn)動(dòng)狀態(tài)信息。
本系統(tǒng)采用發(fā)光二極管和蜂鳴器進(jìn)行聲光指示,當(dāng)電動(dòng)車停止、轉(zhuǎn)向或者使蹺蹺板到達(dá)平衡狀態(tài)時(shí),會發(fā)出聲光指示;液晶顯示模塊能夠顯示電動(dòng)車在各段路程的行駛時(shí)間。
直流電機(jī)的驅(qū)動(dòng)控制采取脈沖寬度調(diào)制(PWM) 方式,驅(qū)動(dòng)電路則采用H橋電路。假設(shè)直流電機(jī)電樞繞組兩端的電壓平均值為Uo,則
式(1)中:占空比a是一個(gè)重要參數(shù),在電源電壓Us不變的情況下,改變a值就可以改變電樞端電壓的平均值,從而達(dá)到調(diào)速的目的,這就是PWM調(diào)速原理。改變占空比的方法有以下3種:
1)定寬調(diào)頻法:保持t1不變,只改變t2,周期和頻率也隨之改變;
2)調(diào)寬調(diào)頻法:保持t2不變,只改變t1,周期和頻率也隨之改變;
3)定頻調(diào)寬法:保持周期和頻率不變,同時(shí)改變 t1和 t2。
由于前兩種方法在調(diào)速過程中會改變脈沖周期和頻率,但脈沖頻率與系統(tǒng)固有頻率接近時(shí),將引起振蕩,故使用較少。
H橋是電機(jī)實(shí)現(xiàn)正反轉(zhuǎn)的關(guān)鍵。L298具有兩套H橋電路,通過改變它的控制信號的輸入方式,可以實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)。
經(jīng)過計(jì)算可知,蹺蹺板最大的傾斜角約為5度。安裝在電動(dòng)車上的重?cái)[由于始終要保持鉛直狀態(tài),一旦蹺蹺板不平衡,重?cái)[就會偏移鉛直方向一定的角度擺動(dòng),直到重?cái)[再次回到鉛直狀態(tài)位置不動(dòng)為止,這時(shí)蹺蹺板也正處于平衡狀態(tài)。重?cái)[擺動(dòng)期間,光電編碼器會檢測到重?cái)[偏移鉛直方向的角度,并將此角度值信號送至LM 629。
LM 629會根據(jù)重?cái)[的偏移角度值大小產(chǎn)生不同數(shù)量的脈沖。由反復(fù)調(diào)試測得,當(dāng)傾斜角為5度的時(shí)候,LM 629大約產(chǎn)生112個(gè)脈沖。單片機(jī)根據(jù)這些脈沖信號分析蹺蹺板的狀態(tài),并通過PCA0口產(chǎn)生不同占空比的PWM信號,控制直流電動(dòng)車的轉(zhuǎn)速和方向。
通過頻密對光電編碼器產(chǎn)生信號的多次采樣和求平均值,可以準(zhǔn)確地得到蹺蹺板平衡狀況的信息,從而通過單片機(jī)控制直流電機(jī)產(chǎn)生相應(yīng)的動(dòng)作,例如:減慢電動(dòng)車的運(yùn)行速度,并根據(jù)重?cái)[的擺向向前或者向后緩慢尋找蹺蹺板的平衡狀態(tài),并在確認(rèn)蹺蹺板處平衡狀態(tài)的時(shí)候停止運(yùn)行,給出平衡狀態(tài)提示。實(shí)際上,這個(gè)檢測蹺蹺板平衡狀態(tài)的過程,就是一個(gè)直流動(dòng)機(jī)的伺服控制過程。采用伺服控制的方式,形成一種反饋機(jī)制,可以使得直流電動(dòng)車能夠準(zhǔn)確地找到蹺蹺板的平衡狀態(tài)。
在電動(dòng)車底板前后各安裝3個(gè)紅外光電傳感器,單片機(jī)的I/O口通過檢測到的3個(gè)傳感器信號(前進(jìn)時(shí)檢測底板前面3個(gè)傳感器的信號,倒退時(shí)檢測底板后面3個(gè)傳感器的信號)來判斷電動(dòng)車的行駛狀態(tài),通過控制電機(jī),調(diào)整電動(dòng)車的行駛,使電動(dòng)車沿著黑線軌跡行駛,以不至于駛出蹺蹺板。紅外傳感器真值表如表1(表中X代表0或1)所示:
以電動(dòng)車前進(jìn)時(shí)為例,當(dāng)車子往左偏出軌道時(shí),左邊的光電傳感器被黑色紙帶遮蔽,輸出為低電平,單片機(jī)接收到該信號,控制電機(jī)正轉(zhuǎn),使車子往右偏回軌道,傳感器回到白紙區(qū)輸出為高電平,電機(jī)停止轉(zhuǎn)動(dòng),車子直線前進(jìn)。車子右偏時(shí)的狀態(tài)與左偏狀態(tài)相反。
表1 紅外傳感器真值表
5.1.1 單片機(jī)C8051F020最小系統(tǒng)電路的設(shè)計(jì)
最小系統(tǒng)板將c8051f020的AD、DA、UART等片上外設(shè)都擴(kuò)展出接口,而利用外部中斷IN T 0擴(kuò)展了PS/2鍵盤接口,用P3口擴(kuò)展了LCD模塊,使得最小系統(tǒng)具有了友好的人家界面,而且也為該單片機(jī)豐富的片上資源提供了接口,如圖6所示。
圖6 單片機(jī)最小系統(tǒng)
5.1.2 電機(jī)驅(qū)動(dòng)模塊電路的設(shè)計(jì)
一個(gè)電動(dòng)小車整體的運(yùn)行性能,首先取決于它的電池系統(tǒng)和電機(jī)驅(qū)動(dòng)系統(tǒng)。電動(dòng)小車的驅(qū)動(dòng)系統(tǒng)一般由控制器、功率變換器及電動(dòng)機(jī)3個(gè)主要部分組成(如圖7所示)。電動(dòng)小車的驅(qū)動(dòng)不但要求電機(jī)驅(qū)動(dòng)系統(tǒng) 具有高轉(zhuǎn)矩重量比、寬調(diào)速范圍、高可靠性,而且電機(jī)的轉(zhuǎn)矩-轉(zhuǎn)速特性受電源功率的影響,這就要求驅(qū)動(dòng)具有盡可能寬的高效率區(qū)。我們所使用的電機(jī)一般為直流電機(jī),主要用到永磁直流電機(jī)、伺服電機(jī)及步進(jìn)電機(jī)3種。直流電機(jī)的控制很簡單,性能出眾,直流電源也容易實(shí)現(xiàn)。
電機(jī)驅(qū)動(dòng)芯片采用專用芯片L298N。L298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)的專用驅(qū)動(dòng)器,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)T T L邏輯電平信號,可驅(qū)動(dòng)46 V、2 A以下的電機(jī)。L298可驅(qū)動(dòng) 2個(gè)電機(jī),OUTl、OUT2和 OUT3、OUT4之間分別接2個(gè)電動(dòng)機(jī)。5、7、10、12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn),EN A,EN B接控制使能端,控制電機(jī)的停轉(zhuǎn)。
由于電機(jī)在正常工作時(shí)對電源的干擾很大,只用一組電源時(shí)會影響單片機(jī)的正常工作。所以選用雙電源供電。一組5 V電源給單片機(jī)和控制電路供電,另外一組5 V、9 V電源給L298N的+VSS、+VS供電。電源電路如圖8所示。
另外,由于本系統(tǒng)的特殊需要,小車在達(dá)到平衡前需要很慢的速度,只將PWM波的占空比降下來是不行的,因?yàn)楫?dāng)占空比下降,小車雖然速度變慢,但驅(qū)動(dòng)能力同時(shí)也下降,以這種方式上坡時(shí)很容易停止工作,這里我們在電機(jī)和輪子間加入了減速器,電機(jī)很快的轉(zhuǎn)速通過減速器后輪子轉(zhuǎn)速變慢,這實(shí)際上是降低了小車的最大速度,以此來保證小車在最慢速度時(shí)仍有很強(qiáng)的驅(qū)動(dòng)能力。
5.1.3 循線檢測電路的設(shè)計(jì)
紅外傳感器檢測黑線的電路原理圖見圖9。
圖7 電機(jī)驅(qū)動(dòng)模塊電路
圖8 電源電路
圖9 紅外傳感器檢測黑線電路圖
5.1.4 蹺蹺板平衡狀態(tài)檢測電路的設(shè)計(jì)
由于大部分的檢測控制任務(wù)均由LM 629內(nèi)部功能塊完成,因此其外部電路非常簡單,基本上只需要跟上位的單片機(jī)、電機(jī)驅(qū)動(dòng)器和光電編碼器做好接口即可。用光電編碼器對蹺蹺板的平衡狀態(tài)進(jìn)行檢測的電路原理圖如圖 10所示。
圖10 蹺蹺板平衡狀態(tài)檢測電路
5.1.5 顯示模塊電路的設(shè)計(jì)
液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點(diǎn)。12862B可以顯示2行16個(gè)字符,液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號等,每一個(gè)字符都有一個(gè)固定的代碼。本系統(tǒng)在12862B液晶上顯示時(shí)間,其電路原理圖見圖11。
5.2.1 整體軟件設(shè)計(jì)
軟件設(shè)計(jì)采用模塊化思想設(shè)計(jì),與硬件設(shè)計(jì)相對應(yīng),分成黑線檢測模塊、平衡狀態(tài)檢測模塊、顯示模塊和語音提示模塊。本系統(tǒng)的整體軟件流程圖見圖12。
圖11 12862B液晶顯示模塊電路原理圖
5.2.2 循線檢測的軟件設(shè)計(jì)
通過檢測黑色引導(dǎo)線的軌跡,控制電機(jī)的左右轉(zhuǎn),實(shí)現(xiàn)車子沿著指定軌跡行駛。循線檢測的程序框圖如圖13所示。
5.2.3 蹺蹺板平衡狀態(tài)檢測的軟件設(shè)計(jì)
這一過程的軟件設(shè)計(jì)思想為:通過頻密對光電編碼器產(chǎn)生信號的多次采樣和求平均值,可以準(zhǔn)確得到有關(guān)蹺蹺板平衡狀況的信息,根據(jù)此信息通過單片機(jī)的PCA0口產(chǎn)生不同占空比的PWM信號,控制直流電動(dòng)車的轉(zhuǎn)速和方向,例如減慢電動(dòng)車的運(yùn)行速度,并根據(jù)重?cái)[的擺向向前或者向后緩慢尋找蹺蹺板的平衡狀態(tài),并在確認(rèn)蹺蹺板處平衡狀態(tài)的時(shí)候停止運(yùn)行,給出平衡狀態(tài)提示。程序流程圖參看表2。
用刻度尺測出起點(diǎn)線到終點(diǎn)線的實(shí)際距離,并記錄。將車子放在起跑線上,撥動(dòng)開關(guān),同時(shí)按下秒表開始計(jì)時(shí),車子開始行駛,并讀出車子停止時(shí),顯示時(shí)間,記錄于表2(表中數(shù)據(jù)為多次測量的平均值,實(shí)測距離為電動(dòng)車車頭與A處的距離):
從以上數(shù)據(jù)分析,無論在無加配重或有加配重的情況下,電動(dòng)車都能沿指定的路線在蹺蹺板上行走,并能在規(guī)定的時(shí)間范圍內(nèi)走完規(guī)定的路程段,而且能夠在蹺蹺板到達(dá)平衡狀態(tài)時(shí)保持該狀態(tài)5 s或5 s以上。
圖13 循線檢測的程序框圖
表2 測試數(shù)據(jù)
本系統(tǒng)以單片機(jī)C8051F020最小系統(tǒng)為核心控制,利用各種傳感器的檢測技術(shù),并且配合程序設(shè)計(jì),實(shí)現(xiàn)了電動(dòng)車在蹺蹺板上的正確行駛,實(shí)現(xiàn)了對蹺蹺板平衡狀態(tài)的檢測并控制電動(dòng)車作出相應(yīng)的動(dòng)作響應(yīng),完成了設(shè)計(jì)要求。電動(dòng)車蹺蹺板系統(tǒng)控制不只是一個(gè)簡單的電子控制問題,它涉及了機(jī)械學(xué),電磁學(xué),力學(xué)等方面的知識,并與單片機(jī)相配合,實(shí)現(xiàn)精確控制。
[1]全國大學(xué)生電子設(shè)計(jì)競賽組委會.全國大學(xué)生電子設(shè)計(jì)競賽獲獎(jiǎng)作品匯編[M].北京:北京理工大學(xué)出版社,2004.
[2]黃智偉 .全國大學(xué)生電子設(shè)計(jì)競賽訓(xùn)練教程[M].北京:電子工業(yè)出版社,2005.
[3]楊振江.流行單片機(jī)實(shí)用子程序及應(yīng)用實(shí)例[M].西安:西安電子科技大學(xué)出版社,2002.
[4]潘琢金譯.C8051F020/1/2/3混合信號ISP FLASH微控制器數(shù)據(jù)手冊[EB/OL].[2005].新華龍電子有限公司http://www.xhl.com.cn.
[5]何希才,薛永毅.傳感器及其應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2004.