第二部分 陀螺儀
對(duì)于陀螺儀我們將不會(huì)像加速度計(jì)一樣介紹它的等價(jià)盒子模型,而是直接跳到加速度計(jì)的第二個(gè)模型践啄,通過(guò)這個(gè)模型我們會(huì)向大家介紹陀螺儀是怎么工作的蝎困。
陀螺儀的每個(gè)通道檢測(cè)一個(gè)軸的旋轉(zhuǎn)。例如,一個(gè)2軸陀螺儀檢測(cè)繞X和Y軸的旋轉(zhuǎn)碱妆。為了用數(shù)字來(lái)表達(dá)這些旋轉(zhuǎn),我們先引進(jìn)一些符號(hào)。首先我們定義: Rxz – 慣性力矢量R在XZ平面上的投影 Ryz – 慣性力矢量R在YZ平面的上投影
在由Rxz和Rz組成的直角三角形中抵屿,運(yùn)用勾股定理可得: Rxz^2 = Rx^2 + Rz^2 ,同樣: Ryz^2 = Ry^2 + Rz^2 同時(shí)注意:
R^2 = Rxz^2 + Ry^2 捅位,這個(gè)公式可以
公式1和上面的公式推導(dǎo)出來(lái)轧葛,也可由R和Ryz所組成的直角三角形推導(dǎo)出來(lái)
R ^ 2 = Ryz ^ 2 + RX ^ 2
在這篇文章中我們不會(huì)用到這些公式,但知道模型中的那些數(shù)值間的關(guān)系有助于理解艇搀。 相反尿扯,我們按如下方法定義Z軸和Rxz、Ryz向量所成的夾角:
AXZ - Rxz(矢量R在XZ平面的投影)和Z軸所成的夾角 AYZ - Ryz(矢量R在YZ平面的投影)和Z軸所成夾角
現(xiàn)在我們離陀螺儀要測(cè)量的東西又近了一步焰雕。
陀螺儀測(cè)量上面定義的角度的變化率衷笋。換句話(huà)說(shuō),它會(huì)輸出一個(gè)與上面這些角度變化率線(xiàn)性相關(guān)的值淀散。為了解釋這一點(diǎn)右莱,我們先假設(shè)在t0時(shí)刻蚜锨,我們已測(cè)得繞Y軸旋轉(zhuǎn)的角度(也就是Axz),定義為Axz0慢蜓,之后在t1時(shí)刻我們?cè)俅螠y(cè)量這個(gè)角度亚再,得到Axz1。角度變化率按下面方法計(jì)算:
RateAxz = (Axz1 – Axz0) / (t1 – t0).
如果用度來(lái)表示角度晨抡,秒來(lái)表示時(shí)間氛悬,那這個(gè)值的單位就是 度/秒。這就是陀螺儀檢測(cè)的東西耘柱。
在實(shí)際運(yùn)用中如捅,陀螺儀一般都不會(huì)直接給你一個(gè)單位為度/秒的值(除非它是個(gè)特殊的數(shù)字陀螺儀)。就像加速度計(jì)一樣调煎,你會(huì)得到一個(gè)ADC值并且要用類(lèi)似公式2的式子將其轉(zhuǎn)換成單位為 度/秒的值镜遣。
讓我們來(lái)介紹陀螺儀輸出值轉(zhuǎn)換中的ADC部分(假設(shè)使用10位ADC模塊,如果是8位ADC士袄,用1023代替255悲关,如果是12為ADC用4095代替1023)。
RateAxz = (AdcGyroXZ * Vref / 1023 – VzeroRate) / Sensitivity 公式3
RateAyz = (AdcGyroYZ * Vref / 1023 – VzeroRate) / Sensitivity
AdcGyroXZ娄柳,AdcGyroYZ - 這兩個(gè)值由ADC讀取寓辱,它們分別代表矢量R的投影在XZ和YZ平面內(nèi)里的轉(zhuǎn)角,也可等價(jià)的說(shuō)赤拒,旋轉(zhuǎn)可分解為單獨(dú)繞Y和X軸的運(yùn)動(dòng)秫筏。 Vref – ADC的參考電壓,上例中我們使用3.3V VzeroRate – 是零變化率電壓挎挖,換句話(huà)說(shuō)它是陀螺儀不受任何轉(zhuǎn)動(dòng)影響時(shí)的輸出值这敬,對(duì)Acc Gyro板來(lái)說(shuō),可以認(rèn)為是1.23V(此值通忱哒В可以在說(shuō)明書(shū)中找到——但千萬(wàn)別相信這個(gè)值鹅颊,因?yàn)榇蠖鄶?shù)的陀螺儀在焊接后會(huì)有一定的偏差敷存,所以可以使用電壓計(jì)測(cè)量每個(gè)通道的輸出值墓造,通常這個(gè)值在焊接后就不會(huì)改變,如果有跳動(dòng)锚烦,在設(shè)備使用前寫(xiě)一個(gè)校準(zhǔn)程序?qū)ζ溥M(jìn)行測(cè)量觅闽,用戶(hù)應(yīng)當(dāng)在設(shè)備啟動(dòng)的時(shí)候保持設(shè)備靜止以進(jìn)行校準(zhǔn))。
Sensitivity –陀螺儀的靈敏度涮俄,單位mV/(deg/s)蛉拙,通常寫(xiě)作mV/deg/s,它的意思就是如果旋轉(zhuǎn)速度增加1°/s,陀螺儀的輸出就會(huì)增加多少mV。Acc_Gyro板的靈敏度值是2mV/deg/s或0.002V/deg/s
讓我們舉個(gè)例子彻亲,假設(shè)我們的ADC模塊返回以下值:
AdcGyroXZ = 571
AdcGyroXZ = 323
用上面的公式孕锄,在代入Acc Gyro板的參數(shù)吮廉,可得:
RateAxz = (571 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s) =~ 306 deg/s
RateAyz = (323 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s) =~ -94 deg/s
換句話(huà)說(shuō)設(shè)備繞Y軸(也可以說(shuō)在XZ平面內(nèi))以306°/s速度和繞X軸(或者說(shuō)YZ平面內(nèi))以-94°/s的速度旋轉(zhuǎn)。請(qǐng)注意畸肆,負(fù)號(hào)表示該設(shè)備朝著反方向旋轉(zhuǎn)宦芦。按照慣例,一個(gè)方向的旋轉(zhuǎn)是正值轴脐。一份好的陀螺儀說(shuō)明書(shū)會(huì)告訴你哪個(gè)方向是正的调卑,否則你就要自己測(cè)試出哪個(gè)旋轉(zhuǎn)方向會(huì)使得輸出腳電壓增加。最好使用示波器進(jìn)行測(cè)試大咱,因?yàn)橐坏┠阃V沽诵D(zhuǎn)恬涧,電壓就會(huì)掉回零速率水平。如果你使用的是萬(wàn)用表碴巾,你得保持一定的旋轉(zhuǎn)速度幾秒鐘并同時(shí)比較電壓值和零速率電壓值溯捆。如果值大于零速率電壓值那說(shuō)明這個(gè)旋轉(zhuǎn)方向是正向。