基于ADNS2610的微型飛機速度檢測系統設計
3 透鏡系統設計
透鏡焦距的選擇對于整個系統的設計至關重要,因為它決定了微型飛機在使用本測速系統時的高度范圍。微型飛機使用光流法測速的場合主要是在近地飛行過程中,因此選用的透鏡系統的物距應該適合近地飛行時使用。為了節約成本,選用了電腦上常用的一種攝像頭上的透鏡系統,其焦距為4mm,其物距范圍為幾厘米到幾米,完全能滿足要求。該系統透鏡與ADNS2610的感光面的距離是可以連續調節的,這樣就可以方便地調節成像的清晰度。
在實際使用過程中,透鏡與感光面的距離一旦確定就不再改變。這樣雖然隨著飛機高度的變化,成像清晰度可能會有所改變,但是只要在限定的高度范圍內,成像的清晰度是能夠保證的,因此不影響測速,并且還能夠簡化計算過程。
因為圖像的最大移動速度為12inch/s以及透鏡焦距為4mm,可以推導出測速時微型飛機的最大相對于地面飛行角速度為76.2 rad/s。
4 軟件設計
測速軟件包括主控芯片的初始化、位移量的讀取、速度的計算這幾個模塊。系統的初始化主要針對控制芯片MSP430F449的相應控制引腳而言,包括設置I/O端口、輸出頻率、存儲區間等。根據ADNS2610的數據手冊,在讀數據的過程中,在發送完最后一個地址位后,微控制器的SDIO端口必須進入高阻態。這里把MSP430的相應引腳設置為輸入狀態,可以滿足對微控制器的高阻態要求。程序軟件設計的總流程圖如圖4
所示。
讀數據的過程由微控制器來驅動,時序如圖5所示。
每條讀數據命令包含2個字節,第1個字節代表地址,最高位為O。在數據傳輸過程中,SDl0的數據在時鐘下降沿被設置,在時鐘上升沿被接收。在向ADNS2610傳輸數據的過程中,時鐘脈沖和數據的變化之間有一定的時序關系,如圖6所示。在地址位傳輸結束后,微控制器的SDIO端口必須被設置為高阻態,并且串口的時鐘必須要有不小于100μs的延遲,如圖7所示(圖5中的detail“A”)。最后一個數據位傳輸結束以后,ADNS2610會進入高阻態,這時SCK和SDIO之間的時序關系如圖8所示(圖5中的detail“B”)。根據時序要求可以看出,如果以讀取X和Y方向上移動量各1次為1個周期T,那么周期T大于200μs。
向ADNS2610寫數據的時序圖如圖9所示,也是先傳送地址位再傳送數據位。其中地址位的最高位為1。SCK和SDIO的信號脈沖時序要求如圖6所示。需要注意的是,寫數據結束以后,必須延時100μs以上才能夠進行下一次讀或者寫操作。
以X軸為例給出速度的計算過程。傳感器的分辨率為400 cpi,所以Delta_X的單位為O.0025inch。如果周期T的單位為s,則:
Y軸的速度計算過程和X軸相同。
圖像的解析度是400 counts/inch,圖像的最大移動速度是12inch/s,因此最大的計數速度是4800counts/s。Delta_X和Delta_y的絕對值最大為127,因此最大的讀數周期為0.0265s。
評論