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