圖片1.png (290.15 KB, 下載次數(shù): 60)
下載附件
2020-3-26 17:40 上傳
串口(視覺數(shù)據(jù)獲取)一、OPENMV 模組簡(jiǎn)介OPENMV是一個(gè)開源、低成本、功能強(qiáng)大的機(jī)器視覺模塊。以STM32F767為核心,集成了OV7725攝像頭芯片,在小巧的硬件模塊上,用C語(yǔ)言高效地實(shí)現(xiàn)了核心機(jī)器視覺算法,提供Python編程接口。開發(fā)者、電子發(fā)燒友以及智能設(shè)備開發(fā)商都可以用Python語(yǔ)言使用OPENMV提供的機(jī)器視覺功能,為自己的產(chǎn)品和發(fā)明增加有特色的競(jìng)爭(zhēng)力。 OPENMV上的機(jī)器視覺算法包括尋找色塊、眼球跟蹤、邊緣檢測(cè)、標(biāo)志跟蹤等。可以用來實(shí)現(xiàn)非法入侵檢測(cè)、產(chǎn)品的殘次品篩選、跟蹤固定的標(biāo)記物等。使用者僅需要寫一些簡(jiǎn)單的Python代碼,即可輕松的完成各種機(jī)器視覺相關(guān)的任務(wù)。小巧的設(shè)計(jì),使得OPENMV可以用到很多創(chuàng)意的產(chǎn)品上。比如,可以給機(jī)器人提供周邊環(huán)境感知能力;給智能車增加視覺巡線功能;甚至,可以給工廠產(chǎn)品線增加殘次品篩選功能等。 COCOFLY 上的無人機(jī)視覺模組采用的就是OPENMV,其實(shí)物圖如下圖所示。
圖片2.png (182.77 KB, 下載次數(shù): 48)
下載附件
2020-3-26 17:40 上傳
其中OPENMV的Python代碼已經(jīng)寫好提供給用戶,如果用戶需要修改的話,也可以修改使用,目前OPENMV串口發(fā)出的視覺數(shù)據(jù)的協(xié)議框架如下表所示。 其中幀頭是固定為兩個(gè)字節(jié):0xAA、0xAA;功能字為一個(gè)字節(jié);長(zhǎng)度為數(shù)據(jù)的長(zhǎng)度,也為一個(gè)字節(jié);數(shù)據(jù)位n個(gè)字節(jié);和校驗(yàn)為一個(gè)字節(jié),即幀頭開始相加到最后一個(gè)字節(jié),保留低8位。 視覺模組的接收數(shù)據(jù),即模式設(shè)置的協(xié)議框架如下表所示。 其中幀頭是固定為兩個(gè)字節(jié):0xAA、0xAF;功能字為0xF1;長(zhǎng)度為數(shù)據(jù)的長(zhǎng)度,也為一個(gè)字節(jié);Mode,即OPENMV的模式設(shè)置,為1個(gè)字節(jié);和校驗(yàn)為一個(gè)字節(jié),即幀頭開始相加到最后一個(gè)字節(jié),保留低8位。 該數(shù)據(jù)的協(xié)議用戶均可自定義,詳情可以看配套的OPENMV的Python源碼,OPENMV的具體使用方式可以查看OPENMV官網(wǎng)。 二、串口視覺數(shù)據(jù)獲取實(shí)驗(yàn)串口視覺數(shù)據(jù)獲取實(shí)驗(yàn)使用STM32的串口1即UART1與視覺模組相連,串口2即UART2,通過USB轉(zhuǎn)串口模塊連接電腦,把串口1獲取到的視覺數(shù)據(jù)通過串口2傳輸?shù)诫娔X端的串口調(diào)試助手顯示出來。做該實(shí)驗(yàn)的時(shí)候需要把視覺模組接到USART1,把光流模組暫時(shí)取下,并且把USB轉(zhuǎn)串口的線接到光流接口處。 串口1和串口2的配置可以參考《串口(基礎(chǔ)收發(fā))》和《串口(光流數(shù)據(jù)獲取)》兩節(jié),配置代碼(通過調(diào)用官方庫(kù))。 代碼編寫的思路如下表所示: 代碼思路 1 | | 1、定義結(jié)構(gòu)體; 2、使能時(shí)鐘; 3、填充結(jié)構(gòu)體; 4、裝載結(jié)構(gòu)體。 | | | 1、定義結(jié)構(gòu)體; 2、使能時(shí)鐘; 3、填充結(jié)構(gòu)體; 4、裝載結(jié)構(gòu)體; 5、開啟中斷; 6、使能串口。 | | | 1、定義結(jié)構(gòu)體; 2、填充結(jié)構(gòu)體; 3、裝載結(jié)構(gòu)體。 | | | 1、等待接收以及發(fā)送數(shù)據(jù)。 |
串口2初始化代碼如下:
圖片3.png (36.02 KB, 下載次數(shù): 50)
下載附件
2020-3-26 17:40 上傳
這里注意要把串口的發(fā)送也配置好,這樣才能把數(shù)據(jù)發(fā)送到電腦。 串口1接收到視覺模組的數(shù)據(jù)就轉(zhuǎn)發(fā)到串口2,串口1的中斷函數(shù)代碼如下。
圖片4.png (16.07 KB, 下載次數(shù): 61)
下載附件
2020-3-26 17:41 上傳
設(shè)置串口1的波特率為1115200,串口2的波特率也設(shè)置為115200,代碼如下:
圖片7.png (772.26 KB, 下載次數(shù): 55)
下載附件
2020-3-26 17:42 上傳
保存、編譯、下載代碼,確保串口1接上了視覺模組,然后再把串口2接上USB轉(zhuǎn)串口模塊,最后接到電腦的USB端口,如下圖所示:
圖片5.png (312.52 KB, 下載次數(shù): 59)
下載附件
2020-3-26 17:42 上傳
然后在把USB轉(zhuǎn)串模塊插到電腦的USB口,打開電腦端的串口調(diào)試助手,找到對(duì)應(yīng)的COM口(前提是安裝了USB轉(zhuǎn)串口驅(qū)動(dòng)),設(shè)置波特率為115200,打開,可以看到串口在不斷打印視覺模組發(fā)送的數(shù)據(jù),如下圖所示。
圖片6.png (531.89 KB, 下載次數(shù): 45)
下載附件
2020-3-26 17:43 上傳
以上的pdf格式文檔51黑下載地址:
2.飛控開發(fā)基礎(chǔ)-【5】串口(視覺數(shù)據(jù)獲取).pdf
(799.81 KB, 下載次數(shù): 20)
2020-3-26 17:44 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|