?

基于Wi-Fi技術的雙模式手機遙控救生圈

2022-11-19 09:16郭勛文馮燕
現代信息科技 2022年19期
關鍵詞:救生圈遙控界面

郭勛文,馮燕

(浙江水利水電學院 機械與汽車工程學院,浙江 杭州 310018)

0 引 言

溺水事件時有發生,根據世界衛生組織統計,全球每年約有37.2 萬人死于溺水[1],根據中國衛計委發表的數據顯示,我國每年有57 000 余人死于溺水,也就是說平均每天有150多人溺水而亡[2]。據調查,溺水事件的發生并不都是因為沒有救援人員施救,有的是因為救援人員施救方法不正確,有的是因為沒有安全可靠的救援設備[3]。救生圈作為一種廣泛使用的傳統救生設備,對于施救者和被施救者都有很高的要求,并且只適用于近距離的拋投,無法保證救生圈 拋投的準確位置和足夠距離[4],且不能自主把溺水者帶回到岸邊,還需要救援人員將溺水者和救生圈拉回岸邊,使得救援工作不能快速高效完成。在如今智能手機日趨普及的大背景下,針對寬水面和復雜水域施救效率不高這一難題,本文設計了一種新型手機遙控救生圈,施救者可通過手機APP 控制救生圈的行進,使得施救者無須親自下水救援,保證了施救者的安全。該救生系統適用于多種救援場景,操作簡單,安全可靠,可有效提高救援效率,有望成為未來水上救援的一個重要保障。

1 系統總體設計

為提高救生系統的智能性和功能多樣性,本文設計的智能救生圈有2 種控制模式,即自動模式和手動模式。當選擇自動模式時,主控芯片會根據獲取的施救目標位置信息,對救生裝置位置信息與施救目標位置信息進行處理,規劃路徑,進而通過動力轉向模塊驅動救生裝置自動前往目標。當選擇手動模式時,救生裝置根據手機APP 發出的命令前往施救目標位置。整個系統包括:主控模塊、手機APP 遙控模塊、Wi-Fi 模塊、動力模塊、轉向模塊、紅外感應模塊避障模塊和電源模塊。系統原理如圖1 所示。

圖1 系統原理圖

2 系統硬件設計

主控模塊用于實現對救生圈的控制和數據的處理,基于51 單片機的遙控控制電路應用廣泛,且AT89C51 單片機的控制系統具有良好的時效性和穩定性,可有效控制水上中小型救援裝置。本系統選擇AT89C51 單片機作為主控芯片進行整個系統的信息處理和電機控制,單片機時鐘電路如圖2所示。Wi-Fi 模塊主要實現對控制系統的遙控通信,系統選用的是安信可ESP8266 Wi-Fi 模塊作為傳輸通信裝置,使上位機與下位機進行連接和通信。動力模塊為救生圈提供動力輸出,本系統選用的電機是LBP5692/4D,采用的是繼電器電路控制無刷直流電機,無刷直流電機執行電路如圖3 所示。轉向模塊用來實現救生圈的轉向和倒車,由步進電機及其附屬部件構成,選用的步進電機類型是28BYJ-48,選用的是永磁式減速型步進電機,采用的是四相八拍工作模式。導航模塊選用GPS 定位,主要為使用者提供救生圈的位置信息,并通過手機APP 提供的目標信息在主控芯片上進行計算,規劃路線。人體紅外感應模塊主要用于目標位置的確定,由于人體的溫度一般高于水面溫度,依靠紅外感應裝置識別人體位置,并確保不會撞上溺水者。避障模塊用于實現救生圈在行進過程中避開障礙物。電源模塊用于實現對救生裝置主要部件的供電,針對Wi-Fi 模塊耗電量較大的問題,本系統采用太陽能電池與可充電鋰電池結合對設備供電的方法。

圖2 時鐘電路

圖3 無刷直流電機執行電路

3 軟件系統設計

3.1 軟件運行流程設計

本文主要對主控模塊和手機APP模塊進行了軟件設計。針對主控模塊采用keilC51 程序進行C 語言編程。針對手機APP 采用的是在APP Inventor 2 網頁在線平臺開發。整個軟件系統的運行流程圖如圖4 所示。

圖4 顯示的是操控者進入APP 界面后的運行流程,操控者打開救生圈開關,將救生圈放置在水面上,通過手機進入APP,再與救生圈網絡進行配對連接,連接成功后,系統開始初始化,操控者根據具體情況選擇操控模式,對救生圈實現相應的控制方式,達成目標后結束軟件運行。

