洪一民,錢慶豐,章志飛
(安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232001)
智能機(jī)器人的應(yīng)用在世界上越來(lái)越廣泛,逐步在各個(gè)領(lǐng)域都有所涉及。移動(dòng)機(jī)器人屬于智能機(jī)器人學(xué)的一個(gè)很重要的分支,目前世界各國(guó)都開始注重對(duì)移動(dòng)機(jī)器人的研究。在軍事偵察、地質(zhì)勘測(cè)、掃雷排雷等人類作業(yè)難度較大的領(lǐng)域以及對(duì)惡劣環(huán)境的監(jiān)測(cè)工作中都有廣泛的應(yīng)用前景。本文設(shè)計(jì)的基于STM32的循跡避障測(cè)距的智能小車就屬于智能移動(dòng)機(jī)器人的范疇,能夠通過(guò)傳感器探索周圍障礙物,并實(shí)現(xiàn)避障、循跡等功能。
基于STM32設(shè)計(jì)的智能小車系統(tǒng)主要的組成部分為:主控制器模塊、紅外循跡和避障模塊、電機(jī)驅(qū)動(dòng)模塊、超聲波測(cè)距模塊。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
由單片機(jī)主控制器芯片接收紅外傳感器發(fā)出的信號(hào),然后判斷其信號(hào),分析出小車需要做出的動(dòng)作,再將此動(dòng)作命令發(fā)送給電機(jī)驅(qū)動(dòng)模塊,最后控制小車來(lái)執(zhí)行相應(yīng)的命令完成對(duì)應(yīng)的動(dòng)作,以此達(dá)到讓小車避障的目的。若傳感器感應(yīng)到小車的左側(cè)有障礙物時(shí),主芯片則通過(guò)控制模塊讓右輪電機(jī)工作停止,左輪電機(jī)轉(zhuǎn)動(dòng)起來(lái),這時(shí)小車就會(huì)向右側(cè)轉(zhuǎn)動(dòng);反之,若障礙物被右側(cè)傳感器檢測(cè)到時(shí),左輪電機(jī)就會(huì)停止轉(zhuǎn)動(dòng),這時(shí)小車就會(huì)向左側(cè)轉(zhuǎn)動(dòng)。同時(shí),當(dāng)超聲波傳感器感應(yīng)到障礙物時(shí),單片機(jī)再根據(jù)超聲波遇到障礙物反射回來(lái)的信號(hào)計(jì)算其距離,以此達(dá)到測(cè)距目的。模擬圖如圖2所示。
圖2 模擬圖
智能小車的控制核心模塊,選用的是STM32F407單片機(jī),配合編程軟件Keil μVision,對(duì)供電燒寫模塊、時(shí)鐘模塊、電源電路、復(fù)位電路、紅外接收模塊以及電機(jī)驅(qū)動(dòng)模塊等進(jìn)行程序的操控。
電機(jī)驅(qū)動(dòng)模塊的主要特點(diǎn)是:工作時(shí)的電壓比較高,最高可達(dá)46 V;電流也非常大,瞬時(shí)峰值電流可達(dá)3 A,持續(xù)工作電流也可達(dá)到2 A;額定功率是25 W。驅(qū)動(dòng)模塊中用來(lái)驅(qū)動(dòng)直流和步進(jìn)電機(jī)、繼電器線圈等感性負(fù)載的是H橋型全橋式驅(qū)動(dòng)器;采用標(biāo)準(zhǔn)邏輯電平信號(hào)控制;兩個(gè)勢(shì)能控制端,在輸入信號(hào)不受影響的情況下,允許或禁止器件工作會(huì)使其內(nèi)部的邏輯電路在低電壓下工作;可以外接檢測(cè)電阻,并且反饋?zhàn)兓拷o控制電路。原理如圖3所示。
圖3 原理圖
紅外避障模塊所用的芯片是LM393芯片。該傳感器能夠適應(yīng)強(qiáng)光線,它的工作原理是發(fā)射管會(huì)發(fā)射出高頻率的紅外線,遇到障礙物則會(huì)反射回來(lái),并通過(guò)接收管對(duì)它進(jìn)行接收,然后比較處理。這時(shí)綠色指示燈則會(huì)亮起,同時(shí)信號(hào)輸出接口會(huì)輸出一個(gè)低電平的數(shù)字信號(hào),可通過(guò)電位器旋鈕調(diào)節(jié)檢測(cè)距離,其工作電壓為3.3~3.5 V。
紅外循跡模塊采用的傳感器是單光束的紅外傳感器,它是一種集發(fā)射和接收于一體的光電傳感器。檢測(cè)反射距離在1~25 mm范圍內(nèi)都適用;傳感器特設(shè)M3固定安裝孔,調(diào)節(jié)方向和固定都比較方便;比較電路使用的是寬電壓LM393比較器,具有信號(hào)干凈、波形好、驅(qū)動(dòng)能力強(qiáng)的優(yōu)點(diǎn),超過(guò)15 mA。此模塊主要的作用是能夠檢測(cè)出白底中的黑線,或者是檢測(cè)黑底中的白線。
超聲波測(cè)距模塊采用URF04作為芯片;測(cè)距方式是通過(guò)I/O口輸出至少10 μs以上的高電平信號(hào),同時(shí)模塊自動(dòng)發(fā)送8個(gè)40 kHz的方波,檢測(cè)信號(hào)是否返回,若信號(hào)返回,則需要通過(guò)Echo口輸出高電平,計(jì)算出超聲波從發(fā)射一直到返回所用的時(shí)間,作為輸出高電平的持續(xù)時(shí)間。測(cè)試距離=(輸出高電平時(shí)間×聲速)/2,聲速=340 m/s。通過(guò)此公式計(jì)算出測(cè)試距離,并進(jìn)行循環(huán)往復(fù)的測(cè)試,就可以達(dá)到移動(dòng)測(cè)量值。
通過(guò)初始化各模塊來(lái)實(shí)現(xiàn)智能小車的軟件設(shè)計(jì)。將各類傳感器采集信息通過(guò)數(shù)字信號(hào)的形式傳輸?shù)捷斎胍_。單片機(jī)再對(duì)此信號(hào)進(jìn)行判斷和處理之后控制智能車正常運(yùn)行。這些情況都需要通過(guò)軟件設(shè)計(jì)來(lái)實(shí)現(xiàn)。本次控制系統(tǒng)的設(shè)計(jì)是基于Keil μVision4編譯環(huán)境。因?yàn)镃語(yǔ)言相對(duì)于其他匯編軟件編程比較簡(jiǎn)單,所以使用C語(yǔ)言完成程序編寫。避障和循跡流程如圖4、圖5所示
圖4 循跡流程
圖5 避障流程
本次設(shè)計(jì)的創(chuàng)新點(diǎn)在于:通過(guò)PID算法控制小車的速度來(lái)提高小車的穩(wěn)定性。
通過(guò)閉環(huán)控制系統(tǒng)控制小車的速度,再測(cè)量小車行駛過(guò)程中的脈沖數(shù),并且根據(jù)小車行駛路徑和時(shí)間計(jì)算出小車的速度;然后將計(jì)算的速度與上一次測(cè)量的速度進(jìn)行比較,采用PID算法控制單片機(jī)輸出PWM脈沖到電機(jī)驅(qū)動(dòng)模塊PWM端,以此控制電機(jī)轉(zhuǎn)速。
本文設(shè)計(jì)的智能小車以避障為主要功能,系統(tǒng)中采用的紅外傳感器具有靈敏度高、體積小的特點(diǎn),也更易于安裝。STM32單片機(jī)與電機(jī)驅(qū)動(dòng)芯片相結(jié)合,不僅減少了智能小車的制造成本,同時(shí)也保證了整個(gè)系統(tǒng)的穩(wěn)定性與編程易實(shí)現(xiàn)。