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