趙鑫海
(國防科學(xué)技術(shù)大學(xué) 航天科學(xué)與工程學(xué)院, 長沙 410072)
?
基于LabView和Arduino的電視頻道無線監(jiān)視系統(tǒng)
趙鑫海
(國防科學(xué)技術(shù)大學(xué) 航天科學(xué)與工程學(xué)院, 長沙 410072)
設(shè)計了一種能幫助父母在另一個房間對電視節(jié)目進行監(jiān)控的系統(tǒng)。系統(tǒng)使用基于ATmega328P單片機的Arduino UNO硬件平臺處理紅外脈沖信號,實現(xiàn)對不同紅外信號的十六進制編碼。藍(lán)牙模塊負(fù)責(zé)將編碼后的信息發(fā)送至電腦,再由LabView程序處理后實現(xiàn)電視頻道的判讀,從而實現(xiàn)對電視頻道的無線監(jiān)視。
藍(lán)牙;Arduino;LabView;紅外信號處理
如何恰當(dāng)?shù)貙ψ优湛吹碾娨暪?jié)目進行監(jiān)視,成為家庭教育的薄弱環(huán)節(jié)之一。子女收看電視節(jié)目屬于個人愛好,且在年齡差距和叛逆時期雙重作用下,不愿讓家長知道。要做到在隔壁房間對其子女收看的電視節(jié)目進行監(jiān)控對家長來說是一件難事。
市場上銷售的電視大多支持紅外遙控器近距離遙控,本設(shè)計以接收電視遙控器發(fā)出的紅外信號為基礎(chǔ)展開。
該監(jiān)視系統(tǒng)主要硬件有:Arduino單片機(USB供電)、CH-05型藍(lán)牙模塊、紅外接收頭、藍(lán)牙適配器(若電腦自帶藍(lán)牙,則不需要)、電腦。
1.1 紅外接收頭
紅外遙控器發(fā)出的信號是一連串的二進制脈沖碼,為了使其在無線傳輸過程中免受其他紅外信號的干擾,通常都是先將其調(diào)制在特定的載波頻率上,然后再經(jīng)紅外發(fā)射二極管發(fā)射出去,而紅外線接收裝置則要濾除其他雜波,只接收該特定頻率的信號并將其還原成二進制脈沖碼,也就是進行解調(diào)。
市面上的一般電視遙控器發(fā)出的紅外信號都遵守NEC協(xié)議。NEC協(xié)議的特點如下:
① 8位地址位,8位命令位。
② 為了保證可靠性,地址位和命令位被傳輸兩次。
③ 脈沖位置調(diào)制。
④ 載波頻率為38 kHz。
⑤ 每一位的時間為1.125 ms或2.25 ms。
紅外二極管發(fā)出有規(guī)律時間間隔的紅外脈沖[1],三極管將其轉(zhuǎn)換為對應(yīng)時間間隔的高低電平,并由三極管的VOUT極輸出。高低電平定義如圖1所示。
圖1 邏輯0和1的定義圖
1.2 Arduino單片機
Arduino單片機通過如圖2所示的脈沖協(xié)議將接收到的不連續(xù)的高低電平信號編碼成8位的十六進制數(shù)。
圖2 按下遙控板上按鍵立即松開的脈沖協(xié)議
1.3 藍(lán)牙模塊
藍(lán)牙模塊主要負(fù)責(zé)發(fā)送數(shù)據(jù),內(nèi)置PCB射頻天線和8 Mb Flash,支持SPI編程接口,支持USB、UART、SPI、PCM等接口,支持主從一體,支持軟件控制主從模塊,通過REACH、ROSH認(rèn)證。
圖3 程序框圖(樣本程序)
藍(lán)牙模塊的GND、VCC、RX、TX引腳分別與Arduino單片機的GND、VCC、TX、RX引腳相連接。Arduino單片機帶有通過串口發(fā)送數(shù)據(jù)的功能(通過TX與RX引腳將信息通過藍(lán)牙發(fā)送至電腦接收端),進而實現(xiàn)了10 m左右范圍的通信。
2.1 Arduino數(shù)據(jù)采集和處理
Arduino有著固定的流程和規(guī)范,每個Arduino程序只有一個setup函數(shù)()和一個loop()函數(shù)。setup()函數(shù)里面編寫的代碼只執(zhí)行一次,一般在這個函數(shù)中編寫一些初始化和開機動畫程序,但當(dāng)setup()函數(shù)執(zhí)行完后,就開始循環(huán)執(zhí)行l(wèi)oop()函數(shù)內(nèi)的代碼[2]。函數(shù)的程序代碼基于C++語言,可從網(wǎng)上下載開源程序,此處不做介紹。紅外信號接收頭和藍(lán)牙模塊與Arduino單片機引腳連線如表1所列。
表1 引腳連接
2.2 LabView程序
LabView程序為G語言(圖形化編程),它將對接收到的數(shù)據(jù)進行最后處理并顯示所收看的電視頻道(LabView程序界面板中VISA函數(shù)的具體設(shè)置為:波特率9 600、數(shù)據(jù)位(8)、奇偶校驗(無)、停止位(1)、流控(無) ),并讀取藍(lán)牙串口接收到的8位十六進制數(shù)。
VISA讀取函數(shù)配置中,字節(jié)總數(shù)設(shè)置為2,表示只取末尾兩位命令碼。
添加字符串至數(shù)值轉(zhuǎn)換,將末位的兩位十六進制數(shù)轉(zhuǎn)換為十進制數(shù),在前面板添加數(shù)據(jù)緩存框以便于程序面板數(shù)值比較設(shè)置中常量的確定。通過比較函數(shù)與對應(yīng)的常量進行比較產(chǎn)生邏輯因變量(0或1),從而控制前面板的布爾指示燈,前面板布爾指示燈對應(yīng)電視臺標(biāo)。
程序框圖如圖3所示,其中共設(shè)計了9個重點電視臺,前面板有其對應(yīng)的臺標(biāo),左邊部分為VISA串口的參數(shù)設(shè)置,藍(lán)牙占用的是COM5串口。數(shù)據(jù)從最左段經(jīng)串口讀取后沿著程序框圖向右執(zhí)行。首先,選取末尾兩位十六進制數(shù),然后進行十六進制數(shù)字符串至數(shù)值轉(zhuǎn)換,再進行邏輯比較,之后進行布爾燈點亮,VISA讀取結(jié)束。
前面板如圖4所示,由電視臺標(biāo)、布爾燈和數(shù)據(jù)緩存框組成。它們的主要功能分別是:表征不同的電視臺;布爾燈點亮表示正在收看相應(yīng)電視節(jié)目,未點亮則表示該電視節(jié)目并非正在收看;數(shù)據(jù)緩存框主要用來直觀顯示編譯后的數(shù)值大小,以便于設(shè)計程序面板。
圖4 前面板圖(樣本面板)
3.1 系統(tǒng)工作流程圖
系統(tǒng)工作流程圖如圖5所示。
圖5 系統(tǒng)工作流程圖
3.2 系統(tǒng)運行及測試
該系統(tǒng)在室內(nèi)進行了測試,在臥室對客廳的電視節(jié)目進行監(jiān)視。在滿足需求的情況下,能在電腦屏幕上清楚地看到正在播放的電視節(jié)目的臺標(biāo)指示燈被點亮。
測試時采取的方案為控制變量法,即控制被測目標(biāo)與接收端的距離,并在中間夾的墻體數(shù)不同的情況下觀察電腦上前面板響應(yīng)的情況來判斷裝置的使用范圍,無墻阻礙條件下的測試結(jié)果如表2所列。
表2 無墻阻礙條件下的測試結(jié)果
在5 m距離下阻礙墻數(shù)不同的測試結(jié)果如表3所列。
表3 在5 m距離下阻礙墻數(shù)不同的測試結(jié)果
通過測試,可以發(fā)現(xiàn)文中設(shè)計可以適應(yīng)室內(nèi)的空間限制和物理障礙,能夠滿足用戶的需求。
[1] 博陸科電子./ BLK-MD-HC-05藍(lán)牙模塊技術(shù)手冊,2014.
[2] Dale Wheat.Arduino技術(shù)內(nèi)幕[M].北京:人民郵電出版社,2013:113-119.
[3] Michael McRoberts.Arduino從基礎(chǔ)到實踐[M].北京:電子工業(yè)出版社,2013:130-135.
[4] 劉君華,賈惠芹,丁暉,等.虛擬儀器圖形化編程語言LabView教程[M].西安:西安電子科技大學(xué)出版社,2001:141-144.
趙鑫海(本科生),主要研究方向為飛行器系統(tǒng)與工程。
Remote Monitor of TV Channel Based on LabView and Arduino
Zhao Xinhai
(College of Aerospace Science and Engineering,National University of Defence Technology,Changsha 410072, China)
The paper designs a system which can help parents to monitor the TV programs in another house.The system uses the Arduino UNO hardware platform based on the ATmega328P microcontroller to process the infrared pulse signals,then achieves hexadecimal coding different infrared signals.The coded information will be sent to the computer through Bluetooth,then can distinguish the TV channel after processing by LabView,so the parents can monitor the TV channels easily.
Bluetooth;Arduino;LabView;infrared signal process
TP274
A
迪娜
2015-01-11)