【技能大賽真題】2019年物聯網國賽任務三題1-無線通訊系統html
XMF393 小蜜蜂筆記 / 廣東職院 歐浩源數組
【題目要求】:無線通訊系統網絡
Zigbee通信擁有短距離無線通信的能力,選用一個Zigbee節點盒(藍色),一個Zigbee模塊(黑色),實現點對點的數據傳輸通信,考覈選手Zigbee點對點知識的掌握,利用給定的工程實現任務。要求以下:
<1> Zigbee網絡號PAN ID、信道號Channel ID請參考紙質附件給定的值。
<2> 程序開始運行Zigbee節點盒LED一、LED2燈亮,Zigbee模塊D四、D三、D六、D5燈亮;
<3> 單擊Zigbee節點盒SW1後,板上的LED一、LED2燈進入交替亮滅狀態(如LED1亮則LED2滅,LED2亮則LED1滅);同時發送一個信息給Zigbee模塊,當Zigbee模塊收到這個信息後Zigbee模塊板上的D四、D三、D六、D5燈進入流水燈狀態。
<4> 單擊Zigbee模塊上的SW1後,板上的D五、D六、D三、D4燈進入流水狀態;同時發送一個信息給Zigbee節點盒,當Zigbee節點盒收到這個信息後Zigbee節點盒板上的LED一、LED2進入呼吸燈狀態;
<5> 單擊Zigbee模塊上的SW2後,重置兩個Zigbee板上的燈,Zigbee模塊D四、D三、D六、D5燈亮;Zigbee節點盒LED一、LED2燈亮。
<6> 能重複實現以上步驟。
<7> Zigbee節點盒要實現與PC端串口的通信功能,以便接收PC端軟件由串口發送過來的數據後,經過無線通信轉發給Zigbee模塊,再由Zigbee模塊將這個數據經過串口發送給Android端軟件。
<8> Zigbee模塊要實現與Android端串口的通信功能,以便接收Android端軟件由串口發送過來的數據後,經過無線通信轉發給Zigbee節點盒,再由節點盒將這個數據經過串口發送給PC端軟件。框架
補充說明:
<1> 在兩塊Zigbee板上的小辣椒(天線)上貼上「任務三題1」標籤紙,Zigbee節點盒經過USB轉串口線接入開發機電腦,Zigbee模塊經過公母直連串口線接入到移動互聯終端,兩個Zigbee板都要接上電源待裁判評判。
<2> Zigbee節點盒與PC端鏈接的串口爲COM八、波特率爲115200,Zigbee模塊與移動互聯終端鏈接的串口爲COM2,波特率爲115200,要求編譯後的工程軟件直接運行就能讀取到相應的信息。函數
任務三題1的第<7>和<8>項功能,仍是任務五題1第<3>和第<4>的實現基礎,也就是說,這個RF無線數據透傳功能沒法實現,任務五題1的部分功能也沒法得分。
任務五題1:點對點聊天系統。
<3> 當在輸入消息文本框裏輸入相應的文本以後,點擊發送按鈕,將這條文本信息顯示在現實文本框的最後一行,同時把這條消息經過串口發送給任務三題1提供的Zigbee模塊,由模塊轉發給Zigbee節點盒最終由PC端接收並顯示該信息。
<4> Android端接收到從Zigbee模塊串口發送過來相應的信息,則直接把該信息顯示在現實文本框的最後一行。工具
【硬件資源】Zigbee模塊與Zigbee節點盒的電路對照測試
注:關於Zigbee模塊的詳細資料,可詳見:XMF09B國賽Zigbee模塊資料彙總spa
【解題關鍵】:五個知識技能要點設計
這是一道很是優秀的BasicRF綜合應用題目,僅僅掌握BasicRF點對點無線通訊相關的內容是很難在一個小時左右完成題目的。這道題目的重要知識點至少包括:
<1> 基於BasicRF點對點通訊的無線數據收發。
<2> 基於BasicRF點對點通訊的串口數據收發。
<3> 基於BasicRF點對點通訊的I/O端口控制。
<4> 呼吸燈的是程序現實。
<5> 簡單通訊協議的設計。
<6> 多狀態切換的系統框架設計。3d
<參考資料01>:基於BaiscRF點對點通訊的燈光控制
<參考資料02>:基於BaiscRF點對點通訊的串口收發
<參考資料03>:Zigbee模塊XMF09B國賽兼容版資料彙總
<參考資料04>:BasicRF點對點無線通訊的應用開發核心要點
<參考資料05>:BasicRf點對點與Z-Stack組網國賽官方提供API函數彙總
<參考資料06>:十大傳感器模塊的接口電路與API函數資料彙總
【解題參考思路】:大約歸爲七個步驟。
<1> 認真閱讀題目,至少三遍以上, 把題目中的要點摘錄至草稿紙上。
<2> 頭腦中要初步造成整體的設計思路和清晰的實現步驟,最好能把基本的系統結構和應用邏輯勾勒過來,否則很難在短期內徹底解答該題目。
<3> 先設計一個單獨的程序,實現呼吸燈的功能。呼吸燈的實現跟BasicRF點對點通訊沒有關係,但應該是本題的一個難點,你能夠選擇用定時器來實現PWM信號,也能夠用普通延時函數來實現。用定時器會涉及一些寄存器的設置和中斷的處理,因此,我採用了普通延時函數來實現,這也是一個比較快捷的方法。
<4> 再設計一個單獨的程序,實現串口與RF無線之間的數據透傳功能。也就是利用串口助手等工具在PC端經過串口向A節點發送數據,A節點收到後經過RF無線發送到B節點,B節點收到數據後,再經過串口發送給PC端並在另外一個串口助手中顯示出來。反之亦然。
注:看起來這裏雖然多寫了2個測試程序,但這是爲了掃除題目中最大的兩個技術障礙,使後面的應用程序開發的道路更順暢平臺。若是你對這兩部份內容很熟練的話,這個2個測試程序就免了。
<5> 根據應用的具體要求和實現環境 設計點對點的通訊協議。在這裏我選擇了32字節的數組做爲無線傳輸的數據幀,其結構定義以下:
第0字節:系統命令字。
第1字節:數據域的有效長度。
第2字節~第31字節:數據域。
<6> 定義通訊協議中系統命令字。本題選擇狀態機做爲系統應用邏輯處理的基本思路,在這個步驟中實際上也把系統的具體切換狀態肯定了。 具體的命令字定義,你們能夠參考後面的源碼與註釋。
<7> 按照系統設計思路和通訊協議,設計具體的應用程序,並調試。
【其餘資源】
<1> 參考代碼詳見:核心關鍵源碼與註釋
<2> HEX燒寫代碼下載:2019年國賽任務三題1-Zigbee節點盒
<3> HEX燒寫代碼下載:2019年國賽任務三題1-Zigbee模塊
原文出處:https://www.cnblogs.com/ALittleBee/p/11199572.html