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