董胡,馬振中
隨著電子技術、傳感器技術、計算機技術、自動控制技術、人工智能與機械技術的快速發展與結合,玩具產業發展迅速。傳統玩具的市場份額在逐步下降,而具有高科技含量的電子玩具則逐步上升,玩具智能化已成為現代玩具發展的趨勢。雖然我國作為玩具生產大國,但在高科技智能玩具的發展方面和國外還存在一定的差距[1]。因此,開展智能玩具技術方面的研究,一方面,對技術創新應用,另一方面,對社會經濟發展,都具有一定的實際意義。本文利用STC89C52單片機作為智能玩具小車的控制核心,使玩具小車能夠按設定的軌跡前進并能自動避障,而且小車在行進過程中能根據其運行情況自動播報行駛狀態信息,同時,配以發光二極管加以提醒,從而使小車具備了智能性和可娛樂性[2][3]。
智能玩具小車采用STC89C52單片機作為核心控制芯片。在硬件設計電路方面,盡量使其具備更多的功能。智能玩具小車的硬件電路主要包括STC89C52單片機模塊、循跡模塊、傳感器避障模塊、電機驅動模塊、發光二極管模塊、語音播報模塊、電源模塊等。本文設計的小車采用后輪驅動,兩個驅動輪是由兩個電機分別驅動,前面一個輪是萬向輪,起到支撐和平衡的作用,只要調整兩個動力輪的轉動方向和轉速就可以達到轉向的目的。在小車底盤的兩側各裝有兩個紅外對管,當車身下左邊的傳感器檢測到黑線時,主控芯片控制左輪電機停止,車向左修正,當車身下右邊傳感器檢測到黑線時,主控芯片控制右輪電機停止,車向右修正。在小車的前部有3個紅外線傳感器,通過紅外線傳感器來檢測障礙物,并將檢測到的信息通過單片機采集處理進行判決實現小車自動規避障礙物。小車的行駛狀態信息(如行駛方向、運動狀態等)以發光二極管、語音播報等模塊進行提示。通過PWM脈寬調制技術改善小車的靜動態性能。智能玩具小車系統設計框圖如圖1所示:

圖1 智能玩具小車系統設計框圖
智能玩具小車以STC89C52單片機作為主控芯片,它是一種高速、低功耗、超強抗干擾的16位微控制器。工作電壓范圍較寬(2V-5.5V),實際工作頻率達48MHz,具有8K字節用戶存儲空間,片上集成512字節RAM,具有32個通用I/O口、一個看門狗、兩路UART通信端口、3個16位定時器和計數器、外部四路中斷、支持在線系統編程和在線應用編程等功能。智能玩具小車相關的功能模塊在單片機的對應I/O端口分配情況如表1所示:

表1 單片機I/O端口分配表
將4個紅外傳感器置于智能小車的底部下方,當紅外傳感器檢測到的物體為黑色或其它淺色物體時,輸出對應電壓分別為 5V或0.2V。將輸出的電壓通過LM234作比較來采集高低電平,從而實現信號的檢測,單片機根據采集的高低電平,得到路面的相關信息,從而通過控制電機的轉動作出適當的反應,實現循跡功能[4]。循跡電路圖如圖2所示:

