1 引言 隨著微電子技術的不斷發展,微處理器芯片的集成程度越來越高,單片機已可以在一塊芯片上同時集成CPU、存儲器、定時器/計數器、并行和串行接口、看門狗、前置放大器、A/D轉換器、D/A轉換器等多種電路,這就很容易將計算機技術與測量控制技術結合,組成智能化測量控制系統。這種技術促使機器人技術也有了突飛猛進的發展,目前人們已經完全可以設計并制造出具有某些特殊功能的簡易智能機器人。 2 設計思想與總體方案 2.1 簡易智能機器人的設計思想 本機器人能在任意區域內沿引導線行走,自動繞障,在有光源引導的條件下能沿光源行走。同時,能檢測埋在地下的金屬片,發出聲光指示信息,并能實時存儲、顯示檢測到的斷點數目以及各斷點至起跑線間的距離,最后能停在指定地點,顯示出整個運行過程的時間。 2.2 總體設計方案和框圖 本設計以AT89C5l單片機作為檢測和控制核心。采用紅外光電傳感器檢測路面黑線及障礙物,使用金屬傳感器檢測路面下金屬鐵片,應用光電碼盤測距,用光敏電阻檢測、判斷車庫位置,利用PWM(脈寬調制)技術動態控制電動機的轉動方向和轉速。通過軟件編程實現機器人行進、繞障、停止的精確控制以及檢測數據的存儲、顯示。通過對電路的優化組合,可以最大限度地利用51單片機的全部資源。 P0口用于數碼管顯示,P1口用于電動機的PWM驅動控制,P2,P3口用于傳感器的數據采集與中斷控制。這樣做的優點是:充分利用了單片機的內部資源,降低了總體設計的成本。該方案總體方案見圖1。 此系統的硬件部分由單片機單元、傳感器單元、電源單元、聲光報警單元、鍵盤輸入單元、電機控制單元和顯示單元組成,如圖2所示。 本系統采用AT89C51單片機作為中央處理器。其主要任務是掃描鍵盤輸入的信號啟動機器人,在機器人行走過程中不斷讀取傳感器采集到的數據,將得到的數據進行處理后,根據不同的情況產生占空比不同的PWM脈沖來控制電機,同時將相關數據送顯示單元動態顯示,產生聲光報警信號。其中,P0用于數碼管動態顯示,P1.0一P1.5控制2個電機,P1.6、P1.7為獨立式鍵盤接口,P2接傳感器,P3.2接計里程的光電碼盤,P3.7接聲光報警單元,P3.4、P3.5、P3.6接用于顯示斷點數目的發光二極管。 3.2 電機控制單元 本機器人采用了雙電機雙輪驅動的小車作為其底座。2個電機分別獨立控制其左右兩邊的車輪,靠兩邊電機的轉速的不同來實現轉彎功能,還可讓其原地轉彎,便于控制。而傳統的小車是靠動力電機和轉向電機驅動,轉彎角度難以控制,不便于使用。 電機控制電路采用大功率對管BDl39、BDl40組成的H型驅動電路,通過單片機產生占空比不同的PWM脈沖,精確調整電機的轉速。這種電路由于工作在晶體管飽和或截止狀態,避免了在線性放大區工作時晶體管的管耗,可以最大限度地提高效率;H型電路保證了可以簡單地實現電機轉速和方向的控制;電子開關的速度和穩定性也完全可滿足需要,整套驅動電路是一種被廣泛采用的電機驅動技術。電路見圖3。 3.3 傳感器單元 整個機器人共采用了9個傳感器,分布在整個機器人的不同部位,相互配合起不同的作用,見圖4。 傳感器1置于機器人正前方朝下的金屬探測傳感器,用于探測金屬。 傳感器2置于機器人正前方朝前的超聲波傳感器,用于檢測障礙物。超聲波來源于555產生40 kHz的方波信號,經超聲波發射頭發出。發射頭不斷發出信號,當遇到障礙物時,信號會被反射回來,從而接收頭會接受到信號,將信號送入單片機進行相應的判斷和處理。 傳感器3置于機器人正前方朝下的紅外光電傳感器,用于檢測停止線。紅外發射管發出信號,經不同的反射介質反射,根據紅外接收管是否接收到信號做出相應的判斷。 傳感器4、5置于機器人底座下方朝下的紅外光電傳感器,用于檢測地面的引導線,原理同傳感器3。 傳感器6、7置于機器人正前方朝前的光敏電阻傳感器,用于尋找光源。當機器人前方有光源照射時,光敏電阻的大小將會改變,將2個傳感器的改變量進行比較處理后送入單片機,單片機將會產生相應的調整信號,使機器人朝光強的方向行走。 傳感器8置于機器人后方兩側朝外的超聲波傳感器,用于在機器人遇到障礙物時的轉彎處理,判斷機器人是否完全繞開障礙物,原理同傳感器2。 傳感器9置于機器人正后方的光電碼盤,用于計里程,借助于鼠標原理,選用直徑為2.6 cm的塑料小輪自制光電碼盤,經過打磨使其周長為8 cm,再在該小輪上打等距離的8個孔,如圖5所示。最小測距精度可達到1 cm,足以滿足要求,兩側裝上光電傳感器,將其安裝在車尾,使之與車的行駛同步。就實際情況自制出來的各個孔之間的距離無法精確相等,但經過具體測量該光電碼盤,能保證行駛50 cm產生50個脈沖,于是采用其作為計算距離的基準單位。在直道區,可由該電路產生的脈沖數,計算出鐵片中心線至起跑線間的距離。 3.4 鍵盤輸入單元 鍵盤輸入單元采用獨立式鍵盤,由2個按鍵組成,其中一個為啟動鍵,另一個為顯示切換鍵,當機器人行走完全程后,按下該鍵,將顯示整個行走過程的時間。 3.5 顯示單元 顯示單元由2個7段數碼管組成,為了減少整個系統的功耗,采用了由單片機軟件譯碼,動態顯示,實時顯示每個斷點到起點的距離以及整個運行過程的時間。 3.6 聲光報警單元 用555作為振蕩源,用單片機觸發振蕩源驅動電磁訊響器作為聲音指示器和1只發光二極管作為光指示裝置,從而組成聲光報警單元。 3.7 電源單元 本系統采用2套電源分別對電機和控制電路進行單獨供電。系統控制電路采用經7805穩壓后的輸出供電(5V),電機則采用4節AA電池來供電。 4 系統的軟件設計 該系統配套的軟件程序采用模塊結構,由C語言編寫完成。主要由初始化程序、偏道調整程序、偏離光源調整程序、聲光指示子程序、讀傳感器狀態、顯示程序、定時器0的中斷服務程序、定時器1的中斷服務程序、外部中斷0的服務程序、停車處理等模塊組成。系統的主體流程如圖6所示。 該機器人在認為設定的跑道上經過多次實驗,達到了預期的效果,但是其智能化程度還遠遠不夠。隨著人工智能和神經網絡技術的不斷研究和深入,智能機器人的發展前景將會越來越廣闊。 |