高英英
(西安信息職業大學,陜西 西安 710125)
智能小車在當今社會上發展得很快,從智能玩具到其他各行業上都有了實質性的發展成果[1,2]。智能遙控小車是20世紀提出的一種新型小車,它可以開發幼兒的智力,提高小朋友的反應能力與左右手協調能力,在很大程度上可以代替人們的工作,由無線遙控操作在軍事偵察、反恐以及防污染等其他高風險環境中,且具有低成本、體積小以及強大的生存能力等特點,因此應用前景廣闊[3-5]。由于各個企業的生產技術都在不斷提高進步,人們對自動化和智能化等的要求也在不斷深化,單片機的應用領域也越來越廣泛,無論是在生活中還是在生產上,單片機都是隨處可見。自20世紀70年代單片機出現以來,就廣泛地應用于工業自動控制化、智能儀表儀器、機電一體化設備、通信設備以及汽車電子等各個領域[6,7]。STC89C52是單片機領域的主流商品,其應用非常廣泛,所以有必要去學習和應用,既滿足了實際產品開發的需要,也適應了社會智能化和自動化的趨勢[8,9]。通過無線藍牙串口在手機端以觸摸屏按鍵的形式控制,具有簡單、直觀、方便以及易操作等特點[10]。如今,人們對智能化的需求與依賴越來越大,隨著無人汽車、無人超市以及5G網絡等智能領域的發展,智能信息化已逐漸走進人們的生活[11]。本文所設計小車的功能塑造性較強,不局限在單一場景,日后通過不斷擴展和改進,可用于日常生活。
本系統可以實現小車的循跡、避障、跟隨及藍牙遙控的功能,主要是由單片機控制模塊、電機驅動模塊、紅外避障模塊、紅外循跡模塊、藍牙模塊以及電源模塊組成,具體如圖1所示。

圖1 小車的系統總功能框架圖
通過對周圍信號環境的檢測,傳感器生成信號,通過LM393比較電路輸出高電平或者低電平給單片機引腳。單片機通過程序設計對引腳電平變化做出設計好的電路反應,傳輸信號波形給電機驅動電路進行調節小車的運行情況。功能設計如圖2 所示。

圖2 功能設計框圖
通過串口將手機終端與小車的藍牙配對,單片機接收到手機端按鍵命令傳輸的波形信號,按預設的程序設計對引腳電平做出電路反應,小車的電機驅動電路按指令運行。藍牙遙控設計如圖3所示。

圖3 藍牙遙控設計框圖
本文設計了智能小車系統,系統分為小車和手機串口應用程序遙控終端兩部分,具有自動避障、循跡、跟隨及藍牙遙控的功能。設計選用了52系列單片機作為控制端進行控制,機械平臺則是采用了常見的電機模型車,利用所學的電機控制技術和傳感器技術的相關知識,實現小車的前進后退、轉向駕駛、檢測、避障、跟蹤以及藍牙遙控等功能。
本系統采用STC89C52單片機為控制核心,在5 V供電下支持80 MHz晶振,且內部有512B的RAM數據儲存器,片內含8K空間可反復擦寫1 000次的Flash只讀儲存器,1K的EEPROM、8個中斷源、4個優先級、3個定時器以及32位I/O口線,另外自帶看門狗定時器、雙數據指針、全雙工串行口、片內晶振及時鐘電路等。單片機最小系統與電機驅動模塊、紅外避障模塊、紅外循跡模塊以及藍牙模塊組合成硬件系統,通過紅外傳感實現小車智能循跡、避障、跟隨及藍牙無線遙控等功能,并通過STC89C52單片機整合處理全車各類信息,使系統正常工作。
L298電機1腳是使能腳,前端控制,輸出高電平有效;2腳是控制接口;2、3腳接左電機輸出端;4、5腳接地;7腳控制左電機信號;8腳驅動電機,電壓輸出到電機決定電機的速度,13、14腳接右電機。電機驅動模塊原理圖如圖4所示,其中雙驅動ENA調速,4個二極管抗干擾,保護電路左邊接口接左電機,右邊接口接右電機,協調運行。

圖4 電機驅動模塊原理圖
小車避障模塊采用紅外傳感器,紅外發射V1通過限流電阻加與電壓,發出紅外光,紅外接收頭V3接收紅外光,其阻值降低,電壓降低,輸出低電平。通過電位器W1改變參考電壓、靈敏度以及芯片的比較電壓,右邊電路與左邊電路相對稱。若前方有障礙物則D3亮,信號由P34傳到單片機。避障模塊原理如圖5所示。

圖5 避障模塊原理圖
循跡電路與避障電路相似,V2,V4為循跡探頭,循跡功能由循跡探頭實現,黑色燈為接收,白色燈為發射。當左邊紅外黑色傳感器接收到紅外信號時,證明地上沒有黑線,接收不到紅外信號時,則地上有黑線,小車由此來左右判別黑線的位置,從而做出反應,沿著黑線走。循跡模塊原理如圖6所示。