圖4 系統運行流程圖

自動模式工作過程:操控者進入自動模式后,操控者根據目測,選取地圖等方式獲取被施救目標位置信息,通過手機APP 上位機將被施救目標位置信息傳遞給主控芯片,同時主控芯片自動獲取系統的位置信息,主控芯片通過卡爾曼濾波算法實現全球定位系統(GPS)和捷聯慣導系統(Strapdown inertial navigation system, SINS)對救生圈位置信息和被施救目標位置信息進行數據處理[4],規劃出路徑后運行主控電路,主控電路連接動力轉向模塊開始運行。救生圈行進過程中,主控芯片控制電機和步進電機的運轉,通過控制電機的轉速控制救生圈的行進速度,通過電機的正反轉實現救生圈的前進與后退,通過控制步進電機及其附屬部件實現救生圈的轉向。通過避障模塊與轉向模塊相結合避開行進過程中遇到的障礙物,救生圈行進過程中通過導航模塊不斷修正目標位置信息與救生圈位置信息。救生圈進入目標范圍內,由紅外感應裝置確定目標具體位置,接近目標后救生圈緩慢停止,進入待機模式。操控者通過觀察確定被施救目標搭載上救生圈后,通過一鍵返航鍵運作救生圈原路返回,將被施救目標帶回岸邊,救生圈運行過程結束。

手動模式工作過程:操控者進入手動模式后,操控者進入APP 操控界面,通過手機APP 上位機對下位機救生圈下達加速、減速、左轉、右轉、直行、停車等命令。操控者通過手機APP 上的功能鍵,將控制信號通過手機APP 傳輸給救生圈主控芯片,主控芯片對傳輸的信號進行識別、分析,將數字信號轉換為電信號傳遞給動力轉向模塊,通過控制救生圈的動力轉向模塊控制救生圈的行進過程??刂七^程中,上位機通過識別功能鍵的長按與短按,將控制信號傳遞主控芯片,主控芯片控制救生圈電機轉速的快慢實現救生圈的速度的調節,通過控制左右步進電機的速度差控制救生圈的轉向幅度,通過控制電機的空轉實現救生圈的停止。在行進過程中,避障模塊和紅外感應模塊自主運行,實現救生圈的避障,當救生圈靠近被施救目標后救生圈自動減速接近目標。操控者再通過遙控救生圈將被施救目標帶回岸邊。

3.2 救生圈動作軟件程序設計

軟件是單片機控制系統的核心,在單片機的軟件編程中,基本都是通過C 語言或者匯編語言編程,本文是用keilC51程序進行C 語言編程。

直流電機的轉向程序:

1.#include <reg51.h> //51 單片機頭文件

2.#def ine uchar unsigned char

3.#def ine uint unsigned int

4.#def ine out P2 //定義out 接至P2

5.sbit lef= =P0^1; //將P0^1 定義為lef(左轉)

6.sbit rig=P0^2; //將P0^2 定義為rig(右轉)

7.void delayms(uint); //定義延時函數ms 毫秒

8.uchar code tum[]= {0x02,0x06,0x04,0x0c,0x08,0x09,0x01 ,0x03}; //步進脈沖數組

9.void main( void) //定義主函數

10.{uchar i; //定義變量i

11.out=0x03; //給out 賦值為0x03

12.while(1)

13.{f(!lef) //如果左轉按鈕按下

14.{i=i<8?i+1:0; //如果i<8,則i=i+1;否則i=0

15.out=tum[i]; //out 口顯示

16.delayms(50);} //延時50 亳秒

17.else if(!rig) //如果按下右轉按鈕

18.{i=i>0?i-1:7; //如果i>0,則i-1,否則i=7

19.out=turn[i];

20.delayms(50);}}}

直流電機的調速程序:

1.sbit up=P0^6; //定義加速引腳

2.bit down=P0^7; //定義減速引腳

3.sbit zz =P0^0;

4.sbit PWM=P0^1; //定義PWM 引腳

5.void main() //主函數聲明

6.zz=1;

7.while(1)

8.{

9.if(!up) //判斷是否按下加速鍵

10.PWM=PWM>0? PWM - 1:0;//若PWM>0,PWM=PWM-1,否則PWM=0

11.if(!down) //判斷減速鍵是否按下

12.PWM=PWM<1000?PWM+1:1000; // 若PWM<1000,PWM=PWM+1,否則PWM=1000

13.PWM=1; //PWM 產生高電平信號

14.delay (PWM); //延時

15.PWM=0; //PWM 產生高電平信號

16.delay(1000-PWM); //延時

17.}}

