隨著無(wú)現(xiàn)支付逐步深入我們的日常生活,我們平時(shí)出門(mén)可以沒(méi)有現(xiàn)金但卻離不開(kāi)手機(jī),這便是二維碼為我們帶來(lái)的便捷,本文將重點(diǎn)介紹如何將二維碼識(shí)別植入產(chǎn)品設(shè)計(jì)。
目前大家所熟知的二維碼識(shí)別需要配變專(zhuān)用的攝像頭,成本一直居高不下,若通用的CSI攝像頭就能完成二維碼的識(shí)別與運(yùn)算,那么無(wú)論是設(shè)計(jì)成本還是BOM成本都將帶來(lái)可觀的改善。但二維碼專(zhuān)用攝像頭的成本又居高不下,如何降低成本?是很多人關(guān)注的問(wèn)題,本文將通過(guò)CSI攝像頭為示例,淺析如何通過(guò)普通攝像頭識(shí)別二維碼信息。
搭建維碼組件主要由主控——M1052核心板、采集攝像頭——OV725攝像頭、人機(jī)交互界面——4.3寸彩色液晶屏。
M1052跨界核心板作為二維碼掃描設(shè)備的主控方案,搭載NXP i.MX RT105x處理器,主頻高達(dá)528MHz,此核心板支持CSI(CMOS Sensor Interface)接口,可以分析COMS攝像頭的傳輸來(lái)的數(shù)據(jù)。
OV7725是OmniVision公司的生產(chǎn)的一款低成本高清CMOS攝像頭芯片,可達(dá)到30w像素,支持VGA和QVGA的圖像大小。輸出格式支持Raw RGB, RGB(GRB 4:2:2, RGB565/555/444) 和YCbCr(4:2:2)格式。支持AEC(自動(dòng)曝光控制),AGC(自動(dòng)增益控制),AWB(自動(dòng)白平衡),ABF(自動(dòng)帶通濾波器)等功能,通訊協(xié)議采用sccb(串行攝像頭控總線)協(xié)議,支持8/10 位的bayer格式輸出。
顯示器采用4.3寸的TFT電阻屏,采用顯示器的目的是方便查看當(dāng)前攝像頭是否捕獲到了相應(yīng)的二維碼。這樣能夠快速的定位二維碼。當(dāng)然如果攝像頭的位置是固定的,可以不用LCD顯示屏。
結(jié)合所需的系統(tǒng)組件編寫(xiě)相應(yīng)的應(yīng)用程序(測(cè)試程序功能:當(dāng)解碼成功后在串口打印輸出解碼出信息),如下所示。
通過(guò)移動(dòng)攝像頭,或者移動(dòng)相應(yīng)的二維碼圖片,使二維碼在LCD屏上能清晰的顯示。
當(dāng)LCD顯示屏上能夠清晰的顯示一幀帶二維碼的圖片,才能解碼成功。
當(dāng)采集一幀圖像,主控嘗試進(jìn)行二維碼的解碼,解碼成功會(huì)在控制臺(tái)上打印解碼信息。
當(dāng)成功解碼一幀,就會(huì)在控制臺(tái)上打印出解碼的信息。
由于M105x的頻率能夠達(dá)到528MHz,相對(duì)于其他微控制器的來(lái)說(shuō),CPU的速率,在二維碼解碼速度上占有足夠的優(yōu)勢(shì),解碼一幀VGA(640 * 480)的圖片平均需要52ms,解碼一幀QVGA(320 * 240)的圖片平均需要28ms。
M105x核心板上,板載一個(gè)16M的SDRAM芯片,有足夠的內(nèi)存去處理算法方面的工作。下表是對(duì)SDRAM的讀與寫(xiě)的測(cè)速。
大小 | 操作 | 速度(MB/s) |
4K | write | 268.2864 |
read | 89.1227 | |
1M | write | 249.1471 |
read | 89.045 | |
4M | write | 249.8559 |
read | 89.1428 | |
8M | write | 249.1228 |
read | 88.733 | |
16M | write | 248.7476 |
read | 88.7571 |
M105x外設(shè)多如圖8,可以在處理二維碼的同時(shí)可以操作其他外設(shè)做相應(yīng)的工作。
由于M105x分別有集成有Wi-Fi、LoRa等的核心板,所以可以通過(guò)網(wǎng)絡(luò)傳輸解碼數(shù)據(jù)??梢酝ㄟ^(guò)應(yīng)用場(chǎng)景選則相應(yīng)的核心板。