2019年1月11日 星期五

模組介紹 : faya RF發射接收模組



學習目標 : 認識faya RF發射接收模組的功能及使用方式
學習時間 : 45mins
示範模組 : (1) fayaduino Nano(x2)
                   (2) faya RF發射模組
                   (3) faya RF接收模組


====================功能介紹====================
faya RF發射與接收模組透過簡單的接線,從Arduino的函式下指令,就能輕鬆的傳送和讀取資料,完全不需要有藍芽或Wifi背景知識,使用起來非常方便。

faya RF發射模組外觀如下圖,它的左邊兩個埠分別是Din和NC(No Connection - 無作用),Din用來接收來自Arduino的數位訊號,內部電路將訊號調變至315MHz的頻段由天線 (ANT)發射設至空氣中。


faya RF接收模組外觀如下圖,它的右邊兩個埠分別是Dout和NC,天線接收到空氣中315MHz頻段訊號後,利用內部的電路還原回數位訊號,然後從Dout埠傳給Arduino接收處理。


注意到我們這個範例需要用到VirtualWire函式庫,函式中以預先設定好腳位,因此連接線路時必須跟著預設腳位連接

Arduino D12 --- RF發射_Din
Arduino D11 --- RF接收端Dout

 ====================原理知識====================
以下解釋提供給有需要知道背後原理的人:

本電路將發射訊號

RF發射模組:
利用315MHz晶體產生在315MHz的諧振電路,並將數位訊號以ASK(Ampliture Shift Keying)調變的方式傳送至空氣中。

電路圖如下所示:


RF接收模組:
電路主角為MICRF002BM RF接收IC,此IC接收頻段為300~440Mhz,按照Datasheet的建議,選擇周邊電阻/電容/電感零件,就能接收315MHz頻段的ASK訊號,並將此ASK訊號解調還原成基頻的數位訊號,詳細資料可以參考Datasheet - 這裡

電路圖如下所示:


====================範例實作(一)====================
了解模組功能(原理)後,我們用以下範例來展示模組的功能:

目標:
(1)利用Arduino產生"HELLO WORLD"字串,並透過RF發射模組發射
(2)利用Serial Monitor,查看RF接收模組的資訊

接線:
(1) 電源線連接如下圖所示,連接的說明請看這篇文章簡易版

發射端電源線連接方式:


接收端電源線連接方式:


(2) 訊號線連接  (RF發射模組)

        D12  ==>  RF發射模組_Din


(3) 訊號線連接  (RF接收模組)

        D11  ==>  RF接收模組_Dout


範例程式:
本模組需要使用[VirtulWire]函式庫來傳輸高頻訊號,函式庫可在此[下載],請在下載後解壓縮在Arduino的Libraries資料夾,重新開啟Arduino後即可使用。

不像藍芽或WiFi傳輸,有些通訊傳輸電路為了成本和功能考量,設計得比較不嚴謹 (也不需要那麼嚴謹),此時可以利用VirtualWire函式庫輔助訊號完成的傳輸,例如訊號的同步、 錯誤檢查等等,讓訊號能夠完整的傳送和接收。VirtualWire詳細介紹可以參考這邊Datasheet可由此下載。

發射端:

備註:
- L14 : 和UART一樣,發射和接收端的傳輸速率要一致
- L19~24 : 發送字串的指令使用方式固定,需要用到此模組時,修改要傳送的資訊(L19)即可

接收端:

備註:
- L21 : 接收資料需要設定資料緩衝區大小,此大小定義在 Libraries資料夾內的 VirtualWire_Config.h,預設值為40個字元,如果預期傳輸的資料大於此字元時,可自行更改
- L24~35: 發送字串的指令使用方式固定,需要用到此模組時,直接套用即可。

範例結果:

將發射和接收程式分別上傳到兩邊的Arduino,傳送和接受資料的期間,兩邊Arduino的內建LED都會亮起。



開啟接收端的[串列埠監控視窗],即可發現如下畫面


討論:
  • 連接此RF模組時,發現當天線往Arduino主板方向時擺設的話,會有接收不良的情況發生,所以請朝外擺設可以讓收訊更良好唷。
  • 在沒有阻擋的情形下,筆者能夠穩定的的收到5公尺外的發射訊號,實際上應該可以更遠,前提是用比較好的電源來源,例如筆電的電源或者高品質的USB插座電源,筆者用過低品質的行動電源,傳輸距離超過1.5公尺後,接收到的資料就斷斷續續了
  • 本篇範例介紹大家如何簡單的傳輸字串,大家可以把發射端連上搖桿或按鈕,讓搖桿和按鈕的狀態對應到相對地字串指令,接收端收到指令後再進行指令解碼,這樣一個簡單的遙控器就完成囉!
歡迎大家在底下留言或到我們的粉絲團留言喔!
====================================
fayalab 粉絲團
FB本篇留言版

沒有留言:

張貼留言