胡巍礫 孟浩
(安徽農業大學信息與計算機學院 安徽省合肥市 230036)
無線電遙控器通常由發射部分和接收部分組成,無論是在工業上還是在家庭中都有無線電遙控的身影。文獻[2]是設計了一款紅外遙控器,可以精準測量脈寬,并可記錄一些電氣設備遙控器發射的紅外線數據,不夠安全穩定,障礙物的遮擋對信號正常的傳輸有嚴重的影響。文獻[5]用DSP 和FPGA 芯片實現了跳頻的相關通信,但是所需要的成本比較大。本文利用STM32F103C8T6 微控制器和NRF24L01 無線通信模塊等作為跳頻通信的主要部分,設計了相應的發射機和接收機,接收機有相應的脈沖輸出引腳,可以對接收機相應的輸出引腳進行2 次開發,即讓此款遙控器適用于不同的場合。
基于跳頻技術的無線電遙控器的研究與實現主要設計思想是將嵌入式設計、射頻通信設計、LCD 屏幕顯示設計相互融合[2],實現安全穩定的無線控制。無線電遙控器通過采集搖桿和按鍵的電壓值,并把電壓值轉換為相應的數字量,通過無線通信模塊將這些數字量發送給無線電遙控器的接收部分[3]。如圖1所示。
1.1.1 控制器模塊
如圖2所示,本文無線電遙控器發射部分選用具有Corter-M3內核的STM32F103C8T6 微控制器作為主控制器。STM32F103C8T6微控制器具有易開發、自身功能多、工作速度快等特點[4]。本系統通過STM32F103C8T6 微控制器的PB0、PA7、PA6、PA5、PA4、PB1 和±極的引腳來控制Nokia 5110 屏幕的顯示,通過PB8、PB7、PB6、PB13、PB14、PB15 和±極的引腳來控制NRF24L01無線通信模塊進行發射部分和接收部分之間的通信。

圖1:系統總體結構

圖2:STM32F103C8T6 電路圖

圖3:電源模塊原理圖

