<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x
    查看: 2063|回復: 0
    打印 上一主題 下一主題

    【飛控開發基礎4】開源編隊無人機-串口(光流數據獲。

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2022-7-16 11:04:42 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: 開源 , 編隊 , 無人機 , 串口 , 光流數據獲取
    COCOFLY教程
    ——瘋殼·無人機·系列
    串口(光流數據獲。




       
    圖1


        一、光流模塊簡介
        光流(optical flow)是指的是空間運動物體在觀察成像平面上的像素運動的瞬時速度。
        光流法是利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關系,從而計算出相鄰幀之間物體的運動信息的一種方法。
        通常將二維圖像平面特定坐標點上的灰度瞬時變化率定義為光流矢量。
        一般而言,光流是由于場景中前景目標本身的移動、相機的運動,或者兩者的共同運動所產生的。
        當人的眼睛觀察運動物體時,物體的景象在人眼的視網膜上形成一系列連續變化的圖像,這一系列連續變化的信息不斷“流過”視網膜(即圖像平面),好像一種光的“流”,故稱之為光流。光流表達了圖像的變化,由于它包含了目標運動的信息,因此可被觀察者用來確定目標的運動情況。
        COCOFLY 無人機采用的光流模組是基于 PMW3901,PMW3901 是一款光學運動跟蹤傳感器,該傳感器體積小、功耗低、精度高。如下圖所示為該光流模組的實物圖如下圖所示。
           
        圖2
        光流模組上已經把 PMW3901 的數據處理好,并且通過串口周期傳輸,波特率為 19200,該光流模組的串口傳輸的協議如下表所示。

       
        表1
        其中 DATA0、DATA1 是 flow_x 拆分出來的低 8 位數據和高 8 位數據,即flow_x=(int16_t)(DATA1<<8)|(DATA0),DATA2、DATA3 是 flow_y 的低 8 位和高8 位,即 flow_y=(int16_t)(DATA3<<8)|(DATA2),其中和校驗為 DATA0~DATA3 的累加值,即 SUM=DATA0+DATA1+DATA2+DATA3;SQUAL 為地面環境質量, 數值越大表示地面環境質量越高;最后一個字節是結束符,有兩種:常規模式下固定是 0xAA(Y 引腳接高電平)、偏航模式下是固定的 0xBB(Y 引腳接低電平)。二、串口光流數據獲取實驗
        串口光流數據獲取實驗使用 STM32 的串口 2 即 UART2 與光流模組相連, 串口 1 即 UART1 通過 USB 轉串口模塊連接電腦,把串口 2 獲取到的光流數據通過串口 1 傳輸到電腦端的串口調試助手顯示出來。串口 2 的引腳如下圖所示:

       
        圖3
        兩個串口引腳分別與 PA2 與 PA3 引腳相連,那么我們就對 PA2 與 PA3 引腳進行配置,串口 1 的配置可以參考《串口(基礎收發)》,配置代碼(通過調用官方庫)編寫的思路如下:

       
        表2
        串口 2 初始化代碼如下:

       
        圖4
        串口 2 接收到光流模組的數據就轉發到串口 1,串口 2 的中斷函數代碼如下。
           
        圖5
        設置串口 2 的波特率為 19200,代碼如下:

       
        圖6
        保存、編譯、下載代碼,確保串口 2 接上了光流模組,然后再把串口 1 接上
        USB 轉串口模塊,最后接到電腦的 USB 端口,如下圖所示:

       
        圖7
        然后在把 USB 轉串模塊插到電腦的 USB 口,打開電腦端的串口調試助手, 找到對應的 COM 口(前提是安裝了 USB 轉串口驅動),設置波特率為 115200, 打開,可以看到串口在不斷打印光流模組發送的數據,如下圖所示。


        圖8




    更多完整學習資料和對應開源套件,請登陸官網:“瘋殼”


        文件下載請點擊: 【4】串口(光流數據獲。.pdf (799.34 KB)


    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