無人機穩定機制

PMW3901是一種光流感測器,用於計算內部流量變化,並提供每個針幀之間的像素差異,原理類似我們常使用的滑鼠原理一樣,但需要在高度80 mm以上到無限大之間的操作範圍。 

原相的光學動態追蹤(Optical Motion Tracking / OMT)技術可提供無人機應用中的長距離 (far field) 追蹤。這種技術可在低光環境中回傳移動物體的 x 軸及 y 軸動態資訊,並持續以高幀率進行同步作業,可有效應用在無人機的穩定功能上。 

一般廣泛應用於無人機上的陀螺儀可透過物體的加速度和傾斜角度來精準偵測物體動態,但在速度沒有變的情況下,針對強風或引擎失效帶來的飄移極可能偵測失準。在這種情況下,縱使速度維持一致仍可進行精密偵測的光學動態追蹤(OMT) 感測器,便顯得舉足輕重。 

OMT 感測產品擁有小巧且低功耗的設計,但在性能上絕不妥協。每個 OMT 感測器都使用高幀率來進行快速且精確的追蹤,其最高速度可達 7.4 rad / s,並且可支援 80mm 到無限遠的範圍。它的內建的振盪器(oscillator)無需進行時脈輸入(no clock input),且鏡頭安裝過程中也不需進行鏡頭對焦,可讓客戶的開發過程輕鬆許多。


No.

Item

Type

Description

(1)

Accum X & Y

Input

顯示從PMW3901回報的 X & Y 計數值

(2)

Mouse Emulation

Selection

啟用鼠標模擬。在此模式下PMW3901模擬鼠標移動

(3)

Connect /Disconnect

Button

連接或斷開模組

(4)

More >>

Button

在MoTor中顯示或增加附加功能。

(5)

Reset

Button

重開PMW3901並重新初始化寄存器設置

(6)

Terminal

Button

啟動命令終端窗口以進行替代寄存器讀取和寫入

(7)

Register

Button

啟動寄存器設置位址

(8)

Connect /Disconnect

Button

連接或斷開PMW3901


可以藉由MoTor在PC上觀察X-Y值偏移的狀態,再導入無人機Host端藉由SPI 介面傳輸,由MCU內部算法來修正風量所造成相位的改變,進而達到無人機懸停的效果。

void ReadMotion(bool forceReport)
{
int i = 0, j = 0;
unsigned char f;
bool report = false;

if (IS_BIT_CLEAR(MCU_CONFIG[0],CONFIG_00_DISABLE_MOTION_REPORT) && !bStopReadMotion)
{
// 檢查Motion Bit是否成立
MotionData.d[i++] = RegRead_tsrw_tsrr(0x02);
if (IS_BIT_CLEAR(MotionData.burst.motion , BIT7) && !forceReport)
{
return;
}
// 讀取檢測狀態
MotionData.d[i++] = RegRead_tsrw_tsrr(0x15);
// 讀取累積向量位移的資料
for (; i < MOTION_BURST_SIZE; i++)
{
//感測器將開始累積位移計數
MotionData.d[i] = RegRead_tsrw_tsrr(i+1);
}​