陳福彩 東營(yíng)職業(yè)學(xué)院
本系統(tǒng)主要包括尋跡避障模塊、電源模塊、電機(jī)驅(qū)動(dòng)模塊、穩(wěn)壓模塊等。為了能夠更好地成系統(tǒng)的設(shè)計(jì)任務(wù),我們采用三個(gè)輪的小車,車體是由左右兩個(gè)輪以及后方的萬(wàn)向輪組成,其中左右兩個(gè)輪各有一個(gè)電機(jī)驅(qū)動(dòng),結(jié)合電機(jī)驅(qū)動(dòng)板L298N,通過(guò)主控制器的處理,來(lái)控制電機(jī)的運(yùn)轉(zhuǎn),實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等等。后輪是一個(gè)萬(wàn)向輪,起到支撐小車的作用。
系統(tǒng)硬件方面采用入門級(jí)單片機(jī)STC89C52[2]作為核心控制器,4 個(gè)8 位并行I/O 端口的設(shè)計(jì)也便于功能拓展。采用E18-D80NK 光電傳感器(傳感器分布如表1 所示)。采用25GA-370車模專用的輪胎,搭配具有調(diào)速性能好、編程簡(jiǎn)單的直流電機(jī),每分鐘轉(zhuǎn)速達(dá)到280 轉(zhuǎn),工作電壓為6V,系統(tǒng)采用12V 電池盒進(jìn)行供電,另外為了穩(wěn)定電池的電壓輸出,特增加穩(wěn)壓模塊LM2596S,輸入電壓為3.2-35V,輸出電壓為1.25-30V,電壓值連續(xù)可調(diào),輸出電流比較穩(wěn)定。
表1 傳感器分布表
系統(tǒng)應(yīng)用程序設(shè)計(jì)包括三部分,左循跡部分、避障部分、小柱檢測(cè)部分。左循跡部分包括四種情況:
第一,如果傳感器1、2 都能檢測(cè)到木板,這時(shí)小車已向右偏離軌道,需要通過(guò)程序設(shè)置其向左偏轉(zhuǎn);
第二,如果傳感器1、2 都沒有檢測(cè)到木板,這時(shí)小車已經(jīng)向左偏離軌道,需要設(shè)置其向右偏;
第三,如果傳感器1 檢測(cè)不到木板,傳感器2 能夠檢測(cè)到木板,說(shuō)明此時(shí)小車正沿木板左邊沿前進(jìn);
第四,如果傳感器1 檢測(cè)到木板,傳感器2 檢測(cè)不到木板,說(shuō)明此時(shí)正在通過(guò)直角拐彎處,需要設(shè)置其向右偏轉(zhuǎn)一個(gè)小的角度。
因?yàn)橄到y(tǒng)設(shè)定的是左循跡,所以避障部分第一塊木板是不需要設(shè)置程序去處理的,直接就能繞過(guò),通過(guò)調(diào)節(jié)傳感器3,使其檢測(cè)到第二塊木板之后,能夠向右偏轉(zhuǎn)90 度,然后直行前進(jìn),這時(shí)需要傳感器5 進(jìn)行檢測(cè),待檢測(cè)到已過(guò)木板軌道的邊緣時(shí),為了避免因?yàn)樾≤囁俣冗^(guò)快而造成傳感器檢測(cè)到地面之后小車掉落地面的情況發(fā)生,設(shè)置傳感器檢測(cè)到地面以后讓小車后退一小段距離,然后向左偏轉(zhuǎn)90 度直行,直行的過(guò)程中速度小一點(diǎn),在這個(gè)過(guò)程中傳感器4 一直在檢測(cè)第二塊擋板,當(dāng)檢測(cè)不到第二塊擋板時(shí),左轉(zhuǎn)90 度,然后再直行,再用傳感器5 去檢測(cè),如果檢測(cè)到已過(guò)木板軌道的邊緣,為防止掉落還是后退一段距離,右轉(zhuǎn)90 度,接著左循跡直線行駛。因?yàn)橄到y(tǒng)設(shè)置的是左循跡,并且第三塊擋板與木板邊緣之間的距離大于小車的寬度,所以不用考慮第三塊擋板,可以直接左循跡通過(guò)。避障部分流程圖見圖1。
圖1 避障部分流程圖
小柱部分一共有6 個(gè)小柱,其中小柱1、2 是一對(duì),小柱3、4是一對(duì),小柱5、6 是一對(duì),要求每一對(duì)小柱只能有一個(gè)留在木板軌道上。
小車通過(guò)小柱部分首先需要檢測(cè)軌道上是否有小柱1,傳感器6 用于檢測(cè)軌道是否含有小柱1,如果檢測(cè)到有小柱1,為避免小車直行時(shí)左側(cè)的傳感器會(huì)撞到小柱1,先讓小車右轉(zhuǎn)15 度,直行一段距離以后,再左轉(zhuǎn)15 度恢復(fù)直線行駛,直到傳感器5 檢測(cè)到已過(guò)木板軌道的邊緣時(shí),停一下,后退一小段距離,左轉(zhuǎn)90 度,直行一段距離,當(dāng)傳感器6 檢測(cè)不到小柱1 時(shí),左轉(zhuǎn)90 度直行,一直到傳感器5 檢測(cè)到已過(guò)木板軌道的邊緣時(shí),停一下,后退一小段距離,右轉(zhuǎn)90 度,左循跡直行,因?yàn)樾≈? 與木板邊緣的距離比小車的寬度大,所以不需要考慮有小柱3 的情況,直接左循跡就可以通過(guò),如果此時(shí)傳感器3 檢測(cè)到小柱4,右轉(zhuǎn)90 度,然后直行一小段,期間利用傳感器5 檢測(cè)或者延時(shí)控制),直行直到檢測(cè)到木板邊緣,左轉(zhuǎn)90 度,直行一小段(延時(shí)控制),左轉(zhuǎn)90 度,直行直到檢測(cè)到木板邊緣(利用傳感器5 進(jìn)行檢測(cè)),右轉(zhuǎn)90 度左循跡直行。如果檢測(cè)到小柱5 或者小柱6 ,都可以左循跡通過(guò)。
如果沒有檢測(cè)到小柱1,小車在通過(guò)擋板3 以后,左循跡通過(guò)小柱2,有小柱3也可以左循跡直接通過(guò),如果傳感器3檢測(cè)到小柱4,控制方法同上。同樣檢測(cè)到小柱5 或者小柱6,都可以左循跡直接通過(guò)。
經(jīng)過(guò)調(diào)試與運(yùn)行,最終實(shí)現(xiàn)的效果是從起點(diǎn)開始出發(fā),左循跡,遇到擋板繞過(guò),遇到小柱繞過(guò),最終順利到達(dá)終點(diǎn)。通過(guò)系統(tǒng)調(diào)試發(fā)現(xiàn)此系統(tǒng)存在的不足有小車運(yùn)行過(guò)程中的實(shí)際速度不太穩(wěn)定,跟程序中提前預(yù)設(shè)的速度有差值,需要改進(jìn)。