謝作敏+臧天++劉俊楓+王勤湧+江琳
摘 要:首先設(shè)計(jì)基于ARM Cortex-M3內(nèi)核的智能小車控制系統(tǒng),利用模塊化的理念設(shè)計(jì)了無(wú)線通信、紅外傳感器、避障模塊、電機(jī)驅(qū)動(dòng)、電機(jī)測(cè)速、電源管理等硬件模塊,采用NRF24L01設(shè)計(jì)了智能小車的無(wú)線通訊系統(tǒng),利用紅外傳感器沿白線尋跡,采用光電編碼器實(shí)現(xiàn)小車的測(cè)速功能,設(shè)計(jì)了小車行車程序,實(shí)現(xiàn)小車按控制者要求完成特定路線,并通過軟件速度調(diào)節(jié)實(shí)現(xiàn)小車啟停、勻速和加減速控制。
關(guān)鍵詞:NRF24L01無(wú)線傳輸;智能小車;紅外傳感器尋跡
引言
在當(dāng)代智能化的潮流下,通過智能化能從很大程度上減輕人工的工作負(fù)擔(dān),是今后的發(fā)展方向。本設(shè)計(jì)的智能尋跡小車,可以按照預(yù)設(shè)的模式在一個(gè)預(yù)先安置軌跡的環(huán)境里,根據(jù)指令在不同的預(yù)設(shè)節(jié)點(diǎn)間自行運(yùn)作,并具避障能力。采用STM32F103VBT6芯片作為小車的檢測(cè)控制核心;采用以LM339電壓比較器為核心的紅外傳感器模塊進(jìn)行循跡,并采用hc-sr04超聲波模塊檢測(cè)障礙物,使微處理器按照預(yù)設(shè)的模式控制小車進(jìn)行尋跡和避障。
1 控制系統(tǒng)結(jié)構(gòu)和無(wú)線通信網(wǎng)絡(luò)設(shè)計(jì)
基于ARM Cortex-M3 內(nèi)核的STM32F103VBT6微處理器芯片和nRF24L01的智能小車涉及到傳感器應(yīng)用、無(wú)線傳輸?shù)取V悄苄≤嚿想姾螅捎缮衔粰C(jī)確定小車的工作方式(待機(jī),循跡或避障等);循跡,避障模塊是根據(jù)相應(yīng)傳感器所檢測(cè)數(shù)據(jù)來(lái)執(zhí)行相應(yīng)動(dòng)作。為了獲取對(duì)小車方位的精準(zhǔn)定位,這里選擇建設(shè)坐標(biāo)的方式并根據(jù)運(yùn)行情況更新坐標(biāo)。
(1)要實(shí)現(xiàn)自動(dòng)尋跡,智能小車的傳感器系統(tǒng)必須通過各類傳感器,獲取小車的狀態(tài)、場(chǎng)地環(huán)境特征兩種信號(hào)。
(2)預(yù)行軌道設(shè)計(jì).本設(shè)計(jì)的預(yù)設(shè)主行駛軌跡分為橫向(Y軸)與縱向(X軸)。節(jié)點(diǎn)標(biāo)志為與主行駛軌跡垂直,且于主行駛軌跡等寬的一條線段與主行駛軌跡的交點(diǎn)。即主行駛軌跡X軸與Y軸的交點(diǎn)也視為一個(gè)節(jié)點(diǎn)。
2 控制系統(tǒng)硬件和軟件設(shè)計(jì)
智能小車的硬件采用模塊化設(shè)計(jì)理念,智能小車的硬件設(shè)計(jì)如圖2所示,主要包括以下幾個(gè)方面。
(1)處理器模塊。該模塊是智能小車的“大腦”,用于接收指令,發(fā)出控制命令,MCU選用了基于ARM Cortex-M3內(nèi)核的STM32F1
03VBT6微處理器芯片。
(2)循跡模塊。該模塊采用以LM339電壓比較器為核心制作的4路紅外傳感器,可識(shí)別白線和黑線。當(dāng)感應(yīng)到傳感器反射回來(lái)的紅外光時(shí),紅色指示燈亮,輸出為低電平;當(dāng)味感應(yīng)到傳感器反射回來(lái)的紅外光時(shí),指示燈不亮,輸出高電平。通過編程實(shí)現(xiàn)智能小車的尋跡。
(3)電機(jī)驅(qū)動(dòng)模塊。設(shè)計(jì)采用TB6612FNG電機(jī)驅(qū)動(dòng)模塊。TB6612FNG是基于MOSFET的H橋集成電路,效率遠(yuǎn)高于晶體管H橋驅(qū)動(dòng)器。相比L293D每通道平均600ma的驅(qū)動(dòng)電流和1.2A的脈沖峰值電流,它的輸出負(fù)載能力提高了一倍。相比L298N的熱耗性和外圍二極管續(xù)流電路,它無(wú)需外加散熱片,外圍電路簡(jiǎn)單,只需外接電源濾波電容就可以直接驅(qū)動(dòng)電機(jī),利于減小系統(tǒng)尺寸。對(duì)于PWM信號(hào),高達(dá)100KHz的頻率相比以上2款芯片的5KHz和40KHz也具有非常大的優(yōu)勢(shì)。并配合4個(gè)直流減速電機(jī)和麥克納姆輪已達(dá)到可以隨意切換4個(gè)行進(jìn)方向。
(4)無(wú)線通信模塊。采用nRF24L01,nRF24L01輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI接口進(jìn)行設(shè)置。幾乎可以連接到各種單片機(jī)芯片,并完成無(wú)線數(shù)據(jù)傳送工作。
電流消耗極低:當(dāng)工作在發(fā)射模式下發(fā)射功率為0dBm時(shí)電流消耗為11.3mA,接收模式時(shí)為12.3mA,掉電模式和待機(jī)模式下電流消耗更低。
(5)避障模塊。選用hc-sr04超聲波模塊檢測(cè)障礙物。考慮到在不同的場(chǎng)合下,照明光源可能不同,對(duì)于在車身上側(cè)的紅外傳感器可能會(huì)有未知的干擾。而且考慮到在工廠中可能會(huì)存在拋光金屬類的對(duì)紅外光漫反射性差的障礙物,可能對(duì)于紅外傳感器無(wú)法正確識(shí)別。超聲波對(duì)外界光線和電磁場(chǎng)不敏感,可用于黑暗、有灰塵或煙霧、電磁干擾強(qiáng)、有毒等惡劣環(huán)境中。本設(shè)計(jì)對(duì)于測(cè)距的要求不是很長(zhǎng),所以選用了超聲波傳感器。
3 紅外傳感器尋跡算法設(shè)計(jì)
//側(cè)方的紅外傳感器檢測(cè)到設(shè)定位置,控制電機(jī)停止
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==Bit_RESET)
{
systick_config(10); while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==Bit_RESET)
{
forward(); //前進(jìn)程序
}
stop(); //停止程序
x--;
systick_config(1000);
}
傳感器檢測(cè)到小車偏離軌道,自動(dòng)校正回直線
if((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==Bit_RESET)&&(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)!=Bit_RESET))
{
Setleft(seep); //傳感器檢測(cè)到向右偏移,左電機(jī)加速,小車校正回原軌道
}
elseif((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)==Bit_RESET)&&(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)!=Bit_RESET))
{
SetRight(seep); //傳感器檢測(cè)到向左偏移,右電機(jī)加速,小車校正回原軌道
}
else
{
hold(seep); //傳感器未檢測(cè)偏移,小車保持原來(lái)狀態(tài)行駛
}
4 結(jié)束語(yǔ)
本文主要分析紅外傳感器在智能小車尋跡方面的應(yīng)用,采用nRF24L01無(wú)線通訊模塊,實(shí)現(xiàn)了上位機(jī)對(duì)小車的控制,控制芯片基于ARM Cortex-M3內(nèi)核的微處理器,硬件采用模塊化設(shè)計(jì)理念設(shè)計(jì)無(wú)線通訊模塊、尋跡模塊、電機(jī)驅(qū)動(dòng)模塊等硬件模塊,設(shè)計(jì)了智能小車上位機(jī)控制系統(tǒng),使得本智能小車能在多種場(chǎng)合使用,對(duì)于智能小車的控制研究和控制平臺(tái)的設(shè)計(jì)有十分重要的意義。
參考文獻(xiàn)
[1]申忠宇,鄭啟文,王川,等.無(wú)線通信網(wǎng)絡(luò)的多智能小車編隊(duì)控制系統(tǒng)[J].南大學(xué)學(xué)報(bào),2013.
[2]強(qiáng)彥,葉文鵬,屈明月,等.基于紅外避障的智能小車的設(shè)計(jì)[J].太原理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2013.
[3]陳暉,張軍國(guó),李默涵.基于STC89C52和nRF24L01的智能小車設(shè)計(jì)[J].現(xiàn)代電子技術(shù)2012,35(17).
[4]張偉,陳迎,韓麗娜,等.智能小車系統(tǒng)的設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2011,30(9).