夏天+++楊斌
摘 要:針對智能搬運(yùn)車的控制問題,提出了采用STM32F103控制器構(gòu)建控制系統(tǒng)的方法,應(yīng)用于智能搬運(yùn)車的尋跡及運(yùn)動(dòng)控制。首先進(jìn)行了智能搬運(yùn)車的總體控制方案設(shè)計(jì);然后設(shè)計(jì)了STM32最小系統(tǒng)、機(jī)械手控制、舵機(jī)控制和驅(qū)動(dòng)電機(jī)的速度控制算法;最后進(jìn)行了系統(tǒng)整體調(diào)試。實(shí)驗(yàn)表明,該控制系統(tǒng)實(shí)現(xiàn)了智能搬運(yùn)車的全向運(yùn)動(dòng)、精確定位和智能避障。
關(guān)鍵詞:全向移動(dòng)平臺(tái);智能控制;STM32F103
1 概述
1980年代初期,為了提升公司生產(chǎn)的效率,美國一家生產(chǎn)公司從其他地方學(xué)習(xí)了智能搬運(yùn)車的關(guān)鍵技術(shù),在此技術(shù)上又做進(jìn)一步的改進(jìn),整體提升了智能搬運(yùn)車的實(shí)用性及穩(wěn)定性[1]。此后,許多的公司都進(jìn)行了研究與創(chuàng)新,智能搬運(yùn)車技術(shù)有了長足發(fā)展。比較典型的例子包括:瑞典的一家制造企業(yè)開發(fā)了激光智能尋線車,利用激光引導(dǎo)小車尋線;荷蘭發(fā)明了以磁體技術(shù)導(dǎo)引的智能尋線車[2]。隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的高速發(fā)展,智能搬運(yùn)車充分利用了網(wǎng)絡(luò)資源、電子技術(shù)、傳感技術(shù)等一系列新技術(shù)的優(yōu)勢,大大提高了運(yùn)動(dòng)控制、智能尋跡和精確定位的性能,使得智能搬運(yùn)車的應(yīng)用越來越廣泛,比如汽車、餐飲、航天、醫(yī)院、工廠、農(nóng)業(yè)等[3]。隨著智能搬運(yùn)車應(yīng)用領(lǐng)域越來越廣泛,推進(jìn)了該技術(shù)不斷地完善與發(fā)展。本文提出了采用STM32F103控制器構(gòu)建控制系統(tǒng)的方法,采用白光傳感器實(shí)現(xiàn)自動(dòng)尋跡,超聲波傳感器對移動(dòng)方向的障礙進(jìn)行檢測,對障礙的位置進(jìn)行判斷從而選擇最優(yōu)的路線移動(dòng);設(shè)計(jì)了STM32F103主控電路、超聲波處理電路、電機(jī)驅(qū)動(dòng)電路、舵機(jī)控制電路和機(jī)械手控制電路,實(shí)現(xiàn)了搬運(yùn)車全向運(yùn)動(dòng)、精確定位和智能避障。
2 總體方案設(shè)計(jì)
智能搬運(yùn)車共有STM32F103微控處理器、電機(jī)驅(qū)動(dòng)、機(jī)械手、尋跡模塊、避障模塊、電源模塊和穩(wěn)壓模塊等七個(gè)部分組成。智能搬運(yùn)車控制系統(tǒng)以微控制器為核心,接收外圍傳感器的信號(hào),經(jīng)過相關(guān)算法的分析、判斷,輸出控制信號(hào)到電機(jī)驅(qū)動(dòng)模塊,實(shí)現(xiàn)智能搬運(yùn)車的運(yùn)動(dòng)控制;輸出控制信號(hào)到機(jī)械手控制模塊,實(shí)現(xiàn)抓取物體和放下的操作。在運(yùn)動(dòng)控制中,一方面要實(shí)現(xiàn)智能車的精確定位,另一方面要實(shí)現(xiàn)智能避障控制。在抓取與放下控制中,要實(shí)現(xiàn)精確定位和機(jī)械手的柔性控制。
2.1 搬運(yùn)車尋線方案
智能搬運(yùn)車有多種尋線方式,比如紅外傳感器尋跡、白光傳感器尋跡、電磁感應(yīng)尋跡和激光導(dǎo)引等,電磁感應(yīng)需要龐大的運(yùn)行軌道,激光導(dǎo)引需要大量的計(jì)算和嚴(yán)格位置要求,根據(jù)用戶需要,本設(shè)計(jì)選擇白光傳感器尋線[4]。
該傳感器把發(fā)射裝置和接收裝置作為一體,這樣減少了安裝時(shí)不必要的誤差。接收裝置檢測被反射回來的光強(qiáng)的大小,傳感器上面的轉(zhuǎn)換芯片把模擬量轉(zhuǎn)換為數(shù)字量上傳到主控芯片。提前預(yù)設(shè)好的軌道為白線軌道,把白光傳感器安裝在智能搬運(yùn)車的前端,從左到右分別標(biāo)記為1-15號(hào)傳感器。若7號(hào)傳感器感應(yīng)到白線,智能搬運(yùn)車將會(huì)跟著白線直走;若1-6號(hào)傳感器感應(yīng)到白線,說明智能搬運(yùn)車發(fā)生偏離并且是左邊車輪靠近白線。此時(shí)控制器會(huì)接收到白光傳感器微控芯片傳來的八位二進(jìn)制信號(hào),將會(huì)立即調(diào)整左右電機(jī)的速度使其產(chǎn)生速度偏差,讓右電機(jī)速度大于左電機(jī)速度,從而使智能搬運(yùn)車發(fā)生左轉(zhuǎn)彎,實(shí)現(xiàn)智能搬運(yùn)車對其行駛方向的矯正。同理,若此時(shí)8-15號(hào)傳感器感應(yīng)到白線,智能搬運(yùn)車放生偏離并且車身發(fā)生右偏,控制器會(huì)調(diào)整左右電機(jī)速度,讓左電機(jī)的速度高于右電機(jī)的轉(zhuǎn)速,從而使智能搬運(yùn)車發(fā)生右轉(zhuǎn)彎。
2.2 機(jī)械手控制方案
本設(shè)計(jì)的智能搬運(yùn)車車身采用四輪模型車,車身重量比較輕,為了整個(gè)設(shè)計(jì)安全性,采用簡單的機(jī)械手設(shè)計(jì)。就是通過STMF103微控制器產(chǎn)生PWM方波,通過控制舵機(jī)的轉(zhuǎn)動(dòng),讓機(jī)械手可以抓取貨物和放下物體。整個(gè)機(jī)械手使用兩個(gè)舵機(jī),兩個(gè)舵機(jī)相互配合完成操作,一個(gè)舵機(jī)控制角度的轉(zhuǎn)向,另一個(gè)舵機(jī)控制物品的抓取與放下。
2.3 電源方案
在智能搬運(yùn)車的控制中,需要較大的輸出電流和電壓,選用四塊基于LM2596來提供穩(wěn)定的電壓。該穩(wěn)壓模塊能夠輸出3A的驅(qū)動(dòng)電流,而且該模塊對電源的高頻率的干擾具有抗干擾的能力,減少對設(shè)計(jì)的影響。在輸入電壓最高為40V的情況下,它可以調(diào)節(jié)出最高為37V的各種電壓。該器件內(nèi)部集成頻率補(bǔ)償和固定頻率放生器,LM2596的內(nèi)部振蕩頻率為150KHz,具有功耗小,效率高的特性。相對于低頻開關(guān),它的濾波元件規(guī)模更小,該電壓調(diào)節(jié)器添加幾個(gè)外部元件就可以使用,通常該模塊只需要四個(gè)外接元件,它可以使用通用的標(biāo)準(zhǔn)電感,這使開關(guān)電源電路的設(shè)計(jì)非常的簡單,但是又具有自我保護(hù)的功能。
2.4 避障方案
避障傳感器采用E18-D80NK,是一種紅外傳感器,這種紅外傳感器是集接受和發(fā)射于一體,該傳感器擁有較遠(yuǎn)的探測距離,可以不受可見光干擾,而且操作起來比較方便。該紅外傳感器對黑色綠色等比較敏感,對白色紅色不敏感,而且在粗糙的面比光滑的面效果更好,紅外傳感器的實(shí)質(zhì)并不是通過檢測顏色來判斷,而是通過檢測紅外對光的反射或吸收量與周圍材料相比的不同而實(shí)現(xiàn)檢測的。
3 硬件系統(tǒng)設(shè)計(jì)
智能搬運(yùn)車控制系統(tǒng)包括控制器最小系統(tǒng)、電機(jī)驅(qū)動(dòng)電路、穩(wěn)壓電路、機(jī)械手系統(tǒng)等。
主控芯片采用STM32F103,是STM32系列單片機(jī)的一種,符合AMR公司Cortex-M3內(nèi)核標(biāo)準(zhǔn)。它的最高工作頻率為72MHz,是一款性能非常高的產(chǎn)品,STM32微處理器的工作電壓為3.3V,在工作時(shí)能耗非常低。自帶電源監(jiān)控,看門狗定時(shí)器,復(fù)位電路檢測,擁有非常精確的振蕩電路,該振蕩電路頻率為8MHz,可以作為時(shí)鐘源使用[5]。
電機(jī)驅(qū)動(dòng)電路選用BTS7970芯片,BTS7970可結(jié)合其他的BTS7970形成全橋和三相驅(qū)動(dòng)結(jié)構(gòu)。每一個(gè)芯片有7個(gè)引腳,IN是一個(gè)輸入引腳,它決定著高低電位的開啟,當(dāng)設(shè)置為低電平的時(shí)候,INH會(huì)控制進(jìn)入休眠狀態(tài)。SR引腳為速率轉(zhuǎn)化,其速率的調(diào)節(jié)為SR和地線之間的電阻R5控制。OUT1、OUT2兩個(gè)輸出接口連接左電機(jī)的兩個(gè)控制端。同理,OUT3、OUT4接右電機(jī)的兩個(gè)控制端。Vs可接邏輯電平信號(hào),這里直接連接12V邏輯電壓。
電源通過LM2596芯片實(shí)現(xiàn)DC-DC變換,經(jīng)過一系列變換,整合電流,過濾掉雜波以后生成直流電。它可以自己進(jìn)行調(diào)節(jié)電壓,并且能夠達(dá)到穩(wěn)定電壓的效果。LM2596穩(wěn)壓最高可以輸入40V電壓,選擇接入一個(gè)12V的輸入電壓,開關(guān)電源經(jīng)過降電壓,濾波以后輸出一個(gè)電壓為5V的穩(wěn)定電壓。
機(jī)械手的動(dòng)作靠舵機(jī)控制,STM32的定時(shí)器輸出兩路PWM波控制相對應(yīng)的舵機(jī)來工作,每一路PWM控制一個(gè)舵機(jī)。每一個(gè)PWM波的周期是二十毫秒,通過在占空比百分之五到百分之十之間調(diào)節(jié)來控制舵機(jī)的轉(zhuǎn)向。上電以后,舵機(jī)輸出一個(gè)0.5ms-2.5ms的高電平脈沖,舵機(jī)也會(huì)轉(zhuǎn)動(dòng)相對應(yīng)的角度,舵機(jī)的轉(zhuǎn)動(dòng)角度為0度到180度,LD-2015在斷電的時(shí)候可以手動(dòng)轉(zhuǎn)動(dòng)360度。兩個(gè)舵機(jī)組成的機(jī)械手結(jié)構(gòu),通過調(diào)節(jié)每一個(gè)關(guān)節(jié)處舵機(jī)轉(zhuǎn)動(dòng)的角度即可實(shí)現(xiàn)機(jī)械手在兩維度間的動(dòng)作,同時(shí)實(shí)現(xiàn)一定限度的機(jī)械手的升降。
4 軟件系統(tǒng)設(shè)計(jì)
編程軟件選擇Keil uVision4,對STM32F103芯片進(jìn)行C語言程序編寫,采用的是STM32F103標(biāo)準(zhǔn)的庫函數(shù)編寫。包括主程序、巡線子程序、PWM產(chǎn)生子程序、避障子程序等。
程序初始化以后,智能搬運(yùn)車首先通過STM32微控制器控制機(jī)械手搬運(yùn)物品,然后智能搬運(yùn)車會(huì)利用尋線模塊進(jìn)行尋線。尋線傳感器會(huì)根據(jù)白線所在位置進(jìn)行位置的調(diào)整,最終經(jīng)過不斷地位置調(diào)整,智能搬運(yùn)車可以尋著白線向正確方向前進(jìn)。當(dāng)?shù)竭_(dá)位置時(shí),機(jī)械手放下物體,即為完成工作。
尋線程序是設(shè)計(jì)的重點(diǎn),當(dāng)白光傳感器檢測白線并發(fā)送信號(hào),判斷智能搬運(yùn)車是否發(fā)生跑偏現(xiàn)象。如果沒有檢測到偏離白線,智能搬運(yùn)車會(huì)沿著預(yù)設(shè)好的軌跡直行。如果小車發(fā)生向左偏離,小車會(huì)自動(dòng)向右轉(zhuǎn),并且不斷地判斷小車是否還偏離,直到小車不發(fā)生偏離;同理,若果小車發(fā)生右偏移的,它也能夠向左轉(zhuǎn)調(diào)整方向,直到小車可以沿著軌跡直走為止。
通過改變PWM波的脈沖寬度,來改變舵機(jī)的轉(zhuǎn)軸角度,STM32微控制器通過數(shù)字輸出對模擬電路來進(jìn)行調(diào)節(jié),通過調(diào)節(jié)脈沖的寬度來達(dá)到整體的控制。STM32F103一共有八個(gè)定時(shí)器,而一般通用的定時(shí)器如TIM2,3,4,5都可以產(chǎn)生四路的PWM,但是TIM6和TIM7不能產(chǎn)生PWM方波。
5 結(jié)束語
本文設(shè)計(jì)的控制系統(tǒng)實(shí)現(xiàn)了智能搬運(yùn)車的自動(dòng)尋跡、自動(dòng)避障、物體精確的抓取和放置等功能,制作出了智能車模型,通過實(shí)驗(yàn)和測試,結(jié)果表明達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),具有很好的推廣應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]梁僑,趙宏才,趙曉杰,等.自動(dòng)避障避險(xiǎn)小車的研究[J].遼寧科技學(xué)院學(xué)報(bào),2015,02:4-6.
[2]王秀星.電子商務(wù)環(huán)境下智能倉儲(chǔ)系統(tǒng)的應(yīng)用[J].信息技術(shù)與信息化,2015,04:73-74.
[3]黃麗莉,張智勇.物聯(lián)網(wǎng)技術(shù)在物流倉儲(chǔ)管理體系中的應(yīng)用[J].中國集體經(jīng)濟(jì),2012,31:67-69.
[4]高云華.基于AT89S52的多功能智能小車設(shè)計(jì)[J].山西電子技術(shù),2012,05:26-27.
[5]張鍇,李世光,朱曉莉,等.基于STM32的智能巡線小車[J].電子測量技術(shù),2012,02:105-107.