l3g4200d感測器學習
l3g4200d是意法(st)半導體公司推出的一款mems運動感測器:三軸數字輸出陀螺儀,可測量物體繞x、y
、z三軸運動夫人角速度的變化,測量範圍為±
250,
±500,
±1000, 和±
2000
°/sec
(dps
)。通過測量角速度的變化,可以判別出物體的運動狀態,所以也稱為運動感測器,換句話說,這感測器可以讓我們的裝置知道自己「
在哪兒和去哪兒」(
where they are or where they are going
),提供16
位資料輸出,輸出值為
16位數值的補碼,以及可配置的低通和高通濾波器等嵌入式數字功能,支援
iic和
spi匯流排兩種通訊方式。
一、感測器的測量方向和內部引腳圖
引腳說明如下:
pin名稱
功能vdd_io
電源io腳
scl/spc
i2c序列時鐘
/spi
串列埠時鐘
sda/sdi/sdo
i2c序列資料
/spi
序列資料輸入
/3-wire
序列介面資料輸出
sdo/sa0
spi序列資料輸出
/ i2c裝置的位址不顯著位 cs
spi啟用
i2c / spi模式選擇
(1: i2c
模式; 0: spi
啟用)
drdy/int2
資料就緒/fifo中斷
int1
可程式設計中斷
reserved
接地reserved
接地reserved
接地reserved
接地reserved
接地gnd
0v**
pllfilt
鎖相環環路濾波器
reserved
連線到vdd
vdd電源
二、感測器暫存器的配置過程
1、初始化感測器(選擇量程、高通濾波模式,設定中斷使能等,對相應的控制暫存器進行寫操作)
2、讀取資料(首先讀狀態暫存器(status_reg
),若zyxda=1
,則可以讀數,否則等待。為減小誤差,在編寫程式時要設定連續讀數多次,然後取平均值。)
三、主要暫存器介紹
1、控制暫存器
20h):
選擇輸出資料速率。輸出頻寬,以及x、
y、z軸的使能
dr1dr0bw1
bw0pd
zenyen
xendr1-dr0和
bw1-bw0
配置對應的輸出速率和頻寬如下表(其中:
odr為資料輸出頻率,
cut_off
為濾除頻率)
dr<1:0>
bw<1:0>
odrcut_off
12.5
12.5
pd0:掉電模式
1:普通模式或者休眠模式(預設為0 )
zenz軸使能
0:不啟用
1:啟用(預設1)
yeny軸使能
0:不啟用
1:啟用(預設1)
xenx軸使能
0:不啟用
1:啟用(預設1)
對於pd處於3
個模式中的哪乙個則看下表: 模式
pdzen
yenxen
掉電模式
休眠模式
普通模式
21h):
選擇高通濾波模式和高通截止頻率
hpm1
hpm0
hpcf3
hpcf2
hpcf1
hpcf0
高通濾波器模式選擇配置
hpm1
hpm0
高通濾波器模式
普通模式(reset reading hp_reset_filter)
濾波器參考訊號
普通模式
根據中斷自動設定
高通截止頻率hz
hpcf<3:0>
odr=100hz
odr=200hz
odr=400hz
odr=800hz
0.50.2
0.50.1
0.20.5
0.05
0.10.2
0.50.02
0.05
0.10.2
0.01
0.02
0.05
0.122h):
中斷使能
i1_int1
i1_boot
h_lactive
pp_od
i2_drdy
i2_wtm
i2_orun
i2_empty
i1_int1
int1腳中斷使能(0:
disable,1
:enable
)預設0
i1_boot
int1腳引導狀態可用(0:
disable,1
:enable
)預設0
h_lactive
int1腳中斷啟用配置(
0:高,
1:低)預設0
pp_od
push- pull / open drain. (0: push- pull; 1: open drain)預設0
i2_drdy
drdy/int2資料準備
(0: disable; 1: enable)預設0
i2_wtm
drdy/int2的
fifo watermark
中斷(0: disable; 1: enable
)預設0
i2_orun
drdy/int2的
fifo
溢位中斷
(0: disable; 1: enable)預設0
i2_empty
drdy/int2的
fifo
空中斷(0: disable; 1: enable)
預設0
23h):
選擇量程
bdublefs1
fs0st1
st0sim
bdu資料塊更新.(0
:持續更新,
1:輸出暫存器在
msb和
lsb讀時才更新)預設為0
ble大/
小尾端資料選擇(
0:資料
lsb在地位位址,
1:資料
lsb在高位位址)預設0
fs1-fs0
滿量程選擇(00
:250dps
;01:500dps
;10:2000dps
;11:2000dps
)(預設00)
st1-st0
自檢使能(00
:普通模式;
01:self test 0 (+);10:--
;11:self test 1 (-))
simspi序列介面模式選擇(
0:四線介面;
1:三線介面)
24h):fifo
使能,高通濾波使能
boot
fifo_en
hpen
int1_sel1
int1_sel0
out_sel1
out_sel0
boot
重啟記憶體內容(0:
普通模式
; 1:
重啟記憶體內容)預設0
fifo_en
fifo(
0: fifo disable; 1: fifo enable
)預設0
hpen
高通濾波器使能(0: hpf disabled; 1: hpf enabled)預設0
int1_sel1- int1_sel0
int1選擇配置
,預設0
out_sel1- out_sel0
外部選擇配置,預設0
27h):
狀態暫存器,資料就緒可讀
zyxor
zoryor
xorzxyda
zdayda
xda相關配置
zyxor
x,y,z軸資料溢位(
0:沒有溢位
1:在讀之前,新資料已經將先前的資料覆蓋)預設0
zorz軸資料溢位(
0:沒有溢位
1:在讀之前,新資料已經將先前的資料覆蓋)預設0
yory軸資料溢位(
0:沒有溢位
1:在讀之前,新資料已經將先前的資料覆蓋)預設0
xorx軸資料溢位(
0:沒有溢位
1:在讀之前,新資料已經將先前的資料覆蓋)預設0
zyxda
x,y,z軸新資料(
0:沒有獲取新資料
1:獲取新資料)預設0
zdaz軸新資料(
0:沒有獲取新資料
1:獲取新資料)預設0
yday軸新資料(
0:沒有獲取新資料
1:獲取新資料)預設0
xdax軸新資料(
0:沒有獲取新資料
1:獲取新資料)預設0
2、資料暫存器(共
6個,每個軸的角速度由兩個位元組組成,分成高位和低位,資料以二進位制補碼形式儲存): 低位
高位 低位
高位 低位
高位
陀螺儀的學習
從陀螺儀得到x y z三個角速度後就需要通過積分來得到角度,事實上,經過簡單的積分是得不到正確的角度的,更得不到尤拉角,在這裡說一下通過的runge kunta更新四元數,從而對角速度積分得到角度的過程。四元數能到快速的發展,得益於飛行器控制與導航的發展,要求更合理的描述剛體空間的運動,以便於計算機...
iOS學習筆記34 加速計和陀螺儀
我們知道有一些ios的應用,會有一些特殊的要求,比如 電子羅盤指南針之類的應用 讓我們知道方向。運動型別軟體 讓我們知道我們跑步多少公里。社交軟體中的搖一搖功能。遊戲中扮演角色類中根據裝置的晃動等進行操作。其實,他們多半是使用了ios中的乙個核心運動框架coremotion.framework 感測...
iOS學習筆記34 加速計和陀螺儀
我們知道有一些ios的應用,會有一些特殊的要求,比如 電子羅盤指南針之類的應用 讓我們知道方向。運動型別軟體 讓我們知道我們跑步多少公里。社交軟體中的搖一搖功能。遊戲中扮演角色類中根據裝置的晃動等進行操作。其實,他們多半是使用了ios中的乙個核心運動框架coremotion.framework 感測...