圖4:搖桿電位器模塊電路圖
1.1.2 電源模塊
電源電路設計在系統中具有舉足輕重的地位,電源電路設計的好壞直接決定了系統各個模塊正常的工作狀態、使用壽命,在很大程度上決定了整個遙控設備發射部分的穩定性和魯棒性。本文只需給STM32F103C8T6 微控制器3.3V 的電壓即可使無線電遙控器發射部分正常工作。其余的搖桿電位器、液晶屏顯示模塊、無線通信模塊也都是需要3.3V 的電壓即可驅動。STM32F103C8T6 微控制器電源系統中的ME6211-3.3 是一款性價比很高的線性穩壓器,被廣泛應用于各種電源模塊中,以便提高電源模塊的穩定性[5]。該微控制器的電源系統原理圖如圖3所示。
1.1.3 搖桿電位器模塊
搖桿電位器被廣泛應用于各種手柄中,本文中的遙控器發射部分中存在兩個搖桿電位器模塊,搖桿電位器可以把其看成一個簡單的滑動變阻器的增強版。每個搖桿電位器可以看成是兩個滑動變阻器的組合,其中兩邊都各有正負極和一個電壓信號輸出引腳,給兩邊的正負極引腳提供3.3V 的電壓,后期通過操縱者推動搖桿來改變每個通道上的電阻,中間的電壓信號輸出引腳接在模數轉換的檢測引腳上,通過檢測到因為搖桿位移而造成變化的電壓值,并通過模數轉換器轉換成無符號的數字量[6]。如圖4所示。
1.1.4 模數轉換器模塊
ADC 即模擬數字轉換器是將自然界中的電壓、溫度、濕度等這樣的連續變化的信號轉換成不連續的,人為抽象出來的間斷的信號,以便于讓程序去更好地去讀取外界信息,并對外界信息進行進一步的分析處理。STM32F103C8T6 微控制器包含了2 個模擬數字轉換器。我們只用了其中一個模擬數字轉換器的0~3 通道,這4 個通道分別用來檢測搖桿電位器的4 個主要通道,即左右兩個搖桿的上下左右主方向的位移量的測量。此微控制器中的模擬數字轉換器的檢測電壓范圍是0~3.3V 即可,否則會燒壞其模擬數字轉換器,故搖桿電位器只需要給其提供3.3V 的電壓即可,這樣檢測搖桿電位器的電壓信號輸出就不會超過3.3V。因此微控制器內部包含模擬數字轉換器,故不需要再外接相應模塊,只是需要將相應通道對應的模擬數字轉換器的引腳連接在被測電壓上面。本無線電遙控系統采用ADC1 的通道0(PA0)、通道1(PA1)、通道2(PA2)、通道3(PA3)和搖桿電位器的被測電壓引腳連接在一起。具體電路連接如圖5所示。
1.1.5 無線通信模塊
NRF24L01 無線通信模塊因其體積小、只需要3.3V 的供電電壓便可以驅動、價格便宜等優點從而被廣泛應用于各種市面上的各種遙控設備上,其輸出頻率和工作通信頻道可通過程序去設定,例如此微控制器中的NRF24L01_Write_Reg(u8 reg,u8 value)函數中的第二個值就是用來設定無線通信模塊的工作通信頻道,無線通信模塊的通信協議是SPI 通信協議[1],此通信協議比較簡單,數據傳輸速率快,都使得此通信模塊具有優良的性價比。如表1所示。
無線通信模塊和STM32F103C8T6 微控制器的具體接線圖如圖6所示。
1.1.6 液晶顯示屏模塊
Nokia5110 液晶屏是原來一款手機的拆機屏,具有體積小、3.3V供電電壓和易編程等優點。可以顯示圖片和漢字,而且市場上庫存量很大,不用擔心庫存的問題,需要在上面顯示漢字時候,利用取字模軟件,將相應大小的漢字轉換成十六進制輸出,再在程序中利用相應的顯示函數把十六進制的漢字輸出顯示在屏幕相應位置上。顯示圖片同樣也是借助取自字模軟件得到圖像的像素數組,顯示的圖片像素大小有限制,注意像素不能太大,不然不能正常顯示相應的圖片[7]。Nokia5110 與STM32F103C8T6 微控制器的具體接線圖如圖7所示。

圖5:stm32f103c8t6 微控制器和搖桿電位器引腳連接圖

圖6:無線通信模塊和STM32F103C8T6 微控制器的接線圖

圖7:stm32f103c8t6 微控制器和Nokia5110 液晶屏引腳連接圖
1.2.1 遙控器模塊無線電遙控器接收部分控制器模塊同樣采用STM32F103C8T6作為微控制器,其微控制器電路圖與圖2相同,這里不再贅述。
1.2.2 電源模塊
無線電遙控器接收部分控制器模塊,同樣借助外部的5V 輸出或者3.3V 輸出的電源供電即可,主控制器內部的電源模塊電路圖與圖3相同,這里不再贅述。
1.2.3 無線通信模塊
無線電遙控器接收部分同樣采用低功耗、及時性強的NRF24L01 無線通信模塊。無線通信模塊的詳細信息說明如表1所示。無線通信模塊具體引腳和STM32F103C8T6 微控制器的引腳接線圖如圖6所示。這里不再贅述。

圖8:系統運行主流程框圖

圖9:發射部分開機正常運行調試圖

圖10:發射部分與接收部分對頻調試圖

表1:無線通信模塊引腳使用表

表2:無線電遙控器正常運行數據