圖6 循跡模塊原理圖
藍牙模塊采用HC-05安裝于小車端,通過藍牙串口與手機端連接,從而實時接收遙控發送的新指令。HC-05是主從一體的藍牙模塊,輸入電壓為3.6~6 V。運用藍牙V2.0協議標準和CSR主流藍牙芯片,用戶可根據需要設置特定波特率,性能穩定,在開闊環境且無干擾情況下傳輸距離可達10 m以上。藍牙的TXD和RXD是相對其本身來說的,即藍牙的TXD要接外部設備(如單片機)的RXD,藍牙的RXD要接外部設備的TXD。
本次設計的程序編寫和編譯是采用的Keil Software公司開發的Keil 4,該軟件包含了C51編譯器和鏈接器等一系列集成工具,使用起來比較方便。程序下載軟件采用的是宏晶科技提供的stc-isp-15xxv6.86C,大部分STC系列的51單片機都采用該軟件下載程序。
main主程序中主要對定時器0進行了初始化,定時器0中斷用于產生PWM,驅動電機正反轉,還初始化了串口,波特率為9 600 b/s,串口用于和藍牙通信,使得能夠用手機控制小車。接著進入了主循環,該小車共有4種工作模式,分別是循跡、避障、跟隨及藍牙控制,主循環中先判斷有沒有按下模式切換按鍵,如果按下了該按鍵則切換工作模式,最后進入各個模式的子函數。主程序流程如圖7所示。

圖7 主程序流程圖
主函數在調用循跡子程序時,子程序先判斷檢測黑線的兩個紅外,當兩個紅外僅有一邊檢測到黑線時,就往黑線那邊轉彎,當兩個紅外都檢測到黑線時停車,否則就前進。循跡子程序流程如圖8所示。

圖8 循跡子程序流程圖
避障子程序跟循跡的判斷邏輯相同,某一側的紅外檢測到物體時視為障礙物,小車會往另一個方向走,從而達到避障的目的。避障子程序流程如圖9所示。

圖9 避障子程序流程圖
跟隨子程序跟循跡的判斷邏輯相同,只不過這時檢測的紅外是用于檢測物體的紅外,跟前面的檢測黑線的紅外不是同一個。跟隨子程序流程如圖10所示。

圖10 跟隨子程序
藍牙控制子程序是根據小車的狀態來控制小車,而小車的狀態又是根據接收到的藍牙指令來設置的,當用手機藍牙向小車的藍牙發送指令時,串口就會產生中斷,接收藍牙發來的指令,并根據這些指令去設置小車的狀態,藍牙控制子程序就會根據這些狀態來調用相應的函數。另外用手機藍牙向小車發送指令是采用一個名為SPP的藍牙調試助手,該App允許用戶編輯按鍵和按下按鍵時發送的指令,非常適合藍牙小車的調試與制作。藍牙控制子程序流程如圖11所示。

圖11 藍牙控制子程序
本設計將手機端App輸出的串口數據通過藍牙無線模塊傳輸相給小車上的主控芯片上,計算并判斷X,Y的角度值,輸出相應占空比的方波發送給電機驅動模塊,從而達到對小車進行前進、后退、左轉以及右轉的無線遙控功能。主控芯片將接收到的紅外傳感模塊的電平信號進行處理和分析,判斷小車左右側有無障礙物和黑線,從而輸出相應占空比的方波發送給電機驅動模塊以實現小車的智能避障、跟隨及循跡功能。
接通電源,切換至循跡模式,數碼管顯示“1”,小車執行循跡功能。在地面事先貼好黑膠布軌跡,黑膠布既有直線的,又有轉左轉右的,此外有小角度的轉向也有大角度的轉向。調節電位器至適中,觀察小車循跡,調節小車速度達到最好循跡效果。測試結果如表1。分析可知,小車在黑線軌跡寬度區間為10~25 mm時能正常循跡行駛,在軌道彎道大于90°時能正常拐彎。

表1 循跡功能測試表
切換至紅外避障模式,數碼管顯示“2”,小車執行避障功能。用手擋在紅外傳感器前面,觀察電機變化是不是程序設計的結果。調節電位器至紅外檢測適中距離,將小車放地上,接通電源,在小車前進的時候用擋板擋在避障傳感器前面,測試小車反應,調節小車速度到適中檔位。經觀察,小車在距離障礙物約80 mm時,對應的紅外檢測二極管會發亮,但由于小車行駛慣性,避障的距離會相應減小。
切換至跟隨模式,數碼管顯示“3”,小車執行跟隨功能。經觀察,當物體在距離小車約50 mm以內時,其對應的紅外檢測二極管就會發亮,小車會跟著物體行駛。
藍牙遙控模式,數碼管顯示“4”,小車執行藍牙遙控功能。打開手機端藍牙串口進入連接狀態,設置手機端控制鍵盤,然后在手機終端對小車進行前后左右各方位的遙控,計算小車最遠遙控距離,觀察小車的反應,修改速度,也可以根據需要添加或減少控制功能。通過手機端向小車藍牙發送指令,在開闊且無干擾的環境下其傳輸距離可達10 m,即當小車在10 m以內的范圍均可受手機端控制行駛。
小車的避障功能使小車在行駛過程中不發生碰撞,跟隨功能讓小車根據牽引者的指導行駛,藍牙遙控功能則可以隨意操控小車的行駛狀態。但由于使用的是紅外傳感器,所以在調試過程中也要考慮光對各功能的影響。小車的模型實物如圖12所示。

圖12 小車模型實物
本文設計的多功能小車以STC89C52為控制核心,以四輪模型車為機械平臺,通過傳感器、串口連接以及電機控制等實現了跟蹤、循跡、避障及藍牙遙控功能。小車分為硬件和軟件兩個部分,硬件部分主要有紅外模塊、藍牙模塊、驅動模塊以及電源,軟件部分則是通過程序控制單片機實現小車的功能。智能小車自動識別路線、障礙物并智能避障和藍牙遙控的研究是基于自動引導機器人系統,用以實現小車自動識別周圍環境,并做出相應的控制系統反應,是智能小車研究領域的重要組成部分,初步實現了多學科領域的綜合研究。