LSM6DSL慣性模塊開發記錄


一、術語介紹

1、IMU

IMU是慣性測量裝置(Inertial Measurement Unit)的縮寫。
IMU裝置通常包含陀螺儀和加速度計。

2、加速度計

加速度計測量的是物體的加速度。
我們知道,重力加速度是一個物體受重力作用的情況下所具有的加速度。當物體處於靜止狀態時,加速度計測量出來的值就等於重力加速度1g, 約等於9.8米每平方秒。
重力加速度g的方向總是豎直向下的,通過獲得重力加速度在其X軸,Y軸上的分量,我們可以計算出物體相對於水平面的傾斜角度。

加速度計來測量傾角:
一個簡單的例子如下: 一個單軸的加速計位於重力水平面上的時候,它在垂直方向上受到的加速度為1g,在水平方向上受到的加速度為0。當我們把它旋轉一個角度的時候,就會在水平軸上產生一個加速度分量。通過它們的關系,就可以計算出該單軸加速計的傾角。

3、陀螺儀

陀螺儀測量的是角速度,即物體轉動的速度.
把速度和時間相乘,即可以得到某一時間段內物體轉過的角度。(但是積分運算得來的角度本身就存在誤差,隨着時間的累加,誤差會加劇,此時就需要加速度計輔助計算出姿態角度)

陀螺儀的角速度測量:
假如他的速度是1度/秒,那么通過速度乘以時間,我們就可以知道他距離起點走了多少度。

4、dps

dps是Degree Per Second的縮寫,是角速度單位。

 

二、LSM6DSL資料獲取

1、文檔

LSM6DSL的文檔獲取很方便,去ST官網即可:https://www.st.com/en/mems-and-sensors/lsm6dsl.html

主要關注其Datasheet和應用說明文檔:

 

 

2、代碼

LSM6DSL的源碼獲取也很方便:

Linux平台:https://github.com/STMicroelectronics/STMems_Linux_Input_drivers/tree/linux-3.10.y-gh/drivers/input/misc/st/imu/lsm6dsl

單片機平台:https://github.com/stm32duino/LSM6DSL.git

 

三、LSM6DSL開發及調試

1、通信接口

 LSM6DSL支持I2C或SPI兩種通信接口,以SPI為例:

(1)LSM6DSL做從機

(2)SPI配置:時鍾線SCK空閑高電平+數據線SDI/SDO第一個下降沿采樣,即CPOL=1,CPHA=0,故SPI模式為MODE2

(3)數據傳輸:MSB first

(4)地址傳輸:讀寫標志位+地址為7位,傳輸順序為:RW-AD6-AD5-AD4-AD3-AD2-AD1-AD0。

(5)讀寫標志位:0-寫,1-讀,以地址0x55為例:

寫數據:Addr = 0x55;讀數據:Addr = 0x55 | 0x80

 

2、數據轉換

LSM6DSL芯片輸出的Accelerometer和Gyroscope各方向的數據是16位有符號數

以正數為例,最大可到32767,如果是Accelerometer數據,量程為2g的情況下,32768個刻度,一個刻度代表:2g/32768 = 2000mg/32767 = 0.061035mg

 

例如:

如果讀出數據為16384,則加速度:16384x0.061035mg = 1000mg = 1g

不同量程下,每一個刻度代表數值都在Datasheet有標明,可見:4.1 Mechanical characteristics章節。

 

3、API使用

以讀取Accelerometer數據為例:

LSM6DSL_ACC_GYRO_XLDA_t aval = LSM6DSL_ACC_GYRO_XLDA_NO_DATA_AVAIL;
LSM6DSL_ACC_GYRO_R_XLDA(NULL, &aval);           // 1. 讀取芯片狀態寄存器
if (LSM6DSL_ACC_GYRO_XLDA_DATA_AVAIL == aval) { // 2. 判斷加速度數據是否有效
	Get_X_Axes(data);                           // 3. 讀取加速度數據,單位mg
	printf("Acc: %d, %d, %d\r\n", data[0], data[1], data[2]);
}

 

四、參考資料

(1)姿態角解算(MPU6050 加速度計加陀螺儀)

(2)LSM6DS3(六軸傳感器)STM32驅動及6D功能實現

(3)pitch、yaw、roll三個角

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM