智能小車,是一個集環境感知、規劃決策、自動行駛等功能于一體的綜合系統。它可以適應不同環境,不受溫度、濕度等條件的影響,完成危險地段、人類無法介入等特殊情況下的任務,因此在軍事、航空、探險等領域有著極其重要的應用。但隨著應用的深入,在很多場合下需要多個小車之間可以實時通信,協作開展工作。基于上述考慮,本文基于STC89C52和nRF24L01開發設計了一款具備無線通信功能的智能小車。該小車不僅具備循線、避障等功能,而且在一定距離范圍內可以實時無線通信,協作開展相關工作。
1系統設計
1.1系統整體方案設計
基于STC89C52和nRF24L01的智能小車設計涉及到傳感器的應用、無線數據傳輸等,系統總體方案如圖1所示。
整個系統由單片機最小控制系統、電源模塊、電機及驅動、無線通信模塊、模式選擇模塊、循跡模塊以及避障模塊等。智能小車上電后,可由模式選擇模塊來確定小車的工作模式(作為主機或從機、循跡或避障等);循跡、避障模塊是根據相應傳感器所檢測數據來執行相應動作。為了使多個小車能夠同時協調工作,需要獲取對方的精確定位,這里可建立坐標系并根據運行情況實時更新坐標,并通過設計通信模塊及相應通信方式來實現小車之間的通信。
1.2特征信號選擇
要實現自動行駛,智能小車的傳感系統必須通過各類傳感器,獲取小車的狀態特征、道路環境特征兩類特征信號。
1.2.1小車特征參數
小車在共同工作時需要明確對方位置及行駛模式,從而可以獲得信息采集點坐標。特征狀態包括如下參數:
行駛模式,由撥碼開關確定的行駛模式。
小車坐標,小車當前位置相對于上電地點的坐標。
程序標志位,標志數據是否接收完數據。
方向,小車當前狀態與x軸方向的夾角。設上電時車身前方為x軸方向,逆時針旋轉90°為y軸方向。單位脈沖轉角,微控制器輸出單位脈沖小車所轉角度,數據需測量得到。
單位脈沖位移,微控制器輸出單位脈沖小車改變位移,數據需測量得到。脈沖數,小車運動時微控制器所輸出脈沖數。
1.2.2環境特征參數
實際工作時,兩車需獲知對方所處狀態,故無線傳輸數據中應包括環境特征參數。環境狀態包括以下參數:
狀態位,小車在運行過程中檢測到標志線后狀態標志。
道路狀態,由激光傳感器讀取的道路狀態。
障礙物狀態,由光電傳感器讀取的障礙物狀態。絕對位移,兩車之間的相對位置。
1.2.3參數定義及計算
對程序中各個參數的定義見表1。
小車方向的計算公式如式(1)所示:
angle=angle±n*Δangle(1)
坐標的計算公式如式(2),式(3)所示:
x=x+cosα*n*Δs(2)
y=y+sinα*n*Δs(3)
絕對位移的計算公式如式(4)所示:L0=(x 1-x2)2+(y1-y2)2(4)
2系統硬件實現
2.1單片機最小控制系統
單片機最小控制系統原理圖如圖2所示,本系統采用STC89C52單片機作為控制核心,微控制器通過I/O口與各個模塊相連。
STC89C5是一種低功耗、高性能CMOS 8位微控制器,具有8K在系統可編程FLASH存儲器。具有以下標準功能:8KB FLASH,512BRAM,32bI/O口線,看門狗定時器,內置4KB E2PROM,MAX810復位電路,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口。此次設計傳感器共需要控制器I/O口20個(傳感器6個,電機4個,無線模塊6個,撥碼開關4個),對輸出處理速度要求并不高,STC89C52芯片的I/O口,中斷及定時器完全可以滿足其功能要求。
2.2電機驅動
由于單片機輸出電流無法直接驅動電機,本系統采用基于TB6560芯片的步進電機驅動用以驅動步進電機。
TB6560是東芝公司推出的低功耗、高集成兩相混合式步進電機驅動芯片。其主要特點有:內部集成雙全橋MOSFET驅動;最高耐壓40V,單相輸出最大電流3.5A(峰值);具有整步、1/2,1/8,1/16細分方式;內置溫度保護芯片;具有過流保護;采用HZIP25封裝。
基于TB6560的驅動電路中步進電機控制信號有3個(CLK,CW,ENABLE),分別由微控制器的P0.0,P0.1端控制電機的方向(轉向時輸出電平類型相反,前進時輸出電平類型相同),P0.2,P0.3控制電機的轉速,本電路中使能端始終接+5V。
2.3通信模塊
本系統的無線通信模塊采用nRF24L01無線模塊。nRF24L01是一款內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型ShockBurst技術的新型單片射頻收發器件。工作于2.4~2.5GHz ISM頻段,其中輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗低,在以-6dBm的功率發射時,工作電流也只有9mA;接收時,工作電流只有12.3mA,多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便。
由模式選擇模塊確定小車的主、從機模式后,主機檢測到相應標志線后發送數據,從機接收到數據后應答并反饋回自身信息,并執行相應程序。
nRF24L01無線模塊原理圖如圖3所示,CE引腳功能為使能發射或接收,由P1.0控制;CSN,SCK,MOSI,MISO為SPI引腳端,微處理器可通過P1.1,P1.2,P1.3,P1.4來配置nRF24L01;IRQ為中斷標志位,由P1.5控制。
2.4循跡模塊
循跡模塊采用3個激光傳感器,型號為HLSD-2010B,分別置于小車左、右、前方,通過P2.5,P2.6,P2.7控制。
HLSD-2010B激光傳感器的工作電壓為5V,工作電流最大為30mA,信號輸出方式為直接電平輸出。
激光傳感器真值表見表2,控制器對于不同的測量值會執行不同的動作。
2.5避障模塊
避障模塊采用4個光電傳感器,型號為E18-D80NK分別置于車體前方位置。
光電傳感器E18的技術參數工作電壓5V,消耗電流DC小于25mA,響應時間小于2ms,指向角小于等于15°,有效距離為3~80cm可調,工作環境溫度為-25~55℃。
根據不同環境可將智能小車避障運動分為四種情況,如圖4所示。
(1)只有1,2號紅外傳感器檢測到障礙物,此時小車向右運動,若3,4號傳感器檢測到則向左運動方向運動。
(2)當前方發現障礙物,1,4號均未檢測的障礙物時,令小車向右運動。
(3)當4個紅外傳感器都測到障礙物時,小車先倒退,然后向右運動。
(4)若1,4檢測到障礙物而1,3沒有檢測到障礙物,小車并不改變方向仍按直線行走。
2.6電源模塊
本系統采用2節容量為2 250mA·h,額定電壓為3.6V的鋰電池供電。由于系統中單片機、循跡模塊及避障模塊的工作電壓為5V,無線模塊工作電壓為3.3V,設計過程中采用兩個由LM2596芯片構成的DC-DC穩壓模塊。
原理圖如圖5所示,對于微控制器穩壓模塊,輸入為7.2V,輸出為5.0V;對于nRF24L01穩壓模塊,輸入為5.0V,輸出為3.3V。
3系統軟件開發
本系統程序設計采取模塊化的編程思想對各個模塊進行程序編寫。在Keil4軟件所提供的平臺進行開發。
主程序流程圖及中斷子程序流程圖如圖6,圖7所示。
設A車為主機,B車為從機。A車正常運行一段時間后發送自身特征參數與環境特征參數數據給B車,隨后進入接收模式等待應答信號,從機接收到信息后返回應答信號。單次通信成功后A車轉入接收模式,等待B車發送自身特征參數與環境特征參數,互相接收完成對方數據為一次完整通信成功。A、B在通信成功后又返回原行駛模式,并處理所接收對方數據后執行相應程序。
無線傳輸數據包格式為:x軸坐標-y軸坐標-狀態位-道路狀態-障礙物狀態。
4結語
本文基于51單片機和nRF24L01無線模塊設計的智能小車,其硬件部分采用模塊化的設計思路不僅為軟件的調試提供便利,同時有利于其他功能模塊的添加。該智能小車不僅包含避障、循跡等功能單元模塊,而且包含了無線通信模塊,實現了多車之間的實時通信,為多車協作開展高復雜度和高難度工作提供了可能性。
評論
查看更多