物趣系列的最終目標(biāo)是實(shí)現(xiàn)基于55S69的智能識(shí)別,貓貓狗狗之類的,能支持到多少種“物”,看具體進(jìn)度。物趣系列技術(shù)路線:OV7670采集圖像?1.77寸TFT屏顯示?ESP8266上傳服務(wù)器?獲取識(shí)別結(jié)果?顯示到TFT屏上。物趣系列將分三步走,
第一步,LPC55S69-EVK適配 ST7735 TFT屏,已更。
傳送:https://www.nxpic.org.cn/module/forum/thread-620945-1-1.html
第二步,LPC55S69-EVK適配 OV7670 攝像頭,把圖像顯示到TFT屏上。已更。
傳送:https://www.nxpic.org.cn/module/forum/thread-621071-1-1.html
第三步,LPC55S69-EVK適配 ESP8266 WIFI模塊,上傳到自家服務(wù)器,識(shí)別物體,將返回結(jié)果顯示到TFT屏上。本貼!
這里簡(jiǎn)單說一下ESP8266的使用。我盡力用最簡(jiǎn)單的語言把ESP8266相關(guān)的部分說清楚。在物趣系列的設(shè)計(jì)中,ESP8266僅用作和云端服務(wù)器傳遞數(shù)據(jù)的手段,不涉及其二次開發(fā)。LPC55S69引腳路由如下圖。
系統(tǒng)通過一個(gè)按鍵識(shí)別用戶輸入,當(dāng)用戶按下按鍵,即將一幀圖像實(shí)時(shí)上傳到云端,等待識(shí)別結(jié)果返回。云端服務(wù)器是個(gè)人私用的,不對(duì)外開放。為方便下文描述,在本地局域網(wǎng)絡(luò)中建立了一個(gè)服務(wù)器拷貝,并暴露一個(gè)端口供ESP8266建立通訊。這里,ESP8266工作在STA模式下:
第1步,使用“AT+CWMODE=1”設(shè)置ESP8266為STA模式;
第2步,使用“AT+CWJAP_DEF=<ssid>,<pwd>連接到AP;
第3步,使用“AT+CIPSTART=“TCP”,<remoteIP>,<remote port>”連接到服務(wù)器;
(等待用戶按下按鍵,將一幀圖像上傳到服務(wù)器)
第4步,使用“AT+CIPSEND”,向服務(wù)器傳輸BMP圖像。圖像分辨率128*160,包含頭信息70字節(jié),內(nèi)容40960字節(jié),共計(jì)41030字節(jié)。先向服務(wù)器發(fā)送圖像頭,70字節(jié),告知服務(wù)器即將發(fā)送圖像數(shù)據(jù)。之后分80段,每段512字節(jié),向服務(wù)器傳輸數(shù)據(jù)。傳輸結(jié)束后,向服務(wù)器發(fā)送“over”告知圖像已傳輸完成。服務(wù)器每收到512字節(jié)數(shù)據(jù),向客戶端返回“success”表明接收成功。
(此處等待服務(wù)器識(shí)別圖像,識(shí)別完成,返回“start”告知客戶端,即將發(fā)送圖像信息。隨后將結(jié)果以RGB565的格式,共計(jì)40960字節(jié)分段傳輸給客戶端。)
第5步,客戶端收到“start”信息,進(jìn)入圖像刷寫狀態(tài)。每接收一段數(shù)據(jù),即將該段數(shù)據(jù)刷寫到屏幕上。待刷寫完成后,結(jié)果停留2-3秒,其后攝像頭開始工作,將新的圖像刷寫到屏幕上。
這里上傳和接收數(shù)據(jù),采用多段傳輸?shù)姆椒?,可以使用更小的buffer,節(jié)約RAM。當(dāng)然,分段越多,傳輸效率越低。ESP8266每進(jìn)入一次數(shù)據(jù)傳輸狀態(tài),所需時(shí)間大致可以描述為“發(fā)送數(shù)據(jù)的系統(tǒng)開銷T1+發(fā)送數(shù)據(jù)的用戶開銷T2”,發(fā)送分段越多,T1累積越大。對(duì)于發(fā)送固定總量的數(shù)據(jù)來說,分段越小,應(yīng)該效率越高。以上是個(gè)人見解,如不正確,請(qǐng)論壇大佬指正!
調(diào)試時(shí)已經(jīng)成功識(shí)別一些物體,這里取小貓和小狗的識(shí)別結(jié)果分享給大家!這里圖片是在手機(jī)上顯示,用OV7670拍攝,然后識(shí)別的。
小狗+小貓多物體識(shí)別