基于python的modbus协议编程_IM5D.6B利用(2.4G)无线模块实现远程控制(基于智能编程任务赛,2019版)...
引? 言
在《中國兒童青少年威盛中國芯計算機表演賽》從第十七屆活動開始,搭建了一個全新的互聯網技術支持平臺,實現了網絡在線比賽,在全國建立了三十個省級賽區,到2019年第二十八屆,每年參賽選手保持在500萬人次以上!
“人工智能創作賽”經過幾屆比賽的規范和完善,已經發展成為一項基于“創造栗”平臺,同時支持模擬器編程驗證和實物編程演示的核心比賽項目!參賽選手通過整合身邊的軟硬件資源,融入人工智能等多種元素,創作出一件能夠為現實生活帶來更大便利或積極影響的作品。
不過隨著編程軟件與硬件平臺的不斷更新發展,比賽平臺軟件和硬件在每屆比賽都有所不同,本文所使用的軟件平臺基于2020年最新軟件版本,并結合“創造栗人工智能創作”硬件套裝(2019版)編寫錄制,用于平臺熟悉與測試,所有內容僅供參考和內部討論,請勿外傳或用于任何推廣和商業目的,在此特別予以聲明!
本節內容微課視頻(上)
(任務描述分析與硬件連接)
本節內容微課視頻(中)
(通訊協議規劃與程序流程)
本節內容微課視頻(下)
(軟件編程與效果演示)
IM5D.6B - 任務要求基于IM5D.6A進階任務,配合2.4G無線(串口透傳)模塊,利用創造栗平臺人工智能語音識別功能,替代鈕子開關遠程實現“智能書房”應用中任務一的功能,具體要求為以下3個項目:
1 - 向創造栗系統語音發出“開啟智能書房”命令后,小喇叭播報“正在為您打開系統”,同時通過2.4G無線模塊向智能書房系統發出系統開啟命令。
2 - 當連接在Arduino UNO主控的2.4G無線模塊收到來自創造栗系統的開啟命令后,解析并執行打開系統操作(詳見智能書房任務一)。
3 - 向創造栗系統語音發出“關閉智能書房”命令后,小喇叭播報“正在為您關閉系統”,同時通過2.4G無線模塊向智能書房系統發出系統關閉命令。
4 - 當連接在Arduino UNO主控的2.4G無線模塊收到來自創造栗系統的關閉命令后,解析并執行關閉系統操作(詳見智能書房任務一)。
備注:關于“智能書房”課程相關任務詳情,請參考如下課程微課專輯:
《PB3A-創意編程制作之智能書房》
IM5D.6B - 題目分析這道題目的實現功能并不復雜,硬件實現也不算很復雜,但是具體程序編寫起來并不簡單,需要綜合考慮的因素很多,比如:
-- 兩個系統通訊用什么樣的數據報文格式?
-- 具體命令的報文信息(組成與格式)
-- 命令如何發送、接收和解析
如果僅僅是為了實現“智能書房”的任務一,那程序可以非常簡單,不過為了后續任務的實現能夠統一規劃,就需要花一些精力來做好總體的實現方案(詳細定義),這就無形給這節課任務增加了實現的難度,編程上主要要求對字符、數據、字符串的處理編程應用比較熟悉,通過這道題目,將真正實現和掌握雙系統及多系統協同工作的編程方法,本節題目涉及到的相關器材和主要編程模塊組如下:
-- 安裝好主控板及模塊的的套裝結構(人工智能創作+智能書房)
-- 2.4G無線通訊模塊等
-- 字符字符串處理編程模塊等
-- 連接線、Micro-USB(編程)數據線等下面我們來和大家一起完成這部分內容,同時介紹一下使用方法。相關器材(硬件電路)介紹2.4G無線通訊模塊:2.4G無線通訊模塊是一種非常常用的簡單無線收發電路模塊,根據應用電路的不同,通常會有不同的供電和接口方式,這里給大家介紹和使用的是采用5V供電方式,利用串口來收發的一種透傳模塊,如下圖所示,為了實現多通道場景應用,模塊上提供了4路無線通道撥碼開關設置,也就是最多可以支持16個不同無線通道,這樣可以滿足同一場所內同時可以支持16個不同的信息通道!
備注:2.4G僅僅表明了無線模塊所使用的無線頻段,并非通訊協議或者標準,所以不同協議類型,甚至同一協議類型,不同廠家(或主芯片)的2.4G無線通訊模塊間的通訊是不兼容的,這一點在系統進行配對使用的時候一定要注意!
-- 硬件電路連接關系
硬件電路連接關系:
參考如下精簡后的“創造栗人工智能創作”與“智能書房”的連接關系圖,我們只需要用兩個2.4G無線通訊模塊分別與創造栗主控以及Arduino UNO之間連接杜邦線對應的接口相連接,也就是直接與兩塊主控的“軟串口”相連接(含電源)即可。
注:如果由于擴展板接口原因無法兼容使用之前的軟串口信號管腳,需要對應修改程序初始化中的軟串口定義管腳為新的實際連接的信號管腳。說明:通過2.4G無線通訊模塊進行信息互傳,兩個系統需要獨立供電。
-- “通訊協議”的定義
交互信息的分析與拆解:
通過對本節中的任務進行分析,可以得出以下幾個關鍵信息:
1 - 人工智能需要替換的設備(命令源):鈕子開關
2 - 被替設備命令類型:輸入設備(控制)
3 - 被替設備(控制)狀態數量:2 (布爾類型即可標識)
交互信息報文的格式定義:有了對交互信息的分析與拆解,我們就可以按照具體發送信息的類型進行實際發送(解析)信息格式的定義,對于類似本節任務收發頻率不是很高的情況,為了直觀和方便調試,同時又讓具體程序不是特別的復雜,我們采用“字符串格式”+“數字化信息”的方式來具體定義交互報文,具體格式參考如下規則:
1 - 報文字符串總共由5位組成
2 - 首位表示源(或類),比如用‘1’來表示被替代的鈕子開關。
3 - 第2位表示命令類型如:(狀態)控制、查詢等,比如用1表示控制0表示查詢。
4 - 第3-5位表示命令參數如:000表示關閉,999表示開啟等
按照上述格式定義可以定義出用于替換原有鈕子開關狀態的兩條報文(字符串):
鈕子開關關閉(等效)報文:11000
鈕子開關打開(等效)報文:11999
特別說明:米思奇Mixly軟件對于串口的操作相對全面,所以實現起來程序比較簡潔,之后的樣例程序我們將全部基于米思奇進行示例和講解。
-- 軟件程序流程
軟件程序流程:
本案例依然涉及到了對兩個獨立控制系統的編程操作,也都是對(軟)串口進行操作,但是操作功能不同(都基于米思奇軟件來編寫),所以軟件流程圖我們需要分開來規劃。
“人工智能”程序流程:本節任務中,創造栗平臺需要完成人工智能語音識別的任務,識別關鍵詞后還需要通過連接在(軟)串口上的2.4G無線模塊,將信息轉發出去(給)Arduino UNO平臺,與此同時,還需要通過小喇叭通過語音合成的方式,完成當前操作的“反饋”動作。參考程序的基本運行流程圖如下圖所示。
特別說明:CZL Junior軟件對于一些串口的操作支持的還不是很到位,有些編程功能模塊還是缺失的,為了統一示例程序風格,我們將使用米思奇軟件來實現這部分程序。
Arduino UNO程序流程:本節任務中,Arduino UNO平臺需要完成的任務操作比較簡單,就是用(軟)串口接收到命令來替換之前任務一中鈕子開關的控制操作,這里我們可以直接基于“智能書房”任務一的程序流程進行變更。參考程序的基本運行流程圖如下圖所示。
微課參考:
PB3A.1 - 鈕子開關控制 “智能書房”系統的開閉
-- 功能的編程實現
根據前面的軟件程序流程圖,我們很容易就可以編寫完成如下程序來實現本節題目要求的功能!這里我們使用的帶有自定義編程庫的米思奇進行編程,米思奇標準版并未包含相關編程模塊,最新版含自定義庫的軟件請到QQ群進行下載,完整程序如下圖所示。
創造栗端參考程序:智能書房端參考程序:補充:智能書房任務一原有程序(對比參考)微課參考:
PB3A.1 - 鈕子開關控制 “智能書房”系統的開閉
-- 特別注意事項
特別注意事項:這道題目的實現方法不唯一,可以嘗試用不同的方法編程實現并驗證。
-- 進階任務
進階任務:參照本節任務的實現方式,實現對智能書房系統“PB3A.7 - “智能書房”任務綜合(一)”中的功能的人工智能改造(替換任務1中鈕子開關(實物),改為語音控制,同時實現任務2)。
其它課程微課專輯
(本專輯建議從圖文頂端專輯入口進入選擇)
?????編程普及(單片機類比賽):《PP4A-米思奇電子電路編程初級》
提高與應用(基礎與創新類比賽):《PB3A-創意編程制作之智能書房》
進階與綜合(創新類比賽):《IM5D-人工智能創作指南》
特色應用(創客類比賽):《大開眼界機器學習挑戰賽參賽指導》
競技與比賽(機器人類比賽):《無人駕駛綜合實踐》
如果你也有好的內容與大家分享,或者好的創客培養解決方案需要評估,可以留言或者加入QQ編程交流群(599910807)與大家交流分享!
點擊“原文鏈接”返回“計算機表演賽(29屆)”專題首頁
總結
以上是生活随笔為你收集整理的基于python的modbus协议编程_IM5D.6B利用(2.4G)无线模块实现远程控制(基于智能编程任务赛,2019版)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang 热插拨 插件_从零开始实现
- 下一篇: 协同过滤算法评测python_元学习和推