圖11:接收部分串口調試助手
上面對無線電遙控系統的硬件電路各個模塊做了詳細的闡述,本節將著重介紹無線電遙控器控制系統的軟件設計。控制系統的軟件設計也決定著無線電遙控性能的好壞。是整體系統的核心所在,無線電遙控器的跳頻通信、搖桿電位器變化電壓的采集、接收部分把接收到的變化電壓的數字量轉換為脈沖輸出等都依托著軟件系統的實現。軟件系統主要實現了發射部分先主動與等待中的接收部分進行對頻操作,對頻成功后,發射部分再按照設定好的跳頻序列進行每秒100 次的跳頻操作,同時把搖桿電位器的運動變化通過無線通信模塊傳輸過去,接收部分再把接收到的搖桿電位器運動信號轉換為脈沖信號最終通過相應的引腳輸出[8]。具體的程序流程框圖如圖8所示。
2.1.1 發射部分控制器程序流程
為了保證系統的穩定性以及功能的多樣性,在無線電遙控器開機階段,遙控器發射部分會進行Nokia 5110 液晶屏等各個模塊的上電初始化。同時開機時會對進行NRF24L01 無線通信模塊進行檢測,查看有無正常連接。在正常連接的情況下,程序才會進入對頻階段,并且Nokia 5110 液晶屏會警告顯示“(無線)模塊錯誤”,從而提醒你檢查NRF24L01 無線通信模塊有沒有正常連接。當連接是正確的時候,程序會首先開始檢測油門是否安全,即控制油門信號的搖桿電位器的搖桿有沒有回中,并且Nokia 5110 液晶屏會警告顯示“油門不安全”,當油門搖桿電位器的搖桿正式回中時候,才會正常顯示遙控界面。這時,點擊“菜單”按鍵進入主菜單設置界面,把兩個搖桿電位器的搖桿產生的相應變化電壓轉換為0-4096 的變化的數字量,根據數字量的改變去判斷搖桿電位器的搖桿具體的移動情況,用其中一個搖桿的移動去控制屏幕主菜單(主菜單內容:工作模式、新鮮功能、通道設置、快捷功能、系統設置)功能選項的具體選擇,另一個搖桿電位器的橫向移動去進行二級菜單(二級菜單內容:新建接收、音效開關、顯示切換、發射功率)的進入,進入二級菜單過后再通過其中一個搖桿電位器的搖桿選擇二級菜單中“新建接收”功能選擇,系統此時會正式把發射部分的NRF24L01無線通信模塊設置成發射模式[9]。具體工作通信頻率公式如下所示。

