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