国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android平臺(tái)的送餐機(jī)器人遠(yuǎn)程控制設(shè)計(jì)

2021-12-24 10:00管文龍杜澤強(qiáng)田會(huì)方吳迎峰
數(shù)字制造科學(xué) 2021年4期
關(guān)鍵詞:電子標(biāo)簽阿里遠(yuǎn)程

管文龍,杜澤強(qiáng),田會(huì)方,吳迎峰

(1.武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070;2.西安向陽(yáng)航天材料股份有限公司,陜西 西安 710065)

服務(wù)機(jī)器人是一種半自動(dòng)或者全自動(dòng)工作的機(jī)器人,提供有益于人類健康的服務(wù)[1-2]。服務(wù)機(jī)器人在醫(yī)療、家政、餐飲、客服、物流等行業(yè)有一定的應(yīng)用[3]。服務(wù)機(jī)器人在餐飲行業(yè)的應(yīng)用為這個(gè)行業(yè)帶來(lái)了智能服務(wù)的新機(jī)遇,送餐機(jī)器人的發(fā)展推動(dòng)餐飲服務(wù)智能化的進(jìn)步。因此設(shè)計(jì)了一款遠(yuǎn)程控制送餐機(jī)器人,代替餐廳服務(wù)員送餐給住酒店客人。該系統(tǒng)研究利用安卓手機(jī)APP發(fā)送控制指令,采用阿里云物聯(lián)網(wǎng)平臺(tái)轉(zhuǎn)發(fā)數(shù)據(jù)給STM32單片機(jī),進(jìn)而實(shí)現(xiàn)對(duì)送餐機(jī)器人的遠(yuǎn)程控制。

1 遠(yuǎn)程控制方案

送餐機(jī)器人遠(yuǎn)程控制系統(tǒng)是由上位機(jī)軟件系統(tǒng)、下位機(jī)硬件系統(tǒng)和阿里云物聯(lián)網(wǎng)平臺(tái)3部分組成。送餐機(jī)器人下位機(jī)硬件系統(tǒng)是以STM32F103ZET6處理器為核心部件,并掛載多個(gè)模塊組成。本研究使用安卓手機(jī)APP發(fā)送控制信號(hào),經(jīng)過(guò)阿里云物聯(lián)網(wǎng)平臺(tái)轉(zhuǎn)發(fā)數(shù)據(jù)給STM32單片機(jī),進(jìn)而實(shí)現(xiàn)對(duì)送餐機(jī)器人的遠(yuǎn)程控制,系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。所設(shè)計(jì)的系統(tǒng)功能包括送餐機(jī)器人的動(dòng)力部分、定位功能、循跡和避障功能、視頻查看功能、無(wú)線通信以及送餐狀態(tài)檢測(cè)功能。

圖1 系統(tǒng)硬件框圖

1.1 送餐機(jī)器人的動(dòng)力設(shè)計(jì)

在送餐機(jī)器人中,電機(jī)最常用的是步進(jìn)電機(jī)和直流電機(jī)。直流電機(jī)有良好的調(diào)速性能,控制比較簡(jiǎn)單,但精度很低。由于本方案對(duì)定位精度有要求,因此選擇步進(jìn)電機(jī)作為送餐機(jī)器人的驅(qū)動(dòng)力。送餐機(jī)器人采用四輪機(jī)構(gòu),為了滿足送餐機(jī)器人全方位角轉(zhuǎn)向,將在送餐機(jī)器人上安裝4個(gè)麥克納姆輪,4個(gè)輪子一次安裝A、B型麥克納姆輪,安裝方式如圖2所示,每個(gè)輪子使用獨(dú)立的驅(qū)動(dòng)方式。

圖2 A、B型輪分布圖

設(shè)定機(jī)器人負(fù)重和自重最大質(zhì)量為100 kg,選擇57BYGH82-401A步進(jìn)電機(jī),該步進(jìn)電機(jī)能輸出最大的轉(zhuǎn)矩為2.1 N·m,當(dāng)送餐機(jī)器人輪子直徑為8 cm時(shí),該步進(jìn)電機(jī)能帶動(dòng)100 kg以上的負(fù)載,由于轉(zhuǎn)矩比較大,即使遇到一些小障礙也能正常行駛,能夠滿足送餐機(jī)器人的動(dòng)力要求。根據(jù)步進(jìn)電機(jī)的參數(shù),驅(qū)動(dòng)模塊選用ATK-2MD4850,其是一款高性能細(xì)分型2相混合式步進(jìn)電機(jī)驅(qū)動(dòng)器,此驅(qū)動(dòng)器能夠使得電機(jī)轉(zhuǎn)矩波動(dòng)小,低速運(yùn)行平穩(wěn)以及極小振動(dòng)和噪音;高速時(shí)輸出力矩較大,定位精度比較高[4]。

