李佳楠 賈婷 張婷婷 沈陽工學院信息與控制學院
整個系統基于玩具小車的機械結構,并利用了小車的底盤、轉向控制電機、行駛狀態控制電機,能夠平穩跟蹤路面黑色軌跡運行,并能實時的根據小車的行駛情況對小車的狀態進行調整,此部分通過專業的電機驅動芯片L298N控制。
小車控制系統總體結構如下圖所示。以STC89C52單片機為控制核心,主要由電源模塊、尋跡檢測模塊、紅外對射測速模塊、直流電機驅動模塊、數碼管顯示模塊等功能模塊組成。首先利用光電傳感器對路面信號進行檢測,經過比較器處理后,送給單片機進行實時控制,單片機輸出相應的信號給驅動芯片驅動電機轉動,從而控制整個小車的運動。與此同時,紅外對射管傳感器開始對小車的行駛速度進行檢測,并通過程序算法將小車的行駛速度與行駛距離實時的顯示在數碼管上。
由于小車在設計過程中,采用了模塊化的設計思路,所以在進行調試時非常方便。可以分別對每一個功能部分來進行調試,驅動部分調試時,只要給電機向前或者向后的信號,就可以調試出其功能。循跡部分調試時,只要通過檢測到黑線,判斷是否沿黑線行駛,即可以調試出。在進行避障調試中,可以把障礙物放在小車前方,然后看小車兩個輪子的轉向。這種模塊化的設計思想不僅簡化了設計過程,而且對以后的設計也會有一定啟發。
本設計系統軟件采用模塊化結構,由主程序、電機驅動子程序、中斷子程序、顯示子程序、調速子程序等構成。主要功能是負責對傳感器信號的采集和控制,電機前進后退,左轉右轉的速度調節,實現小車的靈活避障,以及對單片機的初始化編程等工作。
小車進入循跡模式后,即開始不停地掃描與探測器連接的單片機I/O口,一旦檢測到某個I/O口有信號,即進入判斷處理程序,先確定探測器中的哪一個探測到了黑線,如果左面第一級傳感器或者左面第二級傳感器探測到黑線,即小車左半部分壓到黑線,車身向右偏出,此時應使小車向左轉;如果是右面第一級傳感器或右面第二級傳感器探測到了黑線,即車身右半部壓住黑線,小車向左偏出了軌跡,則應使小車向右轉。在經過了方向調整后,小車再繼續向前行走,并繼續探測黑線重復上述動作。由于第二級方向控制為第一級的后備,則兩個等級間的轉向力度必須相互配合。第二級通常是在超出第一級的控制范圍的情況下發生作用,它也是最后一層保護,所以它必須要保證小車回到正確軌跡上來,則通常使第二級轉向力度大于第一級。
為保證小車能正常行駛,循跡部分的黑線寬度應在3.5至4cm。避障軌道的寬度應大于20cm小于25cm。
在小車各個部分的電路焊接完成后,就開始對小車進行整體組裝。利用購買的高強度塑料制成的模型作為小車的車體,然后分別將各模塊按照功能安裝固定好。紅外循跡模塊固定在車體底部,因為其作用是來檢測地面黑線存在,而且其工作距離也有一定限制,所以不能放在離地面太高的地方。超聲波探測模塊則應該置于小車正前方,其目的主要是用來發現前方障礙物,其安裝高度要合適。對于驅動模塊和最小單片機系統,安裝在小車正中間,因為其要與各模塊之間進行連接。供電電源則放在小車車尾,這樣有利于小車整體重量的均勻分布,也可以在進行充電時,更加方便拆裝。
小車的左右轉彎進行調試時,可以在程序里給定每個電機引腳信號,看小車的轉動是否滿足所設定的方向。通過調試可知,小車的運動方向與初始設置相同,能夠實現。
通過對小車的各項功能進行測試,可以發現,在合適的工作條件下,小車基本可以達到設計要求。因此,本設計完成了預先的設計任務,實現了所有功能。小車可以進行循跡功能,檢測到黑線以后,會沿著黑線進行行進。可以進行避障功能,在檢測到障礙物以后,小車會原地旋轉180度進行避障處理,然后繼續行駛。
整個系統的設計以單片機為核心,利用了多種傳感器,將軟件和硬件相結合。本系統能實現如下功能:
(1)自動沿預設軌道行駛小車在行駛過程中,能夠自動檢測預先設好的軌道循跡,若有偏離,能夠自動糾正,返回到預設軌道上來。
(2)通過安裝在主板上的數碼管能夠實時顯示小車當前行駛速度與行駛距離。
從運行情況來看循跡的效果比較好,顯示的效果不是很好,認為是由于軟件部分的原因。另外就是小車的速度不好控制,雖然采用了專業的電機控制芯片,但pwm調速有待完善,這也是這次設計的誤區。相信如果實驗條件和時間的允許下肯定能解決這一問題。
測試結果表明:本組智能小車能很好的完成了循跡和避障功能,循跡跑道是由黑色膠布在白色地面上拉線完成,小車可以從O型跑道的任何段為起點,跑完全程。避障跑到是通過擺放障礙物,小車可以走出障礙區間。