下載手機汽配人

我在做一個關于andriod加速度傳感器的數據讀取應用

我想把傳感器讀取的xyz三軸上獲取的加速度值隨著時間的遞增存在一個長度為 24的靜態(tài)數組中,請問怎么做?
提問者:網友 2018-07-31
最佳回答
您好,在 HAL 文件中,會有一組宏定義,用于把從傳感器中讀取的加速度數據轉換為標準單位(m/s2)。如以下代碼: // conversion of acceleration data to SI units (m/s^2) #define CONVERT_A (GRAVITY_EARTH / LSG) #define CONVERT_A_X (-CONVERT_A) #define CONVERT_A_Y (CONVERT_A) #define CONVERT_A_Z (CONVERT_A) 在這個宏定義中,常量GRAVITY_EARTH 是一個標準重力加速度值,即9.81m/s2,LSG為一個重力加速度值的最小有效計數值,例如,MMA8452 在正常模式下的讀數為1024。因此,CONVERT_A 用于把從加速度傳感器中讀取的數據,從數字讀數轉換為標準重力加速度單位。 通過分別修改CONVERT_A_X、CONVERT_A_Y 和CONVERT_A_Z,我們可以輕松地改變X、Y 和Z 軸的方向。如果該軸的方向與系統(tǒng)定義相反,可以使用(-CONVERT_A)來改變其方向。如果方向一致,就使用(CONVERT_A),則保持方向不變。 這個宏定義位于FSL Android 9 (Android 2.2)驅動程序的HAL文件sensor.c 中。對于FSLAndroid 10 (Android 2.3),您可以在’libsensors’文件夾的HAL 文件Sensor.h 中找到它。 在 Android 2.2 HAL 文件中交換X 軸和Y 軸 在某些情況下,X 和Y 軸必須進行交換,以便使傳感器數據的坐標與系統(tǒng)坐標保持一致。 對于 FSL Android 9 (Android 2.2)驅動程序來說,X 軸和Y 軸的交換非常簡單。首先,在HAL 文件sensor.c 中,在函數sensor_poll() 中找到以下代碼: switch (event.code) { case ABS_X: sSensors.acceleration.x = event.value * CONVERT_A_X; break; case ABS_Y: sSensors.acceleration.y = event.value * CONVERT_A_Y; break; case ABS_Z: sSensors.acceleration.z
回答者:網友
產品精選
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網友提供的關于“我在做一個關于andriod加速度傳感器的數據讀取應用”的解答,僅供您參考,汽配人網不保證該解答的準確性。