基于Atmega128的智能教學(xué)無人車控制系統(tǒng)設(shè)計
摘要:針對市場上大多數(shù)教學(xué)無人車設(shè)計采用單片機(jī)單一控制導(dǎo)致其功能擴(kuò)展性弱、靈活度低等問題,設(shè)計了一種基于Atmega128單片機(jī)和無線通信的智能教學(xué)無人車控制系統(tǒng),該系統(tǒng)包括PC機(jī)控制部分和無人車控制部分,通過PC控制端軟件可以經(jīng)無線通信模塊實現(xiàn)對無人車的準(zhǔn)確運動控制。實驗結(jié)果表明,系統(tǒng)工作穩(wěn)定,無人車在遇到干擾的情況下順利完成貨物運輸、環(huán)境勘察、敵我識別、打擊等功能,控制效果理想。
本文引用地址:http://www.ex-cimer.com/article/235826.htm關(guān)鍵詞:教學(xué)無人車;控制系統(tǒng);無線通信;單片機(jī)
智能教學(xué)無人車是一種履帶式移動機(jī)器人,目前市場上的無人車大多采用單片機(jī)對其進(jìn)行控制,其優(yōu)點是體積小,成本低,結(jié)構(gòu)簡單,但僅僅依靠單片機(jī)遠(yuǎn)不能使無人車在復(fù)雜多變的工作環(huán)境中進(jìn)行及時調(diào)整,并且極大地限制了其功能的擴(kuò)展。基于此不足,本設(shè)計主要利用PC機(jī)與無人車的無線通信,使無人車在PC機(jī)無線指令下完成前進(jìn)、后退、轉(zhuǎn)彎、打擊、生命值顯示、調(diào)速和自動行駛等功能,并通過車載攝像頭實時獲取無人車所處環(huán)境信息,實現(xiàn)了遠(yuǎn)程監(jiān)控。在執(zhí)行任務(wù)時,如遭遇敵方車輛干擾通信,無人車在抵御干擾信號同時進(jìn)行敵我識別,適時作出反擊。
1 設(shè)計原理
教學(xué)無人車控制系統(tǒng)由上位機(jī)(PC)控制部分和下位機(jī)(教學(xué)無人車)控制部分組成。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
?
?
系統(tǒng)工作原理為:打開教學(xué)無人車電源時,Atmega128單片機(jī)通過語音模塊使揚聲器發(fā)出啟動提示。當(dāng)上位機(jī)無線控制臺及PC端軟件準(zhǔn)備好后,PC端控制軟件通過USB口向無線控制臺單片機(jī)發(fā)出指令,使其配置無線模塊相關(guān)寄存器,芯片進(jìn)入指令發(fā)射模式;下位機(jī)由Atmega128單片機(jī)控制,在接收到上位機(jī)的指令后通過其集成的PWM外設(shè)模塊產(chǎn)生2路PWM波和4條轉(zhuǎn)向控制線經(jīng)電機(jī)驅(qū)動模塊增大驅(qū)動能力后控制左右2個電機(jī)產(chǎn)生相應(yīng)的動作。例如,當(dāng)PC端發(fā)出“左轉(zhuǎn)”的指令時,下位機(jī)的無線模塊接受成功后會自動返回接受成功應(yīng)答信號。接著Atmega128單片機(jī)通過PA口控制L298P,使左側(cè)電機(jī)反向轉(zhuǎn)動,右側(cè)電機(jī)正向轉(zhuǎn)動,從而實現(xiàn)左轉(zhuǎn)的功能;當(dāng)PC端發(fā)出“打擊”指令時,Atmega128則通過PE5口使紅外發(fā)射管發(fā)出相應(yīng)碼制的紅外進(jìn)攻信號;當(dāng)PC端發(fā)出“自動行駛”指令時,Atmega128結(jié)合接收霍爾傳感器采集回來的數(shù)據(jù),通過相應(yīng)算法來協(xié)調(diào)左右兩側(cè)的電機(jī),使坦克完成直線行走、轉(zhuǎn)過固定角度,行駛固定距離等功能。教學(xué)無人車通過連接到PE5口的紅外傳感器感應(yīng)對方無人車的攻擊信號。如果接收到紅外信號,PE5口會輸入固定碼制的信號,此時主控芯片會將生命參數(shù)減一并熄滅一個LED燈,當(dāng)所有LED燈都被熄滅后,主控模塊會通知語音芯片發(fā)出陣亡提示,無人車停止一切動作。
2 硬件電路設(shè)計
教學(xué)無人車控制系統(tǒng)硬件電路設(shè)計包括PC端無線控制臺部分和下位機(jī)無人車控制部分的硬件設(shè)計。
2.1 PC端無線控制臺部分硬件設(shè)計
無線控制臺部分由PC機(jī)、STC12LE5A60S2單片機(jī)、NRF24L01無線模塊及PL2303組成。PC端控制臺軟件通過USB口向STC12LE5A60S2發(fā)出指令,使其通過SPI串行通信協(xié)議配置NRF24L01的相關(guān)寄存器,隨后芯片進(jìn)入發(fā)射模式,將上位機(jī)指令轉(zhuǎn)發(fā)給下位機(jī)。其設(shè)計電路圖如圖2所示。
?
?
2.2 下位機(jī)無人車控制部分硬件設(shè)計
下位機(jī)硬件由MCU模塊、電機(jī)驅(qū)動模塊、傳感器模塊、無線模塊、語音模塊、LED生命值顯示模塊以及電源模塊組成。
2.2.1 MCU模塊
MCU模塊以Atmega128單片機(jī)為核心,Atmega128單片機(jī)是一款高性能、低功耗的AVR 8位微處理器,處理速度可達(dá)1 MIPS/MHz,應(yīng)用先進(jìn)的RISC結(jié)構(gòu),特別是具有I2C、SPI、PWM、RS232串口、ADC、定時器等功能十分全面的外設(shè)。該單片機(jī)通過SPI串行通訊接口與無線模塊連接,通過通用可編程I/O接口與電機(jī)驅(qū)動模塊、語音模塊、紅外發(fā)射管和接收管連接。
2.2.2 電機(jī)驅(qū)動模塊
電機(jī)驅(qū)動模塊用于驅(qū)動直流電機(jī),采用L298P電機(jī)驅(qū)動芯片。L298P是SGS公司的產(chǎn)品,為20管腳的專用電機(jī)驅(qū)動芯片,內(nèi)含二個H—Bridge的高電壓、大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯準(zhǔn)位信號,可驅(qū)動46 V、2 A以下的步進(jìn)電機(jī)和直流電機(jī),具有高電壓、高電流的特點。電路設(shè)計如圖3所示。
?
?
Enable控制電機(jī)停轉(zhuǎn),接到單片機(jī)的PE3、PFA口上,由這兩個I/O口產(chǎn)生PWM波控制電機(jī)轉(zhuǎn)動。input1—input4控制電機(jī)的正反轉(zhuǎn),接到單片機(jī)的PA0-PA3口上。OUT1、OUT2和OUT3、OUT4之間分別接2個直流電機(jī)。
2.2.3 傳感器模塊
傳感器模塊包括紅外模塊和霍爾模塊兩部分。
紅外模塊包含接收和發(fā)射兩個功能模塊。紅外接收模塊由一個紅外接收管構(gòu)成,接收對方車輛發(fā)射的紅外攻擊信號。當(dāng)系統(tǒng)接收到進(jìn)攻信號時,PE6引腳上會出現(xiàn)一個高電平,觸發(fā)一次外部中斷,在中斷服務(wù)程序中處理并判斷紅外數(shù)據(jù)。如果確認(rèn)為進(jìn)攻信號,則使生命值變量減一,同時熄滅一個LED燈。發(fā)射模塊由一只紅外發(fā)射管和一個三極管組成,紅外攻擊信號經(jīng)過三極管放大后由紅外發(fā)射管發(fā)出。攻擊信號為8位數(shù)據(jù),當(dāng)收到進(jìn)攻指令時,發(fā)射模塊將程序中設(shè)定好的8位數(shù)據(jù)按位發(fā)出。
霍爾模塊由兩只霍爾傳感器和四片磁鐵組成,用于測速,以實現(xiàn)調(diào)速、自動行駛等功能。磁鐵正反安放在左右兩個電機(jī)減速箱的二級齒輪的邊緣上。當(dāng)教學(xué)無人車行駛時,電機(jī)帶動齒輪轉(zhuǎn)動,兩片磁鐵就會交替從霍爾元件下面經(jīng)過,由于兩片的磁場方向不同,就會使霍爾元件內(nèi)部的電子發(fā)生不同的偏轉(zhuǎn),這樣,二級齒輪每轉(zhuǎn)過一周就會使霍爾元件產(chǎn)生一個脈沖信號,構(gòu)成閉環(huán)系統(tǒng)。主控芯片接收脈沖信息,通過不同算法可控制兩電機(jī)完成不同的控制要求。
2.2.4 語音模塊
語音模塊由WT588D語音芯片和SPI尋址的8M ROM芯片及其外圍電路組成。使用前將需要播放的語音燒寫在ROM芯片中。語音模塊使用三線串口控制模式,這種控制模式由CS,DATA,CLK 3條通信線組成,分別連接到Atmega128的PC0、PC1、PC2 3個I/O口??刂茣r序根據(jù)標(biāo)準(zhǔn)SPI通信方式。
2.2.5 無線模塊
無線模塊主要包括NRF24L01和Atmega128。NRF24L01采用FSK調(diào)制,內(nèi)部集成NORDIC公司自家的Enhanced Short Burst協(xié)議,可實現(xiàn)點對點或是1對6的無線通信,無線通信速度可達(dá)2.4 Gbps,并可以通過配置其寄存器實現(xiàn)調(diào)頻傳輸。主控芯片通過SPI協(xié)議配置NRF24L01的相關(guān)寄存器來完成對無線模塊的初始化和數(shù)據(jù)的傳輸。無線模塊的SPI信號線對應(yīng)的接到Atmega128的PB0-PB3 4個I/O口上,CE端接到PE2,利用Atmega128內(nèi)部集成的SPI功能進(jìn)行通信。無線模塊電路設(shè)計如圖4所示。
?
?
3 軟件設(shè)計
軟件設(shè)計包括控制端軟件的設(shè)計和終端軟件的設(shè)計。
3.1 控制端軟件設(shè)計
無人車控制臺的主控軟件將鍵盤指令轉(zhuǎn)化為控制碼發(fā)往下位機(jī),控制小車的動作并顯示下位機(jī)發(fā)來的狀態(tài)信息???。該軟件利用Labview串口通訊將鍵盤指令轉(zhuǎn)化為二進(jìn)制字符串送到上位機(jī)。利用模擬SPI的方式,通過STC12LESA60S2配置NRF24L01的寄存器使其處于發(fā)射模式。當(dāng)收到PC串口發(fā)送的數(shù)據(jù)時,NRF24L01在單片機(jī)的控制下將數(shù)據(jù)逐位發(fā)出。設(shè)計的控制端軟件如圖5所示。
?
?
3.2 終端軟件設(shè)計
教學(xué)無人車的終端軟件主要包括無線接收程序、驅(qū)動控制程序等。程序中定義變量Life為生命值標(biāo)識,定義Date為小車的控制標(biāo)識,定義函數(shù)Motor()為電機(jī)控制函數(shù)。流程圖如圖6所示,主要分為以下步驟:
?
1)小車啟動后,首先初始化各I/O口、系統(tǒng)中斷、SPI接口以及NRF24L01的相關(guān)寄存器。小車的無線模塊配置為接收模式。
2)下位機(jī)接收到無線信號后會產(chǎn)生一個中斷,將數(shù)據(jù)通過SPI送到Atmega128中。在控制程序中,用多分支選擇結(jié)構(gòu)switch—case判斷Date的值,通過調(diào)用Motor()函數(shù)控制電機(jī)做出相應(yīng)動作。
3)接收到紅外信號時,經(jīng)判斷若為有效信號,則使生命值標(biāo)識Life減一。同時判斷當(dāng)前的Life值,設(shè)置PA口的值控制LED燈(生命值)的顯示。
4 結(jié)束語
文中進(jìn)行了一種基于Atmega128單片機(jī)和無線通信的無人車控制系統(tǒng)設(shè)計。實驗結(jié)果表明,教學(xué)無人車在無障礙區(qū)域無線通信有效傳輸距離可達(dá)80~100米,利用車載攝像頭可以實時獲取無人車所處環(huán)境信息,實現(xiàn)遠(yuǎn)程監(jiān)控。其創(chuàng)新點是采用了PC控制模式和單兵運行模式兩種方式對無人車進(jìn)行控制,極大地增強(qiáng)了無人車的功能性和環(huán)境適應(yīng)能力。在實際對抗演練中,無人車在遇到干擾的情況下順利完成貨物運輸、環(huán)境勘探、反擊敵方車輛等功能,取得了良好的控制效果。該設(shè)計可廣泛應(yīng)用于短途貨運客運、應(yīng)急救援、惡劣環(huán)境下自動作業(yè)等領(lǐng)域。
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
霍爾傳感器相關(guān)文章:霍爾傳感器工作原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理
評論