• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ItChat和樹莓派的監(jiān)測機(jī)器人設(shè)計(jì)

    2022-03-24 12:16:42
    關(guān)鍵詞:樹莓客戶端語音

    翁 碩

    (福建技術(shù)師范學(xué)院 電子與機(jī)械工程學(xué)院,福建 福清 350300)

    0 前 言

    隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,智能家居的理念已經(jīng)深入人心。按鍵、紅外遙控器等傳統(tǒng)控制方式易受環(huán)境的影響,且不能實(shí)現(xiàn)遠(yuǎn)程控制[1]。若使用產(chǎn)品專用App進(jìn)行控制,雖然高效便捷、靈活性高,但兼容性差,不同廠家的智能家電無法實(shí)現(xiàn)互聯(lián)互通,不便于統(tǒng)一管理。

    本次研究中設(shè)計(jì)了一個(gè)基于ItChat和樹莓派的環(huán)境監(jiān)測機(jī)器人。在硬件層面,機(jī)器人可以通過樹莓派小車進(jìn)行實(shí)時(shí)、可移動(dòng)的環(huán)境監(jiān)測;在軟件層面,機(jī)器人可以根據(jù)環(huán)境監(jiān)測數(shù)據(jù),通過微信客戶端靈活地控制各個(gè)設(shè)備[2]。該系統(tǒng)不僅能實(shí)現(xiàn)智能設(shè)備之間的互聯(lián)互通,而且具有定時(shí)任務(wù)功能,可以根據(jù)工作需要進(jìn)行定時(shí)設(shè)置,以達(dá)到節(jié)能效果。

    1 系統(tǒng)組成

    樹莓派機(jī)器人主要采用小車底盤作為基底,搭載樹莓派作為ARM主控板,攜帶攝像頭和WiFi模塊實(shí)現(xiàn)視頻通信,配備ZigBee協(xié)調(diào)器實(shí)現(xiàn)無線傳感器節(jié)點(diǎn)的數(shù)據(jù)采集和傳輸,結(jié)合遠(yuǎn)程控制程序?qū)崿F(xiàn)數(shù)據(jù)互通和遠(yuǎn)程控制[3]。系統(tǒng)整體框架如圖1所示。

    圖1 系統(tǒng)整體框架

    遠(yuǎn)程控制端主要包括云服務(wù)、用戶和網(wǎng)絡(luò)端三大部分。

    云服務(wù):提供設(shè)備接入的服務(wù)器,App和終端所發(fā)送的數(shù)據(jù)都將通過服務(wù)器轉(zhuǎn)發(fā)至設(shè)備,以實(shí)現(xiàn)用戶設(shè)備之間的數(shù)據(jù)傳輸。

    用戶:包括App和微信客戶端,用戶可以通過App或微信客戶端進(jìn)行系統(tǒng)管理,如設(shè)備綁定、控制使用等。

    網(wǎng)絡(luò)端:一臺(tái)路由器或AP分享網(wǎng)絡(luò)連接的聯(lián)網(wǎng)設(shè)備,終端通過聯(lián)網(wǎng)設(shè)備接入到Internet中。

    2 硬件系統(tǒng)設(shè)計(jì)

    2.1 樹莓派機(jī)器人硬件系統(tǒng)設(shè)計(jì)

    2.2 傳感器節(jié)點(diǎn)硬件系統(tǒng)設(shè)計(jì)

    采用CC2530作為硬件系統(tǒng)的核心板,兩層板的設(shè)計(jì)保證了ZigBee終端通信數(shù)據(jù)的準(zhǔn)確性。該電路能在無遮擋的情況下,實(shí)現(xiàn)100 m的有效傳輸距離,以滿足系統(tǒng)需求。為了適應(yīng)不同傳感器的接口需求,系統(tǒng)參考Arduino系列的管腳分布電路設(shè)計(jì),適配常用的傳感器,以提高系統(tǒng)的兼容性。同時(shí),系統(tǒng)將CC2530引腳通過排線接出,以便后期靈活添加和調(diào)整[5]。

    系統(tǒng)配置DHT11溫濕度傳感器、SW-420震動(dòng)傳感器、MQ-2煙霧氣敏傳感器和HC-SR501熱釋電紅外傳感器等采集家居環(huán)境參數(shù),以便作出相應(yīng)操作[6-7]。系統(tǒng)將CC2530的IO口通過排針的方式引出,以便后期擴(kuò)展使用。

    2.3 輸出控制系統(tǒng)硬件設(shè)計(jì)

    基于傳感器節(jié)點(diǎn)系統(tǒng)所采集的數(shù)據(jù),系統(tǒng)可以通過輸出照明設(shè)備或者排插開關(guān)控制設(shè)備。照明設(shè)備或者排插開關(guān)的功能單一,僅需操作GPIO,在GPIO上外接一個(gè)高電平驅(qū)動(dòng)的繼電器,用于控制設(shè)備。

    2.4 硬件系統(tǒng)整合

    將上述各部分進(jìn)行整合,每個(gè)部分主要通過GPIO接口和USB接口與ARM主控板連接。機(jī)器人硬件連接圖如圖2所示。

    圖2 機(jī)器人硬件連接圖

    3 軟件系統(tǒng)設(shè)計(jì)

    3.1 微信框架ItChat設(shè)計(jì)

    微信框架ItChat既可以捕獲來自系統(tǒng)、好友和群聊的信息,又可以返回信息,能夠?qū)崿F(xiàn)信息交互。系統(tǒng)融入了機(jī)智云的設(shè)備控制技術(shù)、百度AI開放平臺(tái)的語音技術(shù)和圖靈機(jī)器人的中文對(duì)話技術(shù)等,搭建了一個(gè)簡單的中文對(duì)話系統(tǒng)[8]。

    微信框架ItChat設(shè)計(jì)流程如圖3所示,導(dǎo)入所需的庫,進(jìn)行個(gè)性化的參數(shù)設(shè)置,掃描二維碼啟動(dòng)微信,通過微信監(jiān)聽,等待有效信息并進(jìn)行處理。

    圖3 微信框架ItChat設(shè)計(jì)流程

    3.1.1 百度AI語音信息匹配技術(shù)

    現(xiàn)在的手機(jī)基本都有語音助手,可以先將用戶說的話轉(zhuǎn)換為文本信息,再分析文本信息所表達(dá)的含義。使用ItChat將收到的語音消息下載并保存為MP3格式文件。由于百度AI的語音接口不支持MP3格式文件,所以使用Pydub庫和FFmpeg對(duì)語音文件作WAV合成處理,最后將合成后的WAV格式文件提交至百度AI。若服務(wù)器成功識(shí)別語音文件,則返回識(shí)別結(jié)果;反之,則返回錯(cuò)誤信息。若ItChat收到的是文本消息,則不進(jìn)行以上處理。

    當(dāng)語音消息轉(zhuǎn)換為文本消息后,可利用百度AI開放平臺(tái)提供的Python的相關(guān)SDK進(jìn)行信息匹配。信息匹配的方法包括利用字符串內(nèi)建方法對(duì)簡單文本信息進(jìn)行檢索、利用正則表達(dá)式對(duì)復(fù)雜文本信息進(jìn)行匹配等。實(shí)現(xiàn)信息匹配后就可以進(jìn)行定時(shí)開關(guān)的控制操作。

    3.1.2 調(diào)用平臺(tái)API

    機(jī)智云和圖靈機(jī)器人僅提供RESTful API風(fēng)格調(diào)用接口,調(diào)用API時(shí)需要向服務(wù)器發(fā)送HTTP請(qǐng)求。Python有Urllib、Urllib2、Requests等網(wǎng)絡(luò)通信庫,既可以用來獲取網(wǎng)站內(nèi)容,又可以用來向Host提交數(shù)據(jù)。Requests庫訪問HTTP的方法有Get、Post、Put、Delete等[9]。

    3.1.3 設(shè)備聯(lián)動(dòng)、定時(shí)及遠(yuǎn)程控制

    智能設(shè)備的遠(yuǎn)程控制、數(shù)據(jù)獲取、設(shè)備綁定等基本功能和定時(shí)、聯(lián)動(dòng)等高級(jí)功能都是通過機(jī)智云的Web API實(shí)現(xiàn)的。Web API有豐富的功能接口,如用戶管理、消息中心、綁定管理等。在開發(fā)過程中將它們封裝成一個(gè)類,以簡化代碼,方便使用。

    3.2 照明設(shè)備軟件設(shè)計(jì)

    系統(tǒng)可使用機(jī)智云平臺(tái)提供的自助式一體化硬件開發(fā)工具,即代碼自動(dòng)生成工具。只需在“.appuser”文件夾目錄下“user_main.c”文件里面的 user_init()函數(shù)下添加外設(shè)初始化代碼,將GPIO4設(shè)為輸出模式。生成代碼前,在數(shù)據(jù)點(diǎn)中添加一個(gè)名為“Switch”的數(shù)據(jù)點(diǎn),機(jī)智云事件處理函數(shù)內(nèi)的Switch語句就會(huì)有相應(yīng)的開關(guān)事件,當(dāng)設(shè)備收到來自App的數(shù)據(jù)后便會(huì)作出處理。

    設(shè)置函數(shù)控制輸出電平的高低,從而控制繼電器的開關(guān)。修改代碼后,將整個(gè)源代碼在裝好Tensilica相關(guān)GCC編譯器的Linux環(huán)境下,利用“sudo./gen_misc.sh”編譯生成二進(jìn)制文件,再采用樂鑫官方下載軟件將其燒寫固件到ESP12-N中。

    3.3 網(wǎng)絡(luò)傳輸模塊程序設(shè)計(jì)

    與Iw-Tools不同,Wpa_Supplicant軟件支持WPA和WPA2加密,能夠較好地保障通訊的安全性[10]。軟件在ArchLinuxARM發(fā)行版上的安裝步驟如下:

    (1)運(yùn)行“pacman-Sy wpa_supplicant”進(jìn)行軟件安裝。

    (2)運(yùn)行“nano/etc/wpa_supplicant-wlan0.conf”配置文件。

    當(dāng)機(jī)器人與電腦或手機(jī)連接的不是同一個(gè)WiFi時(shí),就會(huì)面臨路由器穿透問題,因?yàn)闄C(jī)器人和主控端都在內(nèi)網(wǎng),沒有公網(wǎng)地址。這時(shí),必須經(jīng)由路由器訪問公網(wǎng)連接機(jī)器人網(wǎng)絡(luò)中的路由器,再經(jīng)由機(jī)器人網(wǎng)絡(luò)中的路由器訪問機(jī)器人。這種轉(zhuǎn)發(fā)顯然不能由安裝在機(jī)器人或主控端上的軟件直接完成,因此,需要考慮一種解決方案。目前市場上的路由器多數(shù)使用的是UPnP技術(shù),該技術(shù)允許內(nèi)網(wǎng)向特定地址群發(fā)送一個(gè)廣播包進(jìn)行通訊,指示路由器為特定端口放行,即所有公網(wǎng)發(fā)往該端口的數(shù)據(jù)包都將轉(zhuǎn)發(fā)給指示發(fā)起人,進(jìn)而完成雙端的直接連接。

    雖然UPnP技術(shù)能夠?qū)崿F(xiàn)雙端轉(zhuǎn)發(fā),但雙方并不知道對(duì)方地址,無法直接建立連接。此時(shí),需要公網(wǎng)上有一臺(tái)服務(wù)器提供協(xié)商服務(wù),可以使用Google開放平臺(tái)提供的STUN服務(wù)[11]。

    3.4 視頻傳輸程序設(shè)計(jì)

    研究發(fā)現(xiàn),當(dāng)攝像頭獲取的圖像靜止時(shí),單位時(shí)間內(nèi)的差異非常小,即使有物體運(yùn)動(dòng),背景圖像通常也沒有變化,因此,應(yīng)在傳輸時(shí)只傳送變化的部分以節(jié)省帶寬。顯然,對(duì)于需要適應(yīng)工作環(huán)境的機(jī)器人而言,圖像數(shù)據(jù)的傳輸應(yīng)當(dāng)是最低優(yōu)先級(jí)且允許丟包,但H264壓縮算法若丟失了關(guān)鍵幀(I幀),將導(dǎo)致P幀和B幀無法還原,且每次建立連接都需要再傳輸參數(shù)數(shù)據(jù)(如圖像的尺寸、壓縮算法、幀率等)。

    基于以上分析,本次研究采用了常用于機(jī)器人的人臉識(shí)別或物體移動(dòng)偵測的跨平臺(tái)計(jì)算機(jī)視覺庫OpenCV。OpenCV經(jīng)由UVC獲取攝像頭圖像,并采用OpenCV的Absdiff方法找尋其與上一幀的差異,將差異塊傳輸至主控端進(jìn)行覆蓋還原。差異幀是節(jié)省帶寬的關(guān)鍵,但考慮到丟包或擁擠時(shí)應(yīng)出讓帶寬給控制指令和傳感器數(shù)據(jù),因此差異幀只存在2 s,每隔2 s傳輸一次完整圖像,圖像經(jīng)由JPEG算法壓縮。視頻傳輸時(shí)序圖如圖4所示。

    圖4 視頻傳輸時(shí)序圖

    4 系統(tǒng)測試

    4.1 傳感器節(jié)點(diǎn)數(shù)據(jù)傳輸測試

    為了保證數(shù)據(jù)采集的正確性,首先進(jìn)行單個(gè)傳感器的連接測試,然后將CC2530通過串口與計(jì)算機(jī)連接,調(diào)試、設(shè)置參數(shù),觀察PC機(jī)接受到的數(shù)據(jù)信息?;谙到y(tǒng)的需求和功耗,將傳感器的采集周期設(shè)定為5 s,而對(duì)于震動(dòng)傳感器和紅外傳感器,一旦發(fā)生狀態(tài)變化就立即發(fā)送數(shù)據(jù)。

    4.2 機(jī)器人移動(dòng)及視頻監(jiān)控性能測試

    利用ListView在客戶端底部設(shè)計(jì)了小車移動(dòng)、攝像頭、采集節(jié)點(diǎn)、溫濕度曲線圖等4個(gè)圖標(biāo),點(diǎn)擊按鈕即可打開相應(yīng)功能并高亮顯示。進(jìn)入機(jī)器人移動(dòng)控制界面時(shí),實(shí)時(shí)視頻采集功能便會(huì)同時(shí)開啟,此時(shí),通過方向按鍵可發(fā)出移動(dòng)控制指令。機(jī)器人移動(dòng)控制和視頻傳輸演示圖如圖5所示。測試表明,客戶端可以順利控制機(jī)器人移動(dòng),視頻傳輸正常。

    圖5 機(jī)器人移動(dòng)控制和視頻傳輸演示圖

    4.3 微信客戶端的功能實(shí)現(xiàn)驗(yàn)證

    4.3.1 掃碼綁定設(shè)備及配網(wǎng)

    進(jìn)入主界面后,點(diǎn)擊“掃碼綁定設(shè)備”按鈕,系統(tǒng)開啟攝像頭掃描設(shè)備二維碼,掃碼完成后主界面就會(huì)出現(xiàn)該設(shè)備名稱,此時(shí)的設(shè)備圖標(biāo)呈灰色狀態(tài),說明還未進(jìn)行配網(wǎng)。點(diǎn)擊“添加設(shè)備”,系統(tǒng)會(huì)要求輸入WiFi密碼,完成配網(wǎng)工作之后就會(huì)顯示設(shè)備名稱。點(diǎn)開設(shè)備的開關(guān)按鈕,即可控制設(shè)備狀態(tài)。掃碼綁定設(shè)備界面如圖6所示。

    圖6 掃碼綁定設(shè)備界面

    4.3.2 語音識(shí)別功能驗(yàn)證

    打開微信客戶端機(jī)器人,在聊天對(duì)話框中發(fā)送一條“打開照明”的語音信息。機(jī)器人將識(shí)別語音信息,并將信息返回給用戶確認(rèn),若沒有接收到錯(cuò)誤信息,則機(jī)器人完成打開照明的操作,并發(fā)送“操作成功”。語音識(shí)別驗(yàn)證如圖7所示。

    圖7 語音識(shí)別驗(yàn)證

    5 結(jié) 語

    本次研究以ARM嵌入式技術(shù)為基礎(chǔ),設(shè)計(jì)了一個(gè)可移動(dòng)的監(jiān)測機(jī)器人。從最初的芯片選擇、傳感器配置、網(wǎng)絡(luò)連接和客戶端設(shè)計(jì)都是根據(jù)需求靈活定制的,以確保性能最優(yōu)化。通過測試可知,機(jī)器人工作性能穩(wěn)定,能夠在靈活監(jiān)測、采集環(huán)境數(shù)據(jù)的同時(shí)與樹莓派和客戶端很好地進(jìn)行數(shù)據(jù)傳輸。傳感器工作正常,客戶端方便易懂,若投入使用將會(huì)有很好的社會(huì)應(yīng)用價(jià)值。智能機(jī)器人的發(fā)展空間巨大,未來可以考慮添加位置記憶的功能,結(jié)合自動(dòng)尋路算法來完成路線繪制,并用于自動(dòng)充電,以解決續(xù)航問題,還可以搭載更多的傳感器,使系統(tǒng)更加智能化。

    猜你喜歡
    樹莓客戶端語音
    魔力語音
    基于MATLAB的語音信號(hào)處理
    電子制作(2019年14期)2019-08-20 05:43:38
    基于樹莓派的騎行智能頭盔設(shè)計(jì)
    電子制作(2019年11期)2019-07-04 00:34:32
    基于MQ3與MP3的價(jià)廉物美的酒駕語音提醒器
    電子制作(2019年9期)2019-05-30 09:42:10
    對(duì)方正在輸入……
    小說界(2018年5期)2018-11-26 12:43:42
    縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
    孵化垂直頻道:新聞客戶端新策略
    基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
    電子測試(2018年10期)2018-06-26 05:53:34
    基于樹莓派的遠(yuǎn)程家居控制系統(tǒng)的設(shè)計(jì)
    電子制作(2017年17期)2017-12-18 06:40:43
    響應(yīng)面法優(yōu)化紅樹莓酒發(fā)酵工藝
    中國釀造(2016年12期)2016-03-01 03:08:19
    江陵县| 盐山县| 成安县| 江川县| 三亚市| 宕昌县| 崇左市| 巴南区| 遵义县| 加查县| 东乡| 温泉县| 青铜峡市| 金昌市| 勐海县| 普定县| 益阳市| 西丰县| 平罗县| 阳山县| 嵊州市| 潞西市| 大余县| 化隆| 廉江市| 额济纳旗| 合阳县| 苍山县| 青河县| 修武县| 嘉义县| 禹城市| 敦煌市| 庆云县| 崇阳县| 昌吉市| 泰安市| 贡觉县| 南宫市| 铁力市| 横峰县|