謝元成
廣州工程技術職業(yè)學院機電工程學院,廣東廣州,510075
單片機的學習跟平常學習的很多課程是完全不一樣的,它既要求學習者掌握相關的硬件知識,還要求學習者必須掌握相關的軟件知識,而且還必須對硬件和軟件相結(jié)合后多實踐。對于想掌握單片機技術的初學者或者其他工程技術人員,可以通過學習單片機控制循跡小車的方式,理解和掌握單片機技術的基本規(guī)律及應用。
以單片機為核心控制器件,在選擇單片機的過程中,最好選擇帶有模數(shù)轉(zhuǎn)換處理的芯片。單片機控制的優(yōu)勢就是接口豐富,可以根據(jù)需要編寫程序,電路簡潔實用,很多其他的芯片都可以直接跟單片機對接。紅外識別模塊主要用于路徑的識別,循跡路徑用對比度大的黑白路徑,根據(jù)反射光的強弱來分辨路徑。電機驅(qū)動模塊除了提供動力外,可以實現(xiàn)前進、后退功能,如果安裝“麥克納姆”輪,還可以實現(xiàn)整車的原地掉頭及橫向運行。防撞避障模塊可以采用超聲波或者紅外線對管,以判斷障礙物的距離,從而實現(xiàn)防撞和避障功能。數(shù)碼顯示模塊可以選用簡單的數(shù)碼管,也可以選用相對復雜的LCD顯示器件,主要功能就是顯示小車目前的運行狀態(tài)。聲光報警模塊可以采用簡單的蜂鳴器和LED二極管,以實現(xiàn)聲光報警和提醒功能。遠程遙控模塊采用普通的紅外遙控器,以增加控制的便利性和趣味性。
計算機包括五個組成部分,分別是中央控制器、存儲器、時鐘器、總線、接口。隨著工業(yè)的發(fā)展、制造工藝的提升,計算機的體積越來越小,現(xiàn)在已經(jīng)可以把計算機的五個組成部分集成在一塊芯片上,這種芯片就是單片機[1]。由于可以編寫程序?qū)崿F(xiàn)不同的控制功能,它可以讓電腦設計變得簡潔高效,所以在工業(yè)控制、家用電器、智能汽車、電子通信等領域都有廣泛的應用。
(1)中央處理器:中央處理器也就是CPU,它主要負責從存儲器中讀取指令、運算和處理指令及數(shù)據(jù),根據(jù)處理和運算的結(jié)果向其他部件發(fā)送控制信號,中央處理器的作用類似于人類的大腦。
(2)存儲器:存儲器用來存儲代碼和數(shù)據(jù)。存儲器主要分兩種,即程序存儲器和隨機存儲器,存儲器的容量也就是能夠存儲數(shù)據(jù)的單元容量,每個存儲單元都有一個對應的地址編碼,數(shù)據(jù)的存放和讀取都要進行尋址,C語言在編寫程序時基本不需要考慮存儲單元的地址編號,軟件會自動執(zhí)行存儲單元的尋址。
(3)時鐘器:時鐘器的主要作用是產(chǎn)生時鐘信號,時鐘信號經(jīng)過處理以后也就可以用作定時信號,可以用來作為跟時間相關的基本信號。時鐘信號也是數(shù)字電路中所有器件統(tǒng)一工作的節(jié)拍器,它的快慢決定著整個計算機處理的節(jié)拍和快慢[2]。
(4)總線:總線的主要作用是把計算機內(nèi)部的各個組成部分連接成一個有機的整體。各個部件之間數(shù)據(jù)的傳送依靠總線來進行,總線又分為控制總線和數(shù)據(jù)總線,分別用來傳輸控制信號和數(shù)據(jù)信號。總線傳輸信號的公共通道還簡化了計算的硬件設計和系統(tǒng)結(jié)構(gòu),使得系統(tǒng)的性能和擴充性更好。
(5)接口:初學者很多時候認為計算機的組成中一定有顯示器和鍵盤,其實顯示器和鍵盤并不是計算機五個組成部分之一,計算機需要顯示時可以通過接口連接顯示器件,根據(jù)顯示內(nèi)容的復雜性選擇相應的顯示器件。單片機通過接口來與外界進行相應的通信[3]。
(1)電源:所有的電子器件只有在提供相應電源的情況下才能正常工作,這個條件也是所有電子設備的基本條件。
(2)時鐘信號:時鐘信號是單片機的節(jié)氣器,也是單片機中定時信號的基本素材,沒有時鐘信號,單片機是沒有辦法正常工作的。
(3)復位電路:復位電路確保單片機在通電時從默認的狀態(tài)開始工作,或者在整個電路死機的情況下,從默認的狀態(tài)下開始工作。復位電路主要有兩種,即上電復位和按鍵復位。
紅外光是波長介于0.76微米至1000微米的不可見光,紅外發(fā)射二極管所發(fā)出的紅外光集中在800微米至1000微米。紅外對管在設計時可以根據(jù)需要采用直射式和反射式,紅外發(fā)射管一般是二極管,而接收管一般是晶體三極管。當紅外接收管接收到發(fā)射二極管的紅外光時,接收管控制電路輸出端會產(chǎn)生明顯的電平跳變,利用這個跳變信號,來控制相應的設備,實現(xiàn)一定程度的自動控制[4]。
循跡小車上面安裝的紅外對管一般采用的方式是反射式紅外對管,小車的地面路徑一般是在白色地面上畫一條黑色的路徑,紅外發(fā)射二極管發(fā)射的紅外光碰到白色地面或者黑色地面時,所反射回來的紅外光光量有著明顯的差別,紅外晶體接收管接收到的紅外光光量,也就隨著地面路徑顏色的不同而有著明顯的區(qū)別。為了確保循跡小車沿著規(guī)劃的路徑運行,在循跡小車上的左右兩側(cè)各裝一對紅外發(fā)射接收管。當循跡小車向左偏移軌跡時,右側(cè)的紅外管可以識別到,同理,當循跡小車向右偏移軌跡時,左側(cè)的紅外管可以識別到。
紅外對管的工作原理很簡單,有二極管和三極管的基礎之后,很容易理解紅外對管的工作原理。在具體學習的過程中,可以先搭建一個具體的電路,通過對具體電路的輸入輸出電平進行測量,來判斷紅外管的工作狀態(tài)。
直流電機是一種將直流電直接轉(zhuǎn)換成機械轉(zhuǎn)矩的電機,直流電機調(diào)速性能好,在負載較大的情況下,可以通過改變直流電機的轉(zhuǎn)速,達到均勻、平滑無級的調(diào)速,調(diào)速范圍也比較寬。直流電機的另外一個特點就是起動轉(zhuǎn)矩比較大,能夠帶動較大的負載。直流電機控制容易,結(jié)構(gòu)簡單,在很多地方有著廣泛的應用,在循跡小車的電機選擇中,很多就選擇了直流電機。
步進電機是一種精密的控制儀器,在工業(yè)中應用十分廣泛,例如工業(yè)機器人、打印機、機械硬盤等。步進電機的工作原理是讓步進電機的定子產(chǎn)生一個旋轉(zhuǎn)的磁場,這個旋轉(zhuǎn)磁場跟三相異步電機原理是有區(qū)別的。三相異步電機的旋轉(zhuǎn)磁場是通過加入三相交流電來實現(xiàn)的,而步進電機定子的旋轉(zhuǎn)磁場是通過給定的脈沖來實現(xiàn)的。三相異步電機的轉(zhuǎn)速和轉(zhuǎn)動的角度是很難直接控制的,而在步進電機中,這些很容易實現(xiàn),只需要通過給定脈沖的“個數(shù)”就可以控制步進電機的精確轉(zhuǎn)動角度,通過改變給定脈沖的頻率就可以改變步進電機的轉(zhuǎn)速[5]。但是,步進電機的體重相對比較大,它的轉(zhuǎn)動速度較慢,價格也比較高。
伺服電機是依靠脈沖來進行定位的,可以簡單理解為每輸入一個脈沖就可以旋轉(zhuǎn)一個脈沖的角度,從而實現(xiàn)準確的位移。但與步進電機不一樣的地方是伺服電機本身可以發(fā)出脈沖,每旋轉(zhuǎn)一個角度,可以發(fā)出對應的脈沖。這樣就可以形成一種“閉環(huán)控制”,相對步進電機的“開環(huán)控制”,伺服電機的位移角度控制也就更加精確。伺服電機在控制精確度、運行性能各方面都是優(yōu)于步進電機的,但是價格較高。在循跡小車的設計過程中,考慮到速度要求、精度要求、成本問題、重量要求,選擇了簡單的直流電機。
在設計中,可以選擇應用廣泛且較經(jīng)典的L293D芯片模塊。該模塊有四個輸入端和四個輸出端,通過單片機向L293D的輸入端發(fā)出高低控制電平,它的四個輸出端可以輸出相應的高低電平,四個輸出端可以連接兩個直流電機。在初學者學習時,首先構(gòu)建一個獨立的學習電路,這個電路要求盡量簡單,與系統(tǒng)里面的其他電路盡量是分隔的,以方便進行單個模塊的測試與學習,在實際實驗測試之前,可以通過仿真軟件先進行仿真測試,仿真測試通過之后再進行實際測試[6]。
單片機通過接收高低電平來檢測SW1的接通與閉合,從而決定向L293D發(fā)出正反轉(zhuǎn)信號,實現(xiàn)電機的正轉(zhuǎn)或者反轉(zhuǎn)。電阻R1模擬一個可調(diào)電阻,輸出電壓通過單片機內(nèi)部的模數(shù)轉(zhuǎn)換電路,轉(zhuǎn)換成相應大小的數(shù)據(jù)。通過這個數(shù)據(jù)向L293D電機模塊發(fā)出相應脈沖寬度,控制電機轉(zhuǎn)動速度。這樣一個簡單的電路,可以實現(xiàn)電機的轉(zhuǎn)動方向與轉(zhuǎn)動速度的模擬與檢測。
基于單片機的超聲波測距系統(tǒng),是利用單片機編程產(chǎn)生頻率為40kHz的方波,經(jīng)過發(fā)射驅(qū)動電路放大,使超聲波傳感器發(fā)射端振蕩,發(fā)射超聲波。超聲波經(jīng)反射物反射回來后,由傳感器接收端接收,再經(jīng)接收電路放大、整形,控制單片機中斷口。這種以單片機為核心的超聲波測距系統(tǒng)通過單片機記錄超聲波發(fā)射的時間和收到反射波的時間。當收到超聲波的反射波時,接收電路輸出端產(chǎn)生一個負跳變,在單片機的外部中斷源輸入口產(chǎn)生一個中斷請求信號,單片機響應外部中斷請求,執(zhí)行外部中斷服務子程序,讀取時間差,計算距離,結(jié)果輸出給LED顯示。利用單片機準確計時,測距精度高,而且單片機控制方便,計算簡單。許多超聲波測距系統(tǒng)都采用這種設計方法。
學生在繪制流程圖的時候,選擇一款自己喜歡的流程圖繪制軟件,可以提高自己的繪圖效率,用電腦繪制的流程圖也清晰、整潔,容易更改。在流程圖的繪制過程中,如果使用C語言進行程序編寫,要遵守流程圖的繪制規(guī)范,比如“矩形”“菱形”等,所表示的含義是不一樣的,“菱形”表示判斷,即“是”或者“否”。另外就是在流程圖繪制的時候,有主流程圖和子流程圖,最好分開繪制,子流程圖又有普通子流程圖和中斷子流程圖。主流程圖一般都是“閉合的”“循環(huán)的”,而子流程圖一般是流程式的,一般是可以“返回”的。
在單片機控制系統(tǒng)中,程序常用C語言編寫,匯編語言使用較少。C語言編寫程序相對簡單,不需要記住111條指令。編寫程序時,應先編寫并調(diào)試單個模塊,確保每個模塊正常運行后再編寫和調(diào)試整個系統(tǒng)程序。
循跡小車作為一種典型且實用的學習項目,可以使完成任務的過程中更加具有趣味性。學習者在完成循跡小車的具體項目任務時,不僅能夠提高對學習內(nèi)容的理解和掌握水平,還能夠培養(yǎng)分析問題、解決問題的思維能力和實踐操作的技能。