基于NRF9E5射頻無(wú)線遙控系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞 撲翼微型飛行器 遙控系統(tǒng) 射頻 nRF9E5
1引 言[1]
現(xiàn)在和未來(lái)的飛行機(jī)器人[1-3]設(shè)計(jì)方向是期望機(jī)器人是小巧的、手提的、隨身攜帶,可以像昆蟲(chóng)一樣超低空飛行,能夠靈活地完成偵察和搜索任務(wù)。多年來(lái)以軍事用途為背景的無(wú)人飛行器(UAV—Unmanned Aerial Vehicle)研究一直十分活躍,這些無(wú)人飛行器通過(guò)地面基站遙控導(dǎo)航,或者通過(guò)自身的智能控制算法,來(lái)實(shí)現(xiàn)其自身的任務(wù)規(guī)劃與航跡生成,完成預(yù)定的飛行任務(wù)。仿生MAV是整個(gè)飛行任務(wù)的載體,仿生MAV性能的優(yōu)劣影響整個(gè)飛行系統(tǒng)的性能,目前仿生微飛行器有采用壓電驅(qū)動(dòng)、人造肌肉驅(qū)動(dòng)、形狀記憶合金(SMA)驅(qū)動(dòng)以及電磁微馬達(dá)驅(qū)動(dòng),但目前能夠?qū)崿F(xiàn)撲翼飛行的是采用微馬達(dá)的驅(qū)動(dòng)方式,其他的驅(qū)動(dòng)形式僅僅屬于概念性的設(shè)計(jì),從實(shí)用的角度來(lái)講,采用電磁微馬達(dá)的驅(qū)動(dòng)方式更為成熟。仿生微型飛行器采用高能電池供電,通過(guò)電磁微馬達(dá)驅(qū)動(dòng)撲翼,通過(guò)形狀記憶合金(SMA)來(lái)控制仿生微飛行器的運(yùn)動(dòng)模態(tài),通過(guò)微型傳感器來(lái)檢測(cè)仿生微飛行器的位置和姿態(tài),通過(guò)微處理芯片對(duì)輸入信號(hào)進(jìn)行檢測(cè),并通過(guò)輸出去控制相應(yīng)的執(zhí)行機(jī)構(gòu),仿生微飛行器通過(guò)射頻傳輸模塊建立和地面控制基站的數(shù)據(jù)鏈路。
2遙控系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)
撲翼微型飛行器的遙控系統(tǒng)主要是為了調(diào)節(jié)飛行器的撲動(dòng)頻率以及飛行器尾翼的升降、左右擺動(dòng);至于飛行器的視頻采集、姿態(tài)控制及位移控制,目前對(duì)其設(shè)計(jì)還不太現(xiàn)實(shí),因?yàn)閾湟砦⑿惋w行器還不能實(shí)現(xiàn)自主飛行,如果控制系統(tǒng)過(guò)于復(fù)雜,則不可避免地增大飛行器重量,這些因素不利于飛行器的飛行。整個(gè)遙控系統(tǒng)包括兩個(gè)部分,一部分為系統(tǒng)的發(fā)射部分,其主要任務(wù)是發(fā)送控制命令,通過(guò)計(jì)算機(jī)把控制命令經(jīng)計(jì)算機(jī)的串口和射頻模塊發(fā)送出去,完成命令的生成和傳輸,即通過(guò)計(jì)算機(jī)發(fā)送控制命令,傳遞給nRF9E5芯片,芯片通過(guò)射頻端發(fā)射出去;另一部分為撲翼微型飛行器自身的控制器,這部分的作用是接收地面的控制指令,經(jīng)控制器來(lái)調(diào)整微馬達(dá)的轉(zhuǎn)速,進(jìn)而來(lái)控制撲翼的拍打頻率,即把接受到的控制命令傳遞給nRF9E5芯片,然后由nRF9E5芯片輸出PWM脈寬,進(jìn)而來(lái)調(diào)整電壓輸出,從而來(lái)控制直流微馬達(dá)的轉(zhuǎn)速。
nRF9E5[4]采用QFN封裝,其尺寸大小為5×5mm,圖1所示為nRF9E5的引腳分配與封裝。其中P0口和P1口與8051的對(duì)應(yīng)端口相同,這兩個(gè)端口是采用CMOS驅(qū)動(dòng)的雙向IO口,其方向可通過(guò)_DIR和_ALT寄存器的設(shè)置來(lái)選擇端口的功能和數(shù)據(jù)傳輸?shù)姆较?。P0口通過(guò)P0_ALT和P0_DIR進(jìn)行設(shè)置,當(dāng)P0_ALT的對(duì)應(yīng)位為1時(shí),則P0.n具有UART、外部中斷、定時(shí)器輸入或脈寬調(diào)制輸出功能,其方向由P0_DIR的對(duì)應(yīng)位來(lái)確定;P1口的4個(gè)引腳MISO、MOSI、EECSN、SCK作為系統(tǒng)上電后EEPROM和系統(tǒng)進(jìn)行通訊的接口,EECSN為片選信號(hào),SCK為存儲(chǔ)器的時(shí)鐘信號(hào),MOSI、MISO分別為串行數(shù)據(jù)的輸入和輸出信號(hào)。P1口的控制寄存器分別為SPI_CTRL、P1_ALT、P1_DIR,當(dāng)SPI_CTRL=1時(shí),P1口作SPI口使用,當(dāng)SPI_CTRL=0時(shí),P1作通用IO口,XC1和XC2分別為系統(tǒng)時(shí)鐘的輸入和輸出,ANT1和ANI2為系統(tǒng)射頻信號(hào)的接口,AIN0~AIN3為模擬信號(hào)的輸入端口。遙控系統(tǒng)的結(jié)構(gòu)布局如圖2所示。
地面射頻遙控裝置的命令發(fā)射端的電路原理圖如圖3所示,J1為9針的D型插座,連接計(jì)算機(jī)的串口,控制命令由串口傳出,串口連接MAX3232芯片,該芯片為電平轉(zhuǎn)換電路,其主要目的是把計(jì)算機(jī)±15V的高電平轉(zhuǎn)換為MCU可以接受的0~3V的CMOS電平,J1
圖3 地面射頻遙控裝置的命令發(fā)射端的電路原理圖
插座中引出的引腳為2、3、5分別對(duì)應(yīng)與TXD、RXD、GND,經(jīng)MAX3232轉(zhuǎn)換后連接nRF9E5的P01、P02,P01和P02分別設(shè)置為第二功能的RXD、TXD;25AA320為Microchip公司的串行程序存儲(chǔ)器,MCU的運(yùn)行指令先燒寫(xiě)到此芯片中,當(dāng)系統(tǒng)上電復(fù)位后,程序代碼被下載到nRF9E5的內(nèi)存中;ANT1、ANT2為nRF9E5的射頻輸出端,射頻傳輸協(xié)議集成在射頻模塊內(nèi)。
圖4 撲翼驅(qū)動(dòng)裝置接收端的電路原理圖
圖4為撲翼驅(qū)動(dòng)裝置接收端的電路原理圖,該電路圖中與nRF9E5相連的串行程序存儲(chǔ)器、晶振電路、射頻傳輸電路部分與圖3的電路相同,不同的是P0口的P02、P03連接在三極管的基極上(其中一個(gè)作備用),P04、P06連接兩個(gè)發(fā)光二極管;三極管采用BE431,三極管的主要作用是為了把MCU輸出的PWM放大,增大其輸出功率,微馬達(dá)連接在JP1的5、6引腳或者7、8引腳;LED1、LED2為狀態(tài)指示燈,用來(lái)模擬尾舵的擺動(dòng)和升降;LM1117為電源管理模塊,其作用是為了把4~6V的不穩(wěn)定電壓轉(zhuǎn)換為3.3V的穩(wěn)定電壓,為nRF9E5和其它用電模塊提供穩(wěn)定的供電電源。
圖5 命令發(fā)射端程序流程
圖6 數(shù)據(jù)接收端程序流程
3系統(tǒng)的程序設(shè)計(jì)
當(dāng)遙控系統(tǒng)的硬件設(shè)計(jì)完成之后,軟件成為溝通各個(gè)硬件部分的靈魂和血脈,遙控系統(tǒng)的軟件程序設(shè)計(jì)主要涉及PC與nRF9E5的串行通訊,nRF9E5芯片的射頻傳輸與接收,PWM的脈寬輸出等內(nèi)容,圖5所示為遙控系統(tǒng)命令發(fā)射端程序流程,首先系統(tǒng)初始化,定義P0口功能、定時(shí)器初值(串行通訊的波特率)、SPI控制寄存器的初始化、RF控制寄存器初始化等,nRF9E5的串口能接收來(lái)自PC的命令,使接收的命令能順利傳出。nRF9E5的射頻傳輸模塊的功能和nRF905芯片的功能完全相同,將所有高速射頻協(xié)議集成在芯片內(nèi)部,和微控制器相連的部分只是采用簡(jiǎn)單的SPI接口,使得在編程時(shí)對(duì)數(shù)據(jù)的接收和發(fā)送變得異常簡(jiǎn)單,在ShockburstTM RX模式下,當(dāng)?shù)刂方邮照_,有效信號(hào)接收完畢后由AM和DR通知MCU,在ShockburstTM TX模式下,nRF905自動(dòng)生成CRC校驗(yàn),當(dāng)數(shù)據(jù)發(fā)送完后由DR通知MCU。
當(dāng)有數(shù)據(jù)要發(fā)送時(shí),MCU通過(guò)SPI接口將接收階段的地址和有效數(shù)據(jù)寫(xiě)入nRF905,MCU通過(guò)設(shè)置TRX_CE、TX_EN為高來(lái)激活nRF905 Shockburst進(jìn)行傳輸,nRF905在進(jìn)行數(shù)據(jù)傳輸時(shí),首先完成射頻無(wú)線傳輸系統(tǒng)的自動(dòng)上電,然后對(duì)數(shù)據(jù)包加前綴和進(jìn)行CRC校驗(yàn),進(jìn)而來(lái)完成數(shù)據(jù)包的發(fā)送,當(dāng)發(fā)送完畢后,設(shè)置數(shù)據(jù)就緒(DR)信號(hào)為高,可以繼續(xù)進(jìn)行數(shù)據(jù)的發(fā)送;如若AUTO_RETRAN設(shè)置為高,則nRF905不斷的進(jìn)行數(shù)據(jù)發(fā)送直至TRX_CE為低。
當(dāng)有數(shù)據(jù)需要接收時(shí),nRF9E5的射頻模塊進(jìn)入數(shù)據(jù)接收狀態(tài),當(dāng)nRF905檢測(cè)到頻率相同的載波時(shí),寄存器中的載波檢測(cè)(CD)信號(hào)變高,當(dāng)nRF905檢測(cè)到的有效地址與自動(dòng)地址匹配時(shí),寄存器中的地址匹配(AM)信號(hào)變高,當(dāng)nRF905接收到的數(shù)據(jù)包(通過(guò)CRC校驗(yàn))正確時(shí),射頻模塊去掉數(shù)據(jù)包的前導(dǎo)碼地址和CRC位,數(shù)據(jù)準(zhǔn)備就緒(DR)被置高,此時(shí)MCU可通過(guò)SPI接口將接收的數(shù)據(jù)讀出;當(dāng)接收完數(shù)據(jù)后,nRF905將AM和DR置低,此時(shí)nRF905將進(jìn)入發(fā)射、接收或者掉電模式;接收到的數(shù)據(jù)命令通過(guò)計(jì)算機(jī)指令來(lái)調(diào)整MCU的延時(shí)時(shí)間,從而產(chǎn)生不同占空比的PWM脈寬,經(jīng)三極管進(jìn)行放大從而來(lái)驅(qū)動(dòng)微馬達(dá),通過(guò)指令來(lái)調(diào)整MCU輸出脈寬的占空比來(lái)達(dá)到調(diào)整電機(jī)轉(zhuǎn)速的目的。
4 結(jié)束語(yǔ)
本文采用Nordic公司的nRF9E5芯片對(duì)撲翼微型飛行器的遙控裝置進(jìn)行了相應(yīng)的硬件設(shè)計(jì)和軟件編程,通過(guò)PC發(fā)送控制命令,經(jīng)計(jì)算機(jī)串口傳輸至nRF9E5,再由nRF9E5內(nèi)部的數(shù)據(jù)傳送,經(jīng)射頻(RF)模塊發(fā)送出去,另一端的接收裝置也采用相同的nRF9E5,空中傳輸?shù)目刂泼罱?jīng)射頻模塊接收到,然后由MCU讀出,進(jìn)而來(lái)控制PWM脈寬的調(diào)制,從而實(shí)現(xiàn)了對(duì)微型直流電機(jī)的調(diào)速;實(shí)驗(yàn)表明,該系統(tǒng)具有成本少、功耗低、尺寸小的特點(diǎn),能以較高質(zhì)量在100~150米范圍內(nèi)進(jìn)行信號(hào)的無(wú)線傳輸。
本文作者創(chuàng)新點(diǎn):微型飛行器是當(dāng)前研究的熱點(diǎn),其控制系統(tǒng)是該課題研究的重要內(nèi)容,本文采用nRF9E5射頻芯片進(jìn)行了仿生微型飛行器無(wú)線遙控系統(tǒng)的軟硬件設(shè)計(jì)與系統(tǒng)調(diào)試,具有電路體積小,傳輸距離遠(yuǎn),功耗低等特性。
參考文獻(xiàn):
[1] J. M. Grasmeyer and M. T. Keennon, “Development of the black widowmicro air vehicle,” in Proc. AIAA, Jan. 2001, Paper AIAA-2001-0127.
[2] 李娜英,李惠峰.SINS/GPS/CNS組合導(dǎo)航在高超聲速巡航飛行器上的應(yīng)用[J].微計(jì)算機(jī)信息,2005,Vol.21. 9-1:P6-8.
[3] J. Yan, R.J. Wood, S. Avadhanula, R.S. Fearing, and M. Sitti. Towards flapping wing control for a micromechanical flying insect. In Proc of the IEEE International Conference on Robotics and Automation, pages 3901–3908, Seoul, South Korea, May 2001
[4] Product specification:433/868/915RF transceiver with embedded 8051 compatible Microcontroller and 4 input, 10bit ADC, Nordic