STM32單片機(jī)使用高級(jí)定時(shí)器在輸出引腳產(chǎn)生PWM(pluse width modulation),通過(guò)改變定時(shí)器預(yù)裝載值和輸出比較值來(lái)改變步進(jìn)電機(jī)的轉(zhuǎn)速。步進(jìn)電機(jī)的端口驅(qū)動(dòng)初始化程序如下:

void Driver_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

//使能端口時(shí)鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0| GPIO_Pin_2;

//設(shè)置輸出模式

GPIO_InitStructure.GPIO_Mode=GPIO_Mode _Out_PP;

//配置端口速度

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_SetBits(GPIOC,GPIO_Pin_0);

GPIO_ResetBits(GPIOC,GPIO_Pin_2); }

1.2 送餐機(jī)器人的定位功能

室內(nèi)移動(dòng)機(jī)器人定位是移動(dòng)機(jī)器人設(shè)計(jì)的關(guān)鍵技術(shù),由于室內(nèi)環(huán)境,GPS(global positioning system)定位無(wú)法正常運(yùn)行[5]。關(guān)于自主移動(dòng)機(jī)器人的室內(nèi)定位方法有很多種,而對(duì)于固定位置、固定路線的移動(dòng)機(jī)器人,常常選擇基于信標(biāo)的定位方法,基于信標(biāo)的定位系統(tǒng)依賴于一系列環(huán)境中已知特征的信標(biāo),并需要在移動(dòng)機(jī)器人上安裝傳感器對(duì)信標(biāo)進(jìn)行觀測(cè)[6]。在信標(biāo)定位中,基于RF(radio frequency)定位(無(wú)線傳感器網(wǎng)絡(luò)定位)有WLAN,ZigBee,Bluetooth,UWB(ultra wide band)以及無(wú)線RFID(radio frequency identification),選用RFID用于酒店定位,RFID[7]是由閱讀器、電子標(biāo)簽以及保存電子標(biāo)簽的數(shù)據(jù)庫(kù)組成,RFID定位原理是閱讀器發(fā)出射頻信號(hào),當(dāng)電子標(biāo)簽處在射頻信號(hào)內(nèi),電子標(biāo)簽內(nèi)的線圈就會(huì)產(chǎn)生感應(yīng)電流,然后電子標(biāo)簽獲得能量后,發(fā)送儲(chǔ)存在芯片內(nèi)的信息,閱讀器讀取信息并解碼。

設(shè)定每個(gè)酒店房間分配兩個(gè)電子標(biāo)簽,記錄房間信息,當(dāng)送餐機(jī)器人攜帶閱讀器經(jīng)過(guò)房間,當(dāng)閱讀器接收到第一個(gè)電子標(biāo)簽信息后,送餐機(jī)器人開始減速,當(dāng)接收到第二個(gè)電子標(biāo)簽信息后送餐機(jī)器人停止移動(dòng),送餐機(jī)器人房間定位原理如圖3所示。

圖3 房間定位原理圖

1.3 循跡和避障功能

送餐機(jī)器人給房間送餐,每個(gè)房間的位置是固定的,因此送餐機(jī)器人的送餐路線也是不變的,送餐機(jī)器人可以采用紅外循跡的方法移動(dòng)。紅外循跡是通過(guò)辨別黑色和白色來(lái)進(jìn)行移動(dòng)[8],在預(yù)定規(guī)劃好的黑色線路上進(jìn)行移動(dòng)。紅外循跡的原理為:在紅外對(duì)管模塊中有紅外發(fā)射管和紅外接收管,紅外發(fā)射管向地面發(fā)射紅外線,接收管接收反射回來(lái)的紅外線。由于紅外線發(fā)射出來(lái)的紅外光,當(dāng)遇到黑色時(shí)不反射紅外光,此時(shí)在紅外對(duì)管模塊中,輸出引腳會(huì)輸出低電平;同理,遇到白色,會(huì)輸出高電平。送餐機(jī)器人需要兩對(duì)紅外對(duì)管模塊,根據(jù)輸出的高低電平改變車輪的轉(zhuǎn)向,從而實(shí)現(xiàn)送餐機(jī)器人的循跡功能。