圖2 循跡模塊連接圖
常見的傳感器避障有兩種方案:一是采用超聲波避障。但超聲波在一定的空間范圍內會進行多次反射,容易使傳感器之間互相干擾,使控制芯片不能準確判斷出哪個方向遇到障礙物,可能發生誤判。二是采用紅外線避障,紅外線對近距離的障礙物反應速度較靈敏,傳感器之間信號不易互相干擾,從而避免發生誤動作。另外,紅外線避障電路相對簡單且紅外探測距離相對容易調節,因此這里采用第二種方案。
E18-D50NK是一種集發射與接收于一體的光電傳感器,發射光經過調制后發出,接收頭對反射光進行解調輸出,有效避免了可見光的干擾。傳感器檢測障礙物的距離可以根據要求進行調節,最遠可以檢測50厘米距離[5],與實際應用比較相符合。該傳感器具有探測距離遠、受可見光干擾小、價格便宜、易于裝配、使用方便等特點,可以廣泛應用于機器人避障、流水線計件等眾多自動化產品。
L293D是SGS公司的產品,內部包含4通道邏輯驅動電路,可以方便的驅動兩個直流電機。是一種二相和四相電機的專用驅動器,即內含二個H橋的高電壓大電流雙全橋式驅動器,接收標準TTL邏輯電平信號,可驅動36V、2A以下的電機。
L293D可直接對電機進行控制,無須隔離電路。通過單片機的I/O輸入改變芯片控制端的電平,即可以對電機進行正反轉、停止的操作[6]。電機驅動電路如下圖3所示:

圖3 電機驅動模塊連接圖
ISD2560是ISD系列單片語音錄放集成電路的一種。這是一種永久記憶型語音錄放電路,錄音時間為60s,可重復錄放10萬次。ISD2560還省去了A/D和D/A轉換器。其集成度較高,內部包括前置放大器、內部時鐘、定時器、采樣時鐘、濾波器、自動增益控制、邏輯控制、模擬收發器、解碼器和480k字節的EEPROM。有10個地址輸入端,尋址能力可達1024位;設有OVF(溢出)端,便于多個器件級聯。將事先錄制好的語音存儲于ISD2560芯片中,當小車在前進、后退、左轉、右轉和停止等狀態時播報相應的行駛信息。
電源管理是智能玩具小車設計中的重要環節,它給系統的各個模塊進行供電,可靠的電源設計是整個硬件電路穩定運行的基礎。采用多節Ni-Cd電池串聯供電,由于智能玩具小車系統各個模塊所需的電壓不同,因此需要進行電壓調節。STC89C52單片機模塊、循跡模塊、傳感器避障模塊所用電壓為5V,電機驅動模塊所用電壓為12V,語音播報模塊所用電壓為3.3V。
智能玩具小車控制系統主要通過紅外循跡傳感器來規范小車沿黑色軌跡行駛,同時通過紅外避障傳感器檢測障礙物以糾正小車的行駛方向, 使用C51進行程序設計。智能玩具小車的控制過程采用查詢方式實現對小車的智能控制。
其中實現單片機(STC89C52)控制小車左、右運行的部分偽代碼如下:

智能玩具小車循跡、避障軟件設計流程圖分別如下圖4、圖5所示:

圖4 小車循跡軟件設計流程圖

圖5 小車避障軟件設計流程圖
同時語音播報模塊在小車不同的運動狀態過程中輔以相應的語音播報狀態信息。
本設計采用模塊化的思想設計了以STC89C52單片機為核心控制器的硬件控制電路,以紅外傳感器進行循跡和避障,各個模塊之間協調工作,很好地滿足了智能玩具小車的控制要求。實驗結果表明,所設計的智能玩具小車能有效循跡,快速轉彎,且系統具有較好的抗干擾能力,滿足設計要求。
樣品可以作為大學生學習單片機的應用實例,對于智能玩具小車設計也具有一定的應用參考價值。
[1]常賽,王宜懷.可自主編程的智能玩具的開發[J].微型電腦應用,2008,24(11):27-29.
[2]陳華偉,熊慧.智能循跡小車硬件設計及路徑識別算法[J].單片機與嵌入式系統應用,2010,12:26-28.
[3]姜巖蕾,史增芳.簡易語音控制小車的設計[J].電工技術,2007,(4):47-49.
[4]蘇維嘉,王旭輝.基于MSP430單片機數據采集系統[J].現代電子技術,2007,(30):04-15.
[5]韓毅,楊天.基于HCS12 單片機的智能尋跡模型車的設計與實現[J].計算機工程與設計.2008,29(18):4736-4738.
[6]何忠悅.直流伺服電機在智能玩具小車中的編程應用[J].電子世界,2012,(5):125-126.