吳迪
【摘要】以Arduino單片機為控制核心,將專用循跡模塊通過通孔銅柱固定在車頭控制車輪方向,用公對母杜邦線連接到控制器單片機。通過調(diào)試Arduino程序的數(shù)據(jù)改變轉(zhuǎn)彎速率,通過調(diào)試靈敏度螺母改變感應(yīng)器靈敏度。循跡的軌道是由黑色膠帶紙制成的黑線,當一側(cè)的傳感器感受到黑線時另一側(cè)輪子會轉(zhuǎn)動改變方向。讓中間的引導(dǎo)頭一直跟著黑線走,一直尋跡黑色。而最外邊的兩個傳感器不能碰到黑線。如果偏離軌道,小車就用單片機程序調(diào)整一下電機的控制,讓兩側(cè)電機加速或者減速,小車就轉(zhuǎn)彎。傳感系統(tǒng)里用紅外線被地面上的黑線吸收的原理傳感確定下一步動作。本系統(tǒng)在硬件設(shè)計方面,以Arduino單片機為控制核心,以紅外線傳感器檢測小車下方黑線,完成循跡功能。在軟件方面,利用Arduino語言進行編程,通過軟件編程來控制小車運轉(zhuǎn)。用PWM系統(tǒng)調(diào)速,控制小車前進的速度。實現(xiàn)小車根據(jù)地面環(huán)境,做出轉(zhuǎn)向和前進等動作,從而完成循跡的功能。
【關(guān)鍵詞】智能 循跡小車 問題及方案
【中圖分類號】TP23 【文獻標識碼】A 【文章編號】2095-3089(2019)04-0235-02
1.Arduino單片機概述
Arduino是一款便捷靈活、方便上手的開源電子原型平臺。構(gòu)建于開放原始碼simple I/O介面版,并且具有使用類似Java,C語言的Processing/Wiring開發(fā)環(huán)境。它包含兩個主要的部分:硬件部分是可以用來做電路連接和Arduino電路板;另外一個則是Arduino IDE,計算機中的程序開發(fā)環(huán)境只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什么了。Arduino能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達和其他的裝置來反饋、影響環(huán)境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。
2.項目主要研究內(nèi)容
設(shè)計題目為《基于Arduino的智能循跡小車設(shè)計》是以Arduino單片機為控制核心制造的小車。本報告主要研究小車的功能以及程序改良。將專用循跡模塊通過通孔銅柱固定在在車頭控制車輪方向,用公對母杜邦線連接到控制器單片機。通過調(diào)試Arduino程序的數(shù)據(jù)改變轉(zhuǎn)彎速率,通過調(diào)試靈敏度螺母改變感應(yīng)器靈敏度。當一側(cè)的傳感器感受到黑線時另一側(cè)輪子會轉(zhuǎn)動改變方向。讓中間的引導(dǎo)頭一直跟著黑線走,一直尋跡黑色。而最外邊的兩個不能碰到黑線。如果偏了,小車就用單片機程序調(diào)整一下電機的控制,讓兩側(cè)電機加速或者減速,或者一加速一減速(轉(zhuǎn)彎能力更強),小車就轉(zhuǎn)彎。傳感系統(tǒng)里用紅外線被黑條吸收的原理傳感確定下一步動作。小車靈敏度太高會導(dǎo)致小車偏離軌道,靈敏度太低會導(dǎo)致速度下降。本報告主要研究方向在小車組裝試用后對程序的調(diào)試使得小車以最快的速度跑完自己制作的兩條軌道。
3.小車原理
3.1循跡小車原理
基于單片機的小車尋跡系統(tǒng)。該系統(tǒng)采用兩組高靈敏度的光電對管,對路面黑色軌跡進行檢測,并利用單片機產(chǎn)生PWM波,控制小車速度。測試結(jié)果表明,該系統(tǒng)能夠平穩(wěn)跟蹤給定的路徑。設(shè)計原理:設(shè)計原理為物理原理,根據(jù)黑色吸收光線,白色反射光線來完成,該智能小車在畫有黑線的木頭顏色的地板行駛,由于黑線和地板對光線的反射系數(shù)不同,接收到的反射光的強弱來判斷“道路”——黑線。該模塊利用了簡單普遍的檢測方法——紅外線檢測法。
3.2避障小車原理
本小車的硬件部分分為幾個模塊:紅外線傳感器、Arduino單片機、電源(6節(jié)5號電池)、兩個直流電動機、電機驅(qū)動板、車身。電源連接在Arduino單片機上給整個小車供電。小車以Arduino單片機為核心,連接電機驅(qū)動板控制兩個直流電動機的運轉(zhuǎn),從而實現(xiàn)小車的前進。
4.模塊
4.1循跡模塊:小車可沿著地面的黑線正常行駛,不出界,不停止。
4.2避障模塊:小車遇到障礙物無法避讓反而向障礙物方向偏轉(zhuǎn)。
5.問題和解決方案
5.1電池
有時智能小車會出現(xiàn)已經(jīng)裝滿電池卻無法啟動的情況,此時除了接線差錯、程序出錯、電池用完等問題外,還會存在電池接觸不良的問題。通過斷電后向下摁電池,擠壓電池盒的方式確保電路被連通。
5.2速度
通過調(diào)試Arduino程序的數(shù)據(jù)改變轉(zhuǎn)彎速率,通過調(diào)試靈敏度螺母改變感應(yīng)器靈敏度。因為循跡原理是改變方向,所以即使是走黑線直線也會比平地慢上不少。
5.3黑線
黑線不得過粗,如果過粗將導(dǎo)致小車無法識別而不能前進。黑線不得過細,過細將導(dǎo)致小車來不及識別超速出線。實際因為膠帶紙原因遇到過粗問題。使用白色膠布覆蓋多余黑色膠布部分解決黑色膠布過粗問題。
5.4避障
避障模塊可能是程序出錯或是安裝問題導(dǎo)致無法正常避障,可能是轉(zhuǎn)動方向正好弄反,該問題將有機會在實驗時進行解決,預(yù)計解決方式是調(diào)整程序中轉(zhuǎn)向問題,將左右輪互換。
5.5改進方向
循跡模塊變量主要是執(zhí)行時間和PWM調(diào)速,執(zhí)行時間是小車接收信號向左或向右轉(zhuǎn)時經(jīng)歷的時間,數(shù)字越大時間越長,PWM是小車轉(zhuǎn)動時速率的大小,數(shù)字越大速率越大,但不可超過255。此外嘗試通過直接在小車上加工使其速度變快。
6.實驗過程以及結(jié)果
6.1 循跡模塊
利用黑色膠帶紙制作賽道,因為所擁有的黑色膠帶紙過粗,用較細的白色膠帶紙覆蓋多余的部分(如賽道1和2),黑線粗細因素:黑線過粗部分容易導(dǎo)致小車紅外線全部被吸收無法前進,黑線過細部分容易導(dǎo)致小車速度過快而在拐彎處無法提供足夠向心力而出界。
賽道1:此賽道略短,小車容易停止的位置是大拐彎處;
賽道2:此賽道稍長,因為拐彎處幅度不大,小車更容易完整運行。
A.小車修整后,根據(jù)對小車結(jié)構(gòu)和循跡模塊工作原理在保證原本成功率6成的前提下提高小車速度,即減少小車完成賽道所需時間,修整點:在支撐輪周圍黏上一定強度但可抖動的膠帶,使支撐輪盡量保持與兩主動輪平行以獲得前進的最大速度,但可能會導(dǎo)致在拐彎處無法提供足夠向心力而出界,在循跡模塊上兩個控制靈敏度的螺絲上喬正。B.程序修改后,根據(jù)對程序某些數(shù)據(jù)的理解修改數(shù)據(jù)在保證原本成功率6成的前提下提高小車速度,即減少小車完成賽道所需時間修改點:PWM比例0~255調(diào)速,數(shù)字越大說明車輪轉(zhuǎn)向速率越大,執(zhí)行時間接受一次信號變化以后車輪變化時間。
小車修整在賽道一和賽道二的完成時間上均有所成效,但成功率下降;程序修改在賽道一和賽道二的完成時間上均有所成效,賽道一增幅不如A,賽道二增幅顯著超過A,但成功率保持穩(wěn)定,綜合來看因為程序調(diào)整效果更為穩(wěn)定。
6.2避障模塊
無法解決避障失敗問題,疑似源于避障模塊部分硬件出故障。
7.結(jié)論
使用循跡模塊時在支撐輪周圍黏上一定強度但可抖動的膠帶,使支撐輪盡量保持與兩主動輪平行以獲得前進的最大速度,但可能會導(dǎo)致在拐彎處無法提供足夠向心力而出界。在循跡模塊上兩個控制靈敏度的螺絲上喬正,與和修改程序數(shù)據(jù)類似效果。實驗結(jié)果表面這種方法會略微降低成功率,但是加速情況較好。
根據(jù)對程序某些數(shù)據(jù)的理解修改數(shù)據(jù)在保證原本成功率真6成的前提下提高小車速度,即減少小車完成賽道所需時間。PWM比例0~255調(diào)速 數(shù)字越大說明車輪轉(zhuǎn)向速率越大。實驗結(jié)果表面這種方法會略微提高成功率,但是加速情況較差。兩種方法均有成效,綜合來看改變數(shù)據(jù)的方式更好。
參考文獻:
[1]黃杰,秦補枝.基于模糊控制的智能循跡小車的設(shè)計[J].中國科技信息,2010(20):148-149.