在上述操作進入“新建接收”功能選項后,接下來的對頻操作會按之前設定發射部分的對頻工作通信頻率為2440MHz 去對頻,即在NRF24L01_Write_Reg(u8 reg,u8 value)SPI 寫寄存器函數中設置第二個參數value 寫入的值為40[10],并且由發射部分在2440MHz工作通信頻率上先發射一個啟動標志,等待無線電遙控器的接收部分成功接收到此啟動標志后才開始正式的跳頻通信。這時搖桿電位器各個方向的運動變化被時刻轉換為0-4096 的變化的數字量,因為NRF24L01發送數據函數中發送的數組是8位長度的數據類型[11],所以將4096 數字量縮小一定倍數,讓其變成255 以內的數字量,使其能順利通過無線通信模塊在不斷變換工作通信頻道的方式下傳輸出去。同時Nokia 5110 液晶屏會顯示4 個遙控器主通道變化的幅度,以及以進度條的方式直觀顯示油門搖桿的變化幅度。
2.1.2 接收部分控制器程序流程
無線電遙控器接收部分同樣也設置了開機階段對于NRF24L01無線通信模塊的檢測。當無線通信模塊沒有正確連接時候,STM32F103C8T6 微控制器會有相應的LED 指示燈會亮起,提醒操縱者去確認無線通信模塊有沒有出現接觸不良或者意外脫落的情況。當無線通信模塊被重新接好時,系統軟件就會讓無線電遙控系統的接收部分的無線通信模塊設置成接收模式。接收部分為了配合發射部分的主控制器的開機階段選擇的對頻操作,于是在接收部分主控制器也同樣設定工作通信頻道為40,即2440MHz 去對頻。接收部分工作通信頻道設置為40 是為了和發射部分工作通信頻道保持一致。無線電遙控器接收部分程序停在正式接受到發射部分發送過來的啟動標志。當接收到啟動標志后,接收部分就會也進行同樣的跳頻操作。接下來接收部分每20ms 查看一次發射部分發射過來的搖桿搖動產生的變化的數字量,一共需要查看的是數組中的4 個變量,4 個變量分別代表無線電遙控器發射部分傳送過來的左右搖桿主要的4 個方向的變化量,通過判斷判斷這個4 變量變化的程度來決定每個通道高電平的延長時間,周期就是設定20ms,并且通過定時器設定相同的跳頻頻率,設定每秒跳100 次,即每10ms 按照事先設定好的和無線電遙控器發射部分一致的跳頻序列去改變工作通信頻道。
各個模塊在噴錫板上焊接完成之后,為了查看具體功能有沒有潛在的問題,具體相關測試具體過程如下。
(1)先給焊接好的噴錫板上的各個模塊供電,當Nokia 5110液晶屏模塊可以正常顯示開機畫面的時候,查看液晶屏背光按鍵是否正常,并推動搖桿電位器,查看液晶屏上對搖桿推動方向數值的變化以及油門進度條的顯示是否正常。
(2)點擊發射機右側的按鍵,進入主菜單設置界面,推動右搖桿上下運動選擇新鮮功能,再推動左搖桿向左運動進行新鮮功能的確定并進入二級菜單。查看二級菜單能否正常顯示。
(3)若二級菜單能夠正常顯示,同樣繼續推動右搖桿上下運動選擇新鮮功能,再推動左搖桿向左運動進行新建接收功能的確定,如果發射機與接收機成功對頻成功并順利進入跳頻通信,則發射機與接收機指示燈會共同亮起,并且在接收機通過USB 轉TTL 模塊在電腦串口調試助手上可以顯示發射機傳輸過來的搖桿的變化的數字量信息。還可以通過示波器觀看傳輸過來的脈沖。
如果運行狀況正常,無線電遙控器發射部分的液晶屏開機會提示油門是否安全,當右邊的油門歸零后,液晶屏會正常顯示出開機畫面。模擬調試狀態下,無線電遙控器發射部分開機正常顯示畫面如圖9所示。進行和接收機的對頻連接操作如圖10 所示。通過電腦串口調試助手顯示接收部分接收到的變化的電壓信號具體如圖11所示。
數據分析是由操作人員推動無線電遙控器的發射部分的搖桿,分析接收部分獲取到的變化的電壓信息以及采集到的波形,判斷本系統是否正常工作。
首先給無線電遙控器發射部分和接收部分供電,當油門搖桿沒有歸零,Nokia 5110 液晶屏會有油門不安全的提示,操作人員只有把油門歸零后才能順利進入下一步的操作。當通過發射部分上的按鍵點擊,進入主菜單界面,選擇新鮮功能選項,進入二級菜單后,再次選擇新建接收功能,此時等待發射部分和接收部分的led 燈同時亮起。此時通過推動左右兩個搖桿可以把產生的變化的電壓信息通過不斷變化的工作通信頻道傳遞給接收部分。緊接著可以在電腦串口調助手上查看到由變化的電壓轉化過來的數字量信息。
無線電遙控器正常啟動時,在開啟對頻功能后,無線電遙控器接收部分接收到的搖桿信號數字量如表2所示。從表中的數據可以看出推動遙控器發射部分的搖桿,可以將發射部分的搖桿電位器產生的變化的數字量輸送給接收部分。當發射部分的搖桿電位器產生移動時,接收部分會接收到變化的電壓信號,并且數字量在0~240之間變化。脈寬也會隨著搖桿位移狀態的改變而改變[12]。表2完全符合無線電遙控器正常運行的情況,所以可以判斷此時無線電遙控器工作狀況正常。
本文針對無線通信技術中的穩定性、安全性問題進行了探討,采取不斷改變其工作通信頻道的方式,并利用液晶屏模塊,NRF24L01 無線通信模塊、搖桿電位器模塊等進行了無線電遙控器發射部分與接收部分的研制。最后進行了相關跳頻和對頻功能的測試,測試結果和預期一致。設計和實現了基于跳頻技術的無線電遙控器的發射部分和接收部分。