摘要:采用AT89S52單片機為主控制芯片,結合直流電機、多種傳感器、紅外遙控及其他外圍電路,設計實現(xiàn)了一種沿黑色軌跡行走的智能循跡小車,同時還能自動避障,并在遙控的作用下完成小車行走的控制。實驗證明整個系統(tǒng)設計靈巧、控制準確、工作穩(wěn)定、使用效果良好。
關鍵詞:AT89S52;智能尋跡;避障;直流電機;紅外光電傳感器
隨著計算機、微電子、信息技術的快速發(fā)展,智能化技術的開發(fā)速度越來越快,智能度越來越高,應用范圍也得到了極大的擴展。智能小車作為移動式機器人中的一個重要分支,具有環(huán)境感知、規(guī)劃決策、自動行駛等功能,是智能化技術中一個典型的例子。設計者可以通過軟件編程,讓小車在預先設定的模式中實現(xiàn)行進、尋跡、避障等精確控制,無需人工干預,當有特殊需要或在出現(xiàn)故障的情況下還可以對小車進行遠程遙控,可以應用于科學勘探等用途,具有廣闊的發(fā)展前景。
1 系統(tǒng)總體設計框圖
本設計中,智能小車是由主控制模塊、電機驅動模塊、循跡模塊、避障模塊、遙控模塊、聲控模塊、光控模塊、電源模塊和其他外圍電路組成,其總體硬件結構框圖如圖1所示。
2 系統(tǒng)硬件設計
2.1 主控制及電源模塊
智能小車采用現(xiàn)在較為流行的8位單片機作為系統(tǒng)大腦。以8051系列家族中的AT89S52為主芯片。40腳的DIP封裝使它擁有32個完全IO(GPIO-通用輸入輸出)端口,通過對這些端口加以信號輸入電路,控制電路,執(zhí)行電路共同完成智能小車的功能。電源模塊用4節(jié)1.5 V的電池供電,經L7805穩(wěn)壓模塊后,輸出電壓穩(wěn)定在+5 V,從而向各個模塊供電。
2.2 電機驅動模塊
智能小車采用前輪驅動,左右前輪各用一個直流電機驅動。電機驅動芯片采用LG9110,該芯片兩個輸出端能直接驅動電機的正反向運動,具有較大的電流驅動能力。單片機的P0.0,P0.1,P0.2,P0.3分別連接到LG9110的兩個輸入端,用以驅動電機M1和電機M2,如圖2所示。不同的輸入信號控制電機的正轉與反轉,以完成機器人的前進,后退,左轉,右轉,遇障礙物繞行等基本動作。兩個電機同時正轉時,小車前進;兩個電機同時反轉時,小車后退;左側電機不轉,右側電機正轉,小車左轉;左側電機正轉,右側電機不轉,小車右轉。這些基本動作正確,實現(xiàn)簡單。
2.3 尋跡模塊
尋跡在這里是指沿黑線行走,它靠小車前端底部的兩對紅外發(fā)射和接收探頭來完成。如圖3所示,V6、V5為小車左側的紅外發(fā)射與接收管,V3、V4為小車右側的紅外發(fā)射與接收管。發(fā)射管發(fā)出紅外線,當碰到黑色或不反光的物體時,紅外反射量大量減少,若碰到白色或反光的物體時,紅外反射量則較多,紅外接收管將接收的反射光轉化成電壓值,由P3.5,P3.6送回到單片機,經過處理后控制信號由P0.0,P0.1,P0.2,P0.3口輸出給電機驅動電路的LG9110芯片,從而達到驅動小車行走和循跡的目的。循跡時,由于紅外線在白色地板和黑線上的反射系數(shù)不同,所以可以根據(jù)三極管接收紅外線的強弱來決定小車的走向。當左右接收管都能接收到反射回來的紅外線,則小車直線前進;當左邊接收管接收不到反射回來的紅外線,右邊接收管能接收到時,說明小車向右偏離黑色軌道,則小車向左轉動;同理右邊接收管接
收不到反射回來的紅外線,左邊接收管能接收到時,說明小車向左偏離黑色軌道,則小車向右轉動,從而實現(xiàn)自動循跡。本設計中紅外傳感器離地面垂直距離為1~1.5 cm,能在沒有強烈日光干擾或在有日光燈的房間里,完全能滿足探測要求,具有很好的可靠性與抗干擾能力。
2.4 避障模塊
小車在運行中如果前方有障礙物,小車則開始向后后退一段時間后,向左運動,在向左運行一段時間后,再開始向前運行。在整個調向的過程中,蜂鳴器響動。這個就是避障功能。該功能是由安裝在小車前方的一對紅外發(fā)射管實現(xiàn),原理與尋跡模塊相同。
2.5 遙控模塊
遙控模塊由紅外發(fā)射與接收兩部分組成。紅外發(fā)射采用常用的TC9012集成芯片,將某個按鍵所對應的控制指令和系統(tǒng)碼(由0和1組成的序列),調制在38 kHz載波上,然后經放大、驅動,紅外發(fā)射管將信號發(fā)射出去。接收部分采用紅外一體化接收頭,當接收到38 kHz紅外信號后就輸出低電平,沒有接收到就輸出高電平,電平信號由單片機的外部中斷來接收。信號的下降沿觸發(fā)外部中斷。為了識別一個完整的鍵信號,必須對每一個編碼脈沖的寬度進行測量,利用單片機中的定時器/計數(shù)器來測量脈沖寬度,以判別接收到的脈沖是0還是1。通過遙控模塊,可將按鍵值顯示在數(shù)碼管上,并控制小車的行進方式。
2.6 聲光控模塊
該小車具有簡單的聲控功能,P0.4為機器人的聲控檢測端口,在運行為前進狀態(tài)時,可以通過聲控來控制它的運行與停止。聲音的輸入是通過話筒,由話筒對聲音信號進行識別,如圖4所示。由于電路能有效去除雜波,所以僅能對響度較大的聲音進行識別(如拍手聲)。像正常的說話聲對本電路濾除,不會產生信息的輸入。同時該小車還具有光控功能,如圖5所示。當為白天或黑夜時可以通過P0.5端口中的光敏電阻來進行判斷,以方便完成機器人夜間自動照明等功能。當光線較暗時,由P0.6端口輸出信號控制蜂鳴器發(fā)聲。
2.7 通信模塊
通信模塊是采用AT89S51自帶的全雙工串行通信口P3.0和P3.1來實現(xiàn)??捎秒娔X通過串口向小車發(fā)送數(shù)據(jù),數(shù)據(jù)在數(shù)碼管上顯示,并且小車根據(jù)數(shù)據(jù)執(zhí)行相應的動作,如前進、左轉、右轉、后退等。通信波特率為9 600,數(shù)據(jù)為8位,無校驗位。
3 系統(tǒng)軟件設計
該智能小車的軟件控制部分采用C語言編程,借助C語言的強大功能來實現(xiàn)單片機AT89S52的控制功能。小車各個模塊都可以編寫相應的程序,也可以將這些分立的程序模塊(一般尋跡模塊除外)組合起來,完成強大的功能。主流程圖如圖6所示。
4 結論
本文提出了一種基于AT89S52單片機為控制核心的多功能智能小車的設計方案,該方案以紅外傳感器作為路徑信息采集手段,以LG9110芯片來控制并驅動電機運行,實現(xiàn)小車在固定軌跡上自動循跡、避障。同時還具有聲光控功能,能根據(jù)外界聲音、光線來控制小車的動作。整個設計功能豐富,電路簡單,成本低且易于實現(xiàn),具有很強的操作性。