送餐機(jī)器人在行駛的過(guò)程中,不可避免地會(huì)遇到人或其他障礙物,在設(shè)計(jì)送餐機(jī)器人時(shí),需要避障功能,這里選擇紅外避障。此次設(shè)計(jì)的送餐機(jī)器人的避障過(guò)程是當(dāng)傳感器檢測(cè)到障礙物時(shí),機(jī)器人停止前進(jìn),等待前方?jīng)]有障礙物時(shí),繼續(xù)前進(jìn),送餐機(jī)器人避障流程如圖4所示。

圖4 避障流程圖

1.4 通信功能

送餐機(jī)器人要實(shí)現(xiàn)遠(yuǎn)程控制,需要將STM32單片機(jī)對(duì)接阿里云物聯(lián)網(wǎng)平臺(tái)。ESP8266作為WIFI通信模塊,ESP8266在STA的工作模式下,實(shí)現(xiàn)ESP8266通過(guò)接收路由器的信號(hào),從而能夠連接互聯(lián)網(wǎng)。使用MQTT(message queuing telementry transport)通信協(xié)議,實(shí)現(xiàn)STM32單片機(jī)與阿里云進(jìn)行數(shù)據(jù)傳輸,安卓手機(jī)APP也同時(shí)接入阿里云,實(shí)現(xiàn)了APP遠(yuǎn)程控制送餐機(jī)器人。ESP8266連接阿里云物聯(lián)網(wǎng)平臺(tái)的程序如下,程序函數(shù)返回值的含義如表1所示。

表1 函數(shù)返回值

//連接阿里云物聯(lián)網(wǎng)平臺(tái)

char WiFi_Connect_IoTServer(void)

{

//復(fù)位ESP8266

if(WiFi_Reset(50))

return 1;

//使用AT指令,設(shè)置STA模式

if(WiFi_SendCmd("AT+CWMODE=1",50))

return 2;

if(wifi_mode==0){

//設(shè)置自動(dòng)連接網(wǎng)絡(luò)

if(WiFi_SendCmd("AT+CWAUTOCONN=1",50))

return3; // 連接路由器

if(WiFi_JoinAP(30)), return 4; }

//連接服務(wù)器

if(WiFi_Connect_Server(100)) return 5;

return 0; }

1.5 視頻查看功能

市面上大多數(shù)移動(dòng)機(jī)器人不能自主移動(dòng),而是在機(jī)器人前面安裝IP網(wǎng)絡(luò)攝像頭模塊,攝像頭將前方路況畫面回傳控制面板上,根據(jù)路況來(lái)手動(dòng)控制機(jī)器人的移動(dòng)。而筆者使用IP網(wǎng)絡(luò)攝像頭模塊的作用是:當(dāng)送餐機(jī)器人長(zhǎng)時(shí)間沒有移動(dòng)或長(zhǎng)時(shí)間沒有完成送餐,可以通過(guò)安卓手機(jī)APP,開啟IP網(wǎng)絡(luò)攝像頭功能,查看送餐機(jī)器人周圍的情況,及時(shí)排查送餐機(jī)器人長(zhǎng)時(shí)間停留的原因;當(dāng)遇到機(jī)器人無(wú)法判斷繼續(xù)前進(jìn)的狀況時(shí),也可以根據(jù)IP網(wǎng)絡(luò)攝像頭回傳的畫面,在APP上手動(dòng)控制送餐機(jī)器人的移動(dòng),完成送餐任務(wù)。

1.6 送餐狀態(tài)檢測(cè)功能

本設(shè)計(jì)中送餐狀態(tài)信息能夠及時(shí)在APP中的控制界面中顯示,便于酒店工作人員查看,因此需要設(shè)計(jì)一種方案,確認(rèn)送餐機(jī)器人到達(dá)了指定客房位置,客人是否已經(jīng)出來(lái)取餐,需要將送餐完成情況回傳到遠(yuǎn)程控制界面上。目前市面上一些送餐機(jī)器人都缺少檢測(cè)部分,一般都是酒店工作人員過(guò)一段時(shí)間撥打客房服務(wù)電話,詢問(wèn)客人餐飲是否已經(jīng)送達(dá)。另一種常見的做法是送餐機(jī)器人到達(dá)送餐房間后,客人取餐后,客人在送餐機(jī)器人按下確認(rèn)按鍵,但是這種需要客人積極配合,如果客人取餐完成后忘記按確認(rèn),酒店工作人員不能及時(shí)在控制界面上收到回傳信息,還是需要酒店工作人員打電話確認(rèn),這兩種常見的方案,不僅會(huì)因?yàn)榇螂娫捲儐?wèn)打擾了客人,而且增加了酒店工作人員的工作量。

