羅永超,黃子朋,陳楷昀,郭耿斌,黃世一
(廣州城市理工學院電氣工程學院,廣東廣州,510800)
智能小車是機器人當中的一類,也是最近流行的一類,許多高校都設有相關的實驗室進行科研。從目前高校來看,智能小車采用STC15F2K16S2單片機作為控制系統,電機驅動模塊和電源模塊,舵機模塊,紅外光電傳感器模塊。在智能小車運行中,遇到障礙物的時候,STC15F2K16S2單片機處理傳感器的模塊發來的數據,并把處理后的數據發給電機驅動模塊和舵機模塊進行調速和調控方向,有電源模塊提供足夠穩定的電壓。其中采用紅外光電傳感器模塊,具有受干擾能力好、實時性好、成本低、對主控芯片要求較低,能很好的完成循跡和避障的設計。本文將結合STM單片機技術,設計智能小車的避障和循跡功能,希望對初學智能小車設計提供必要的幫助。
智能小車在行駛中,沿自己預先粘貼的黑色膠布軌道進行行駛,在軌道上放有超聲波模塊能感受的障礙物,超聲波模塊在距離障礙物一定距離時,會進行避障,并完成循跡。為了實現智能小車避障和循跡功能,對小車進行了總體設計。現在,智能小車的避障和循跡的設計應用越來越多了,本文在避障和循跡采用STC15F2K16S2單片機作為主芯片,采用直流電機作為動力。硬件系統結構如圖1所示。

圖1
STC15F2K16S2芯片具有保密性強,速度快,時鐘精度誤差小,溫飄浮動小,Hz寬度可設置,節省一些復位電路,使得處理器速度快,內存大,在系統可編程/在應用也可編程,耗能低設計,性價比高,常應用。工作電壓2.4V~3.6V或4.5V~5.5V,這款處理器符合本文智能小車控制設計。
為了讓小車能在平穩的地方行駛,小車設計為4個輪子,后輪分別裝左直流電機和右直流電機,兩個電機是小車的主動力,后輪兩個輪子轉動起來,帶動前輪轉動,再結合適當的減速比減速器,使小車能穩定前行的情況下,還能調控速度。直流電機具有很好的調控速度,控制較為簡單,直流電機通上直流電,直流電機就會連續不斷的轉動,通過調節電壓的大小來改變電機的轉動速度,從而改變小車的速度。通過程序控制,讓智能小車實現左轉彎、右轉彎、前進、后退等功能。

圖2
設計的模塊比較多,所以需要兩個電源模塊[3]分別對
電機驅動模塊和STC單片機進行供電。一個5V的電源給單片機供電,而舵機也可以接到單片機上一起供電。一個12V的電源給電機驅動模塊供電。這樣可以保證各模塊能得到充足的供電、并且還有安全性良好、性價比高、穩定性好等優點。
循跡傳感模塊采用的是紅外線傳感器,可以利用交流調制信號,可以降低外界光對紅外線傳感器的影響。在紅外線傳感器信噪比范圍內,紅外線傳感器反應時間在3μs左右。光電傳感器采用紅外對管,由于物體對紅外線的反射效率有所不同,黑色物體反射率極低,白色物體反射率極高。當紅外線照射到黑色膠帶大部分時,此時小車光電管中的接收信管無法接收來自黑色膠帶的發射光線,而紅外線照射到白色膠帶大部分時候,紅外對管中的接收管能接收到紅外線。這是小車能判斷自身的運動狀態和位置信息的所在。

圖3

