潘航,劉妮,吳峰,孫浩楠,劉亮,李靜,付騰飛
(濱州學院航空工程學院,山東濱州,256600)
隨著互聯(lián)網技術的不斷發(fā)展,“互聯(lián)網+”足不出戶完成服務變得更加流行起來,生活節(jié)奏越來越快,空間對人們的限制越來越小,時間也越來越寶貴,不乏因工作等各種原因需要跨市甚至跨省買房的情況,親臨現場的消耗已遠遠超出預期。為此我們提出了實景看房的項目,不論是對于房地產產業(yè)還是買房者都能提供巨大的便利,大大節(jié)省了房地產業(yè)的成本,使買房和賣房變得更加快捷方便,房屋概況更加透明,開啟智慧購房的新時代。
相對于傳統(tǒng)的三維建模技術,通過3D 建模及軟件展示制作的房屋只能少部分樣板間上使用,無法規(guī)?;H欢斑h程看房系統(tǒng)”利用自身的技術優(yōu)勢,從房屋的情況入手,利用OpenMV 與4G/5G 實時傳輸打破信息更新時效的壁壘。“遠程看房系統(tǒng)”的出現會給房屋租賃中介行業(yè)發(fā)展帶來全新的機遇,也為規(guī)范房屋中介市場和推進我國租購并舉的供給側改革起到積極作用。
基于以上情況,本文提出了利用基于互聯(lián)網的遠程看房系統(tǒng)。該系統(tǒng)由控制模塊和識別模塊構成。其中控制模塊是由四驅小車為主體,為了系統(tǒng)在被控制時的穩(wěn)定性,利用MPU6050 傳感器檢測兩輪自平衡車的傾角和速度,經過STM32 控制器處理后控制電機調整車身狀態(tài)保持平衡[1],同時通過PID 算法得到相應的PWM 波,并運用負反饋來驅動電機轉動,從而實現小車平衡。識別模塊是由OpenMV 進行控制,通過卡爾曼濾波去噪預處理防止鏡頭畸變[2],利用OpenMV 的測距和識別對房間內物體及房間的尺度進行測量,并通過APP 將信息傳輸給用戶。當一定時間內沒有新的指令發(fā)送給控制模塊,那么該系統(tǒng)循跡到達初始地。
本設計可以幫助傳統(tǒng)房企實現線上+線下的行業(yè)轉型提供一定思路,并打通互聯(lián)網端的營銷渠道,提供了巨大便利和優(yōu)勢。
由OpenMV 系統(tǒng)作為實景看房的主要媒介,OpenMV用于識別目標物體,并測量與目標物體的距離;二維舵機云臺用來增加系統(tǒng)的自由度[3]。對房屋內物體的尺寸大小進行測量,并將數據傳輸回終端。OpenMV 測距原理如圖1 所示。
圖1 OpenMV 測距原理圖
該原理圖的數據分析如下所示:
本研究通過對OpenMV 攝像頭采集到的數據集進行在線訓練,從而實現對實景圖像的識別。當系統(tǒng)處在長時間無人控制階段就可以通過OpenMV 攝像頭識別顏色循跡回到初始位置。
選用STM32F103ZET6 作為本系統(tǒng)的微控制器如圖2所示。系統(tǒng)成熟度較高,成本低,易操作,故障率低,低功耗,體積小,其具有72MHz CPU 的速度、引腳多和高達1MВ 的閃存,通過編程燒錄給STM32 來對系統(tǒng)進行控制,并通過STM32 與OpenMV 的通信采集圖像信息。STM32作為主控芯片,負責控制各個模塊的協(xié)同工作。具體來說,STM32 可以通過串口或者其他通信方式與OpenMV、WiFi模塊等進行通信,獲取它們采集到的數據,并根據這些數據來控制舵機的運動,從而實現對房屋內尺寸的檢測。
圖2 微控制器
本模塊設置有4 個舵機,舵機型號為LD-60MG,其具有大扭力,虛位小,精度高,散熱能力強等特點,舵機設為編號1、2、3、4。分別組裝在系統(tǒng)不同的位置,執(zhí)行不同的功能。舵機編號1、2 分別控制小車的前輪和后輪,使小車具有左、右轉向和前進、退后功能;舵機編號3、4 分別控制OpenMV 云臺,使該系統(tǒng)可以調節(jié)OpenMV 角度使其更好地采集信息。
本模塊采用的遙控器選用矩陣按鍵,采用STM32 上的矩陣按鍵,可用相對較少的IO 實現多個按鍵的檢測,并且其反應快速。首先,確定矩陣按鍵的行列排布方式為2 行5列的矩陣,接下來,需要將每個按鍵與對應的GPIO 引腳連接起來,并設置引腳的輸入/輸出模式。然后,需要編寫掃描函數,對矩陣按鍵進行掃描,檢測按鍵是否被按下,最后,在主函數中調用掃描函數,根據返回的按鍵編號執(zhí)行對應的功能,通過以上步驟可以確保每個按鍵只有一種功能,遙控器控制小車前進、后退、左轉、右轉;OpenMV 云臺左轉、右轉、上調、下調;測距鍵;計算面積鍵。
本系統(tǒng)搭載WiFi 網絡模塊如圖3 所示,ATK-ESP8266WiFi模塊是ALIENTEK 推出的一款高性能的UART-WiFi(串口-無線WiFi)模塊。此模塊內置TCP/IP 協(xié)議棧,通過串口(LVTTL)與MCU(或其他串口設備)通信,能夠實現LVTTL 與WiFi 之間的轉換。此外,模塊還可以兼容3.3V 和5V 單片機系統(tǒng),從而實現與產品的方便連接。ATK-ESP8266 模塊還支持多種轉換模式,比如串口轉WiFi STA、串口轉AP 和WiFi STA+WiFi AP 的模式,從而實現數據傳輸方案的快速構建和互聯(lián)網傳輸數據快速使用。單片機在操作模塊時只需要通過串口收發(fā)數據就能夠實現WiFi 通信雙向數據傳輸,也就是說單片機不需要了解WiFi的具體傳輸細節(jié),這些由模塊完成[4]。
圖3 網絡模塊電路原理圖
本系統(tǒng)通過機智云的AIoT 協(xié)同應用開發(fā)平臺,進行APP 和機器之間數據的傳輸,采用高性價比、低功耗的云模組,集成機智云平臺GAgent 固件,支持多種通訊協(xié)議。并可智能選擇通信方式的云網關,支持WiFi/Ethernet/4G全網通,免開發(fā)快速接入AIoT 云平臺,低延時快速響應,高穩(wěn)定可靠性。機智云AIoT 開發(fā)平臺還含有APP 自動代碼生成工具、APP SDK、APP 開源框架、自動生成微信小程序等功能,為此開發(fā)者可以在此基礎上設計適合使用的手機APP[5]。
系統(tǒng)運行時,用戶可通過手機APP 將信息傳輸至服務器,通過服務器將信息發(fā)送至看房系統(tǒng),并按照用戶要求對房屋內的信息進行采集。機智云AIoT 開發(fā)平臺為我們提供了良好的平臺,實現了機器與用戶之間信息互換。
本系統(tǒng)的驅動控制程序是通過STM32 進行控制,通過控制驅動來控制舵機,使系統(tǒng)能夠按照指令行動。其中是通過PWM 來進行舵機的轉速、正反轉,以便達到我們想要的效果。電機驅動選用L298N,其啟動性能好,啟動轉速大,并可同時驅動兩臺直流電機。采用定時器周期變化產生PWM 信號,首先需要使能所在總線時鐘,然后設置定時器時間及定時方式,打開定時器,最后編寫定時器中斷服務函數即可。然后需要配置串口通信和WiFi 模塊的AT 指令發(fā)送和接收,需要編寫手機APP 的控制邏輯,并通過WiFi 模塊將指令發(fā)送到STM32 芯片。通過收到的指令控制小車前進、后退、左右轉彎、停車等操作,實現遠程控制。同時需要對小車電量的監(jiān)測、小車位置的定位等,以保證小車安全運行。
為了保證數據可以傳輸給用戶,所以要實現STM32 和OpenMV 的通信。首先是硬件部分的連接。
OpenMV 部分:UART_RX-P5------UART_TX-P4;
STM32 部分:USART_TX-PA9------USART_RX-PA10;
OLED IIC 連接部分:SDA-PA2------SCL-PAL1。
然后需要在STM32 上配置串口通信,包括波特率、數據位、停止位等參數。然后在OpenMV 上也需要配置相應的串口通信參數,其中在進行通信時需要保證STM32 和OpenMV 的串口通信參數一致。之后對STM32 和OpenMV進行編程,再利用PC 端測試數據是否發(fā)送正常,檢測完成后便可進行STM32 和OpenMV 的通信。接著,可以通過STM32 向OpenMV 發(fā)送指令,OpenMV 接收到指令后進行相應的操作,并將結果返回給STM32。
采用OpenMV 識別模塊。OpenMV 是Python3 可編程機器視覺硬件,OpenMV 可以運行在Windows、Android和Mac OS 操作系統(tǒng)上,OpenMV 具有輕量化,結合視像頭可以支持廣泛的圖像處理功能。使用OpenMV IDE 編寫圖像處理程序,并在程序中實現尺寸測量算法,然后通過I/O 將STM32 和OpenMV 進行數據的通信。利用STM32 和OpenMV 的測距模塊,通過OpenMV 相機模塊采集圖像,并使用圖像處理算法進行距離測量,將測得的距離數據通過串口方式發(fā)送給STM32 芯片進行處理。總之,是通過測距模塊實現與物體距離的測量[6],同時利用OpenMV 的視覺功能查看房子的實景。
車子未啟動時,程序初始化并停在充電區(qū)(后面統(tǒng)稱初始區(qū))。當接收到遙控器的驅動指令時,小車停止充電開始依照指令行駛。同時,用戶通過APP 控制遙控器做出相關指令來控制舵機轉動來調整OpenMV 的拍攝角度以及測距并計算房子的大小是否適合購房者(為方便理解后面統(tǒng)稱使用者)需求。
系統(tǒng)執(zhí)行過程的詳細情況如圖4 所示。使用者想買房時可通過APP 去操作該系統(tǒng),小車未接收到指令時,待在初始區(qū),當通過WiFi 接收到指令時,小車按照指令執(zhí)行相關操作。遙控器可以控制小車行走和舵機轉動。使用者觀察顯示屏并找到合適的位置并按下計算鍵后,啟動測距和算法程序,測出小車距墻面的距離,就可獲得各個墻面的長度。計算出房子大小通過顯示屏展示給使用者判斷是否滿足使用者需求。為防止使用者操作到一半突然有事耽擱,放下遙控器就走人,使小車停下后沒人理導致小車耗電完帶來不便。因此十分鐘小車未收到任何指令時將通過OpenMV 視覺巡線功能使小車回到初始位。
每個房間的面積都可用梯形面積計算公式。S=(A+В)*H/2。操作系統(tǒng)測量A(上邊長)、В(下邊長)、H(高)距離的方法??刂葡到y(tǒng)到測量A 指點位置后調制攝像頭位置與墻邊平行按下測距鍵,系統(tǒng)開始測量墻到小車的距離,可得出A 的值;再控制到測量В 的指定位置,同理可測出В 的值;再控制到測量H 的指定位置,同理可測出H 的值。利用公式可算出面積的大小。測量結果如表1 所示。
表1 OpenMV測距結果分析
實驗結果表明,該系統(tǒng)的性能可靠,技術指標滿足設計要求。
本系統(tǒng)由OpenMV 作識別模塊、STM32 單片機作控制模塊、WiFi模塊、遙控器,APP組成,設計了一種可連接網絡、遠程控制、穩(wěn)定性高、識別能力強、精準循跡返回初始地的遠程看房系統(tǒng)。通過編寫程序導入系統(tǒng),執(zhí)行功能達成遠程看房的效果。本文針對買房的客戶在時間、地點不允許的情況下能購買自己心儀房子的問題。該系統(tǒng)能為使用者解決跨省、跨城看房買房的問題,看到房子的實景,從而避免使用者買到不喜歡的房子所帶來的金錢、時間損失。