筆者設(shè)計(jì)了一種檢測(cè)送餐狀態(tài)方案,該方案是根據(jù)檢測(cè)放餐飲位置的重量變化來(lái)檢測(cè)客人是否取餐完成。在放餐飲位置下安裝一個(gè)稱重傳感器,通過(guò)稱重傳感器不斷計(jì)算出重量,當(dāng)重量由高變低時(shí),表示客人取餐完成,將完成信息通過(guò)阿里云物聯(lián)網(wǎng)平臺(tái)回傳到APP遠(yuǎn)程控制界面上。檢測(cè)送餐完成狀態(tài)流程如圖5所示。

圖5 檢測(cè)送餐完成狀態(tài)流程圖

使用應(yīng)變式稱重傳感器和A/D轉(zhuǎn)換器芯片HX711,應(yīng)變式稱重傳感器的模擬輸出電壓信號(hào)給HX711轉(zhuǎn)換芯片,HX711將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),得出餐飲的重量變化量。筆者使用STM32F1單片機(jī)作為主控制器,對(duì)A/D轉(zhuǎn)換器進(jìn)行測(cè)量數(shù)據(jù)的采集,實(shí)現(xiàn)實(shí)時(shí)測(cè)量。測(cè)量出的數(shù)據(jù)再與設(shè)定值進(jìn)行比較,如果測(cè)量數(shù)值大于設(shè)定值,表示送餐未完成,置位餐飲未取出標(biāo)志位HX711_Flag;當(dāng)測(cè)量數(shù)值小于設(shè)定值,復(fù)位餐飲未取出標(biāo)志位HX711_Flag,表示送餐完成,回傳送餐完成信息。送餐狀態(tài)檢測(cè)硬件程序如下:

/檢測(cè)送餐完成程序

void Get_Weight(void)

{

HX711_m = HX711_Read();//讀出采樣值

//計(jì)算出實(shí)際重量

HX711_m = HX711_m/GapValue;

//重量大于300,則表示餐飲沒有取出來(lái)

if(HX711_m > 300)

{

HX711_Flag=1;

Completion_Flag=0;

}

else

{

HX711_Flag=0;

delay_ms(1000);

}

//重量小于300,表示送餐完成

if(HX711_m <=300&&HX711_Flag!=1)

{

HX711_Flag=0;

Completion_Flag=1;

}

}

2 送餐機(jī)器人下位機(jī)軟件設(shè)計(jì)

送餐機(jī)器人主控芯片為STM32F103ZET6,在使用各個(gè)模塊時(shí),首先要初始化每一個(gè)模塊。下位機(jī)與阿里云建立連接時(shí),需要ESP8266無(wú)線通信模塊,ESP8266完成初始化后,使用AT指令,設(shè)置ESP8266工作在STA模式下,連接路由器,ESP8266開始與阿里云平臺(tái)建立TCP(transmission control protocal)連接,建立成功后,根據(jù)MQTT通信協(xié)議和阿里云平臺(tái)提供的STM32_MCU控制端三元組信息,發(fā)送連接報(bào)文。與阿里云平臺(tái)建立連接后,發(fā)送訂閱報(bào)文,訂閱設(shè)備的Topic,用于接收APP控制端的控制信號(hào),下位機(jī)控制流程如圖6所示。

圖6 下位機(jī)程序控制流程圖

3 阿里云物聯(lián)網(wǎng)平臺(tái)

送餐機(jī)器人要實(shí)現(xiàn)遠(yuǎn)程控制,需要將送餐機(jī)器人接入阿里云平臺(tái)上。首先,用戶要登錄阿里云,在物聯(lián)網(wǎng)平臺(tái)上創(chuàng)建產(chǎn)品,在產(chǎn)品下,添加設(shè)備,這次需要添加兩個(gè)設(shè)備,分別是Android_APP控制端和STM32_MCU控制端,添加完成后,會(huì)生成唯一產(chǎn)品和設(shè)備,獲得設(shè)備三元組[9]:ProductKey(產(chǎn)品密鑰)、DeveiceName(設(shè)備名稱)、DeviceSecret(設(shè)備密鑰)。設(shè)備的三元組是上位機(jī)、下位機(jī)與阿里云建立MQTT報(bào)文通信協(xié)議標(biāo)識(shí)符。為了區(qū)分APP向下發(fā)送消息,需要在設(shè)備管理欄下的產(chǎn)品中自定義功能類型,確保功能按鈕的唯一性[10],部分功能定義如表2所示。

表2 功能定義

4 送餐機(jī)器人APP控制端UI界面設(shè)計(jì)

所設(shè)計(jì)的送餐機(jī)器人遠(yuǎn)程控制端使用Android Studio開發(fā)環(huán)境開發(fā)安卓APP。本系統(tǒng)設(shè)計(jì)的遠(yuǎn)程控制界面是由登錄界面、注冊(cè)界面、MQTT協(xié)議、多線程管理、送餐房間號(hào)管理、遠(yuǎn)程監(jiān)控界面、手動(dòng)操作界面組成,遠(yuǎn)程控制界面APP系統(tǒng)流程如圖7所示。

圖7 遠(yuǎn)程控制界面APP系統(tǒng)流程圖

使用Android Studio開發(fā)遠(yuǎn)程控制界面APP的核心技術(shù)是建立Socket,數(shù)據(jù)的發(fā)送或接收,需要使用到Android系統(tǒng)中的Handler消息傳遞機(jī)制[11],Android系統(tǒng)調(diào)用Handler消息傳遞機(jī)制時(shí),需要開啟Message,Message Queue以及Looper[12]。Handler的任務(wù)是負(fù)責(zé)處理Message,在本系統(tǒng)中需要處理MQTT連接阿里云物聯(lián)網(wǎng)平臺(tái)的消息,包括MQTT連接阿里云成功、失敗反饋消息以及阿里云收到單片機(jī)回傳消息。

APP與單片機(jī)使用的通信協(xié)議是MQTT,APP連接上阿里云物聯(lián)網(wǎng)平臺(tái),APP通過(guò)按鈕的點(diǎn)擊事件,將控制信息以JSON的ALINK協(xié)議格式上傳到阿里云,然后通過(guò)阿里云以同樣的數(shù)據(jù)格式下發(fā)給STM32MCU,STM32MCU執(zhí)行相應(yīng)命令。

在安卓手機(jī)上安裝已設(shè)計(jì)完成的APP,打開APP,酒店工作人員需要先登錄,登錄成功后,才能有使用權(quán)限。

酒店工作人員登錄成功,可以根據(jù)實(shí)際情況選擇送餐房間,確定房間以后,APP界面跳轉(zhuǎn)到遠(yuǎn)程控制界面上,遠(yuǎn)程控制界面如圖8所示。

圖8 遠(yuǎn)程控制界面

當(dāng)送餐狀態(tài)長(zhǎng)時(shí)間處于未完成時(shí),工作人員可以在遠(yuǎn)程控制界面上,按下手動(dòng)按鈕,進(jìn)入手動(dòng)操作界面。工作人員可根據(jù)攝像頭拍攝情況進(jìn)行手動(dòng)調(diào)整完成送餐任務(wù)。

5 結(jié)論

送餐機(jī)器人使用STM32F103ZET6單片機(jī)作為核心控制器,使用ESP8266無(wú)線通信模塊,根據(jù)MQTT通信協(xié)議,將單片機(jī)的數(shù)據(jù)上傳到阿里云物聯(lián)網(wǎng)平臺(tái)。在Android Studio開發(fā)環(huán)境下,使用Java編程語(yǔ)言,開發(fā)遠(yuǎn)程控制界面APP,使用手機(jī)可以遠(yuǎn)程控制和監(jiān)控送餐機(jī)器人。該機(jī)器人可以應(yīng)用到酒店、醫(yī)院及特殊隔離房間等場(chǎng)合,可以減輕工作人員的工作強(qiáng)度,減少運(yùn)營(yíng)成本。

猜你喜歡
電子標(biāo)簽阿里遠(yuǎn)程
RFID電子標(biāo)簽在全鋼子午線輪胎中的應(yīng)用
智能供應(yīng)鏈物聯(lián)網(wǎng)電子標(biāo)簽通信系統(tǒng)
遠(yuǎn)程求助
遠(yuǎn)程工作狂綜合征
云上阿里
辰辰帶你游阿里
圖書館不同領(lǐng)域的電子標(biāo)簽敏感信息智能過(guò)濾系統(tǒng)設(shè)計(jì)
遠(yuǎn)程詐騙
拳王阿里因何被人銘記
阿里是個(gè)好榜樣
泰来县| 江安县| 绩溪县| 易门县| 遂川县| 扎鲁特旗| 清原| 蒙阴县| 南皮县| 耒阳市| 酒泉市| 江都市| 旺苍县| 沿河| 南皮县| 肇州县| 华宁县| 若羌县| 博湖县| 南郑县| 南和县| 丰镇市| 维西| 米易县| 昌乐县| 江源县| 同德县| 溆浦县| 宝应县| 涞水县| 三原县| 日照市| 赣榆县| 延边| 长泰县| 苍梧县| 碌曲县| 鸡泽县| 崇文区| 喀喇沁旗| 香港|