3.3 控制端手機App 設計與開發

本救生圈的控制端手機APP 是在APP Inventor 2 網頁平臺開發的。APP Inventor 2 是一個完全在線開發的Android編程環境,不需要掌握專業的程序編制知識,只需要根據自己的需求進行簡單的代碼拼接。本文根據現有的APP 操作頁面設計滿足需求的操作頁面,在點擊APP 圖標后,進入初始化界面,選擇救生圈設備服務器進行連接,界面顯示連接成功的同時顯示服務器的IP 和端口號,連接失誤可進行斷開連接操作重新連接。進入初始化界面后,根據現場情況選擇救生圈操作方式,再分別進入相應操作界面。根據以上需求設計的APP 初始化界面如圖5 所示。圖5 中展示的是當連接服務器按鍵被點擊后執行邏輯判斷,顯示服務器連接狀態,當斷開連接按鍵被點擊進行邏輯判斷顯示服務器連接狀態。當自動模式,手動模式按鍵被點擊后分別進入相應界面。

圖5 APP 初始化界面

3.3.1 自動模式設計

在選擇自動模式后,操控者通過手動輸入目標位置,設置救生圈速度,救生圈通過主控芯片和導航模塊計算救生圈與目標位置信息進行路線規劃,控制救生圈自動前往目標位置。到達目標后通過一鍵返航鍵將溺水者送回岸邊。設計APP 界面如圖6 所示。圖6 展示的是操縱者輸入施救目標位置信息后,上位機APP 開始規劃路徑,點擊開始導航按鍵,APP 向救生圈發送自主導航命令。

圖6 APP 自動模式操作界面

3.3.2 手動模式設計

在選擇手動操作模式后可以通過操控面板上按鍵控制救生圈的前進、后退、轉彎、停止、一鍵返航等。通過點擊加速、減速按鍵控制救生圈的速度,APP 中可通過速度調節滑塊調節救生圈的速度,通過報警電量調節按鍵調節報警電量。同時救生圈的速度,電量等信息也會通過Wi-Fi 傳遞顯示在APP 界面上。當電量低于一定值時,APP 電量顯示為紅色的報警信號。若選擇操控模式失誤可通過返回按鍵返回初始界面重新選擇操控方式。根據以上需求設計的APP 操作界面如圖7 所示。根據需要實現的功能,通過此軟件開發平臺進行APP 邏輯運算設計,如圖8 所示。圖中代碼展示的是APP 將救生圈設備傳遞的數據進行分析,提取分解數據中速度與電量的信息顯示在界面中。設置電量和報警電量的全局變量,將電量和報警電量文本信息轉變為數字信息進行比較,判斷是否需要報警。當點擊返回按鍵執行返回初始界面任務,當點擊前進、左轉、加速、急停等按鍵,APP 向救生圈發送信號執行相應命令。

圖7 APP 手動模式操作界面

圖8 APP 手動模式邏輯功能界面

4 結 論

本文設計了一種雙模式手機遙控智能救生圈,可登錄手機APP 后對救生圈進行遠程遙控,操控者可以根據實際情況選擇控制方式確保救援任務快速有效進行。該救生圈系統主要以AT89C51 單片機為控制核心,通過單片機連接ESP8266 串口的Wi-Fi 模塊,再由自主研發的手機APP 實現對救生圈的遠程遙控。在現實生活中,雙模式手機遙控智能救生圈將具有更好的實用性,采用的雙模式控制可適用于不同的水域環境。自主設計的手機APP 操作簡便,控制界面簡單易懂,順應大多數操控者的操作習慣,易于操控者實現對救生圈的操控。Wi-Fi 無線通信技術作為手機APP 與救生圈之間的信息傳遞媒介,相比傳統手柄遙控方式更加方便,相比藍牙遙控又具有遙控距離遠、傳輸速度快等優點。由于Wi-Fi 遙控方式耗電量大,后續將對電源模塊進行優化。為了使操作方式更簡便,救生圈系統功能更完善,后續將對自主研制的手機APP 進行優化,使該救生圈能夠實現在未知環境自主定位,自主建立地圖導航。

猜你喜歡
救生圈遙控界面
不同截面類型鋼管RPC界面粘結性能對比研究
“遙控”老師
微重力下兩相控溫型儲液器內氣液界面仿真分析
國企黨委前置研究的“四個界面”
他是如何遙控引爆的
在海中
智能救生圈
簡易野外救生圈
遙控賽車
遙控提琴
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合