董雷剛,崔曉微,張 丹
(大慶師范學院 計算機科學與信息技術學院,黑龍江 大慶 163712)
本設計采用AT89C51單片機作為智能小車核心控制器[1-2],路面黑線檢測采用反射式紅外傳感器,為了使傳感信號更可靠,使用了LM324比較器對信號進行判斷,電源供電由4節五號電池提供,我們在設計時將后輪作為驅動輪,由兩個電機分別驅動,前輪用一個萬向輪實現,這樣可使控制電路更簡潔。在實現可靠硬件設計的同時,使用了一套獨特的算法,實現了小車在快速運動中根據檢測黑線的結果來控制前進方向,取得了很好的效果。
整個系統的設計[3]分為線路檢測、信號比較、電機控制與驅動三個模塊。首先利用光電傳感器對路面進行檢測,檢測到的信號經過比較器處理之后,送給軟件控制模塊進行實時控制,輸出相應的信號給驅動芯片驅動電機轉動,從而控制整個小車的運動及方向。小車的驅動流程圖如圖1所示。

圖1 智能小車循跡系統框圖
文章的結構如下:第1部分介紹系統的硬件電路設計;第2部分介紹軟件部分的詳細設計;第3部分介紹對系統的試驗結果;第4部分對系統設計過程中的注意事項進行說明;最后對文章的內容進行總結。
為了使整個系統穩定工作,硬件電路包含線路檢測模塊、信號比較模塊、電機控制與驅動模塊。整個系統結構框圖如2 所示。

圖2 系統框圖
該智能小車在貼有黑線的白紙“路面”上行駛,因此本模塊設計需要檢測鋪在行駛區的黑膠帶,包括直線行駛區和沿弧線行駛區兩個區域。由于黑線和白紙對光線的反射系數不同,可根據接收到的反射光的強弱來判斷“道路”——黑線。本文采用的是簡單實用的檢測方法,即紅外探測法。
紅外探測法,即利用紅外線在不同顏色的物理表面具有不同的反射性質的特點。在小車行駛過程中不斷地向地面發射紅外光,當紅外光遇到白色地面時發生漫發射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號。
圖3為循跡發射和接收電路,共有兩套,放在小車的前側,分別檢測左側車輪和右側車輪的偏轉情況。采取的是反射取樣式,高亮度的發光二極管與光敏二極管呈V 字型放置。圖3的電路在+5V 電壓下工作,根據發射管和接收管所需的工作壓降和工作電流,選取的負載電阻如圖3所示。當傳感器面對黑線時,電路輸出端是高電平(用1表示),否則電路輸出端是低電平(用0表示)。因此由兩套傳感器即可實現路線方向的確定,兩個傳感器的位置放在黑線的兩個邊緣即可,如圖4所示,小車在行進的過程中傳感器的輸出邏輯值及相應的方向調整如表1所示。此部分電路的設計具有靈敏度高、可調節等特點。

圖3 循跡發射和接收電路 圖4 傳感器的位置示意圖

小車偏向 偏左 直行 偏右左右傳感器輸出值 0 1 0 0 1 0糾正方向 向右 不變 向左
此部分設計采用一個LM324比較器,對傳感器收到的信號進行電壓比較與放大,并將比較后的結果輸送給單片機,用于檢測傳感器的敏感性,電路圖如圖5所示。當兩個傳感器同時檢測到光時,直線前進。當傳感器檢測不到光時,處于截止狀態,雙運算放大器LM324 輸出低電平給單片機,由程序處理;若左路未檢測到光,則向左糾正方向;若右路未檢測到光,則向右糾正方向。
由于采用的是雙驅動的小車,這部分電路必須能夠輸出兩個不同的電壓值,分別去控制小車的左、右兩個驅動電機,使小車的兩個車輪的轉速和方向相同或不同,從而來控制它的前進和轉彎。在系統的設計過程中,用兩個L9110芯片來分別連接單片機和直流電機。
L9110是為控制和驅動電機設計的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC之中,使外圍器件成本降低,整機可靠性提高。該芯片有兩個TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個輸出端能直接驅動電機的正反向運動,它具有較大的電流驅動能力,每通道能通過800mA的持續電流,峰值電流能力可達1.5~2.0A;同時它具有較低的輸出飽和壓降與靜態電流;內置的鉗位二極管能釋放感性負載的反向沖擊電流,使它在驅動繼電器、直流電機、步進電機或開關功率管的使用上安全可靠。L9110和電機的連接電路圖如圖6所示。

圖5 LM324電路圖 圖6 L9110和直流電機連接圖
由于采用程序控制小車的行駛方向,因此軟件的設計也是整個系統設計中很重要的部分。程序整體
流程如圖7所示。
單片機控制小車方向的代碼如下:
org 0000H
MAIN:MOV P1,#00001010B ;初始狀態,兩輪都正轉
JB P0.0,RIGH ;右傳感檢測到黑紙,說明小車向左偏,應該給予糾正向右;
JB P0.1,LEFT ;左傳感檢測到黑紙,說明小車向右偏,應該給予糾正向左;
LJMP MAIN
RIGH:MOV P1,#00001000B ;左輪轉,右輪停,向右糾正
…
在作品完成之后,對作品進行了測試。開關打開后,小車能按照預定路線平穩行進,在行進過程中,小車進行了多個轉彎,沒有出現偏離路線的情況,而且行進速度很快。根據檢測,小車完成三圈的行進,共用時51.36秒。小車路線示意圖如圖8所示:

圖8 小車行駛線路圖
循跡小車系統以常見的AT89C51單片機為核心,輔以較簡單的元器件和電路設計,在順利完成循跡功能的前提下,又充分考慮到了外觀、成本等問題,因此小車的大部分電路由手工焊接完成。在設計中,我們沒有在電路中增加冗余的功能,但是保留了各種硬件接口和軟件子程序接口,方便以后的擴展和開發。
[參考文獻]
[1] 胡錦,蔡谷明,梁先宇. 單片機技術實用教程[M].北京:高等教育出版社,2008:45-63.
[2] 劉海寬. 單片機試驗與實訓教程[M].南京:東南大學出版社,2009:72-104.
[3] 劉霞,侯傳教,孟濤. 電子設計與實踐[M].北京:電子工業出版社,2009:218-243