圖4
避障模塊采用超聲波模塊,超聲波避障[1]原理就是通過給超聲波模塊超過10μs的高電平信號,自動發送8個40kHz的方波,來檢測是不是有信號的返回,如果有信號的返回,那么就判斷為前方有障礙物。然后將信號傳給單片機,單片機會根據程序控制小車進行原地左轉,如果左邊也有障礙物的話小車會退回原地,然后進行右轉。這樣檢測左右兩邊是否有障礙物,從而進行避障的功能。
智能小車是通過各種模塊的組合一起,軟件的設計和硬件系統相對應。軟件設計分為循跡程序和避障程序。主要的程序按照C語言的邏輯順序對這些程序進行調用。軟件設計要結合程序進行數據處理,數據處理包括:數據的采集、數據的傳遞等。當在循跡的過程偏離航線時,單片機采集到各個模塊傳感器的信號,經過單片機的處理,在傳遞給電機驅動模塊和舵機模塊,使智能小車進行減速和調整方向,使智能小車回歸規定的路線,實現循跡功能。當遇到前方有障礙物的時候,智能小車前方的超聲波模塊會將收集到的信息傳給單片機,單片機通過避障程序控制電機驅動模塊和舵機模塊,使其完成避障功能,回歸規定的路線。
先確定紅外傳感器都能正常工作,紅外傳感器是放置在車體的正下方垂直于小車的運動方向一字排開,要求傳感器保持等距離且兩傳感器能采集到黑色膠帶的信息,兩測的傳感器可以采集到白色地板的信息。運用循跡算法完成[2]場地需要有以下的特征路徑:直線段、左拐90°轉彎,右拐90°轉彎。傳感器從左往右做標記,分別為1,2,3,4傳感器。當傳感器檢測到黑色的膠帶時,用數字“0”表示,沒檢測到用數字“1”表示,為了不漏掉有可能的狀態,四個傳感器有十六種狀態,可以用四位二進制表示。在直線段的時候,黑色膠帶應在傳感器2,3。即四位二進制為1001,而當四位二進制為1000、1100、1110、1101,即小車偏離了直線段。在左拐90°轉彎道路上,當四位二進制位0001,傳感器1、2、3能檢測到黑色膠帶時,通過單片機進行相應的程序,讓舵機配合電機驅動進行左拐90°轉彎。在右拐90°轉彎道路上,傳感器2、3、4能檢測到黑色膠帶時,即四位二進制為1000,通過單片機進行相應的程序,讓舵機配合電機驅動進行右拐90°轉彎。在十字路口路段,當傳感器1、2、3、4都能檢測出黑色膠帶時,小車直行通過十字路口。這些得通過實際調試來進行改進,讓傳感器返回值具有以上情況,否則會影響后面的程序的運行。
由于障礙物的大小形狀各不相同,處理避障問題可以很復雜,也可以很簡單。但是對于初學者來說,應該簡化設計、降低程序的難度、容易調試,使用一種能讓初學者能理解的比較簡單的方法。當檢測小車的速度和障礙物距離時,可以根據超聲波傳感器的測量距離算法[4],使其小車完成避障的功能。當超聲波傳感器感受到障礙物的時候,通過避障程序,改變左右電機轉動快慢,使得小車進行左移或者右移來躲避障礙物,從而實現避障功能。這種方法比較適合初學者。在小車前放置一個超聲波模塊,當小車的前面有障礙物時,超聲波模塊會接收到反射回來的聲波,然后將信號傳給單片機。單片機會根據避障程序使小車左邊電機停轉,右邊電機正轉進行原地左轉。如果左轉后前面還是有障礙物,小車將退到原位置然后進行原地的右轉,從而實現避障的功能。

圖5

圖6
本文說明了基于STC15F2K 16S2單片機芯片設計的智能小車循跡和避障的控制系統。通過紅外光電傳感器作為避障感覺,通過紅外感受器作為循跡的功能,使智能小車完成循跡。電機驅動和舵機為智能小車偏離軌跡或遇到障礙物時,電機驅動提供調速,舵機提供轉彎角度,使之更好的完成避障和循跡,使智能小車達到預期的效果。在設計過程,舵機效率高,速度快,穩定性好,靈敏度高,但是維護起來比較復雜,舵機可以讓智能小車轉彎變得靈活,一旦舵機壞了維護復雜。光線會對循跡的傳感器有影響,這需要在實踐中,減少影響程度,同時得優化一下循跡算法,讓循跡更加準確。