基于多MEMS傳感器的姿態(tài)測量系統(tǒng)
2.3 加速度計、電子羅盤與I2C接口
MC9S08QE8內(nèi)帶的高速I2C模塊擁有多主機(jī)操作、可編程從機(jī)地址、中斷驅(qū)動的逐字節(jié)數(shù)據(jù)發(fā)送、支持廣播模式和10位尋址等特點,總線在最大負(fù)荷下可達(dá)到100kbps的速度。系統(tǒng)中,加速度計、電子羅盤芯片與MC9S08QE8 I2C模塊的接口如圖4所示。圖中ADXL345的CS引腳用來控制選擇I2C還是SPI通信協(xié)議,電平為高表示采用I2C協(xié)議,而SDA和SCL引腳分別連接到MC9S08QE8的I2C總線引腳上。電子羅盤HMC5843支持雙電壓工作,其中引腳VDD表示內(nèi)核電壓,引腳VDDIO表示外部I/O電壓,本系統(tǒng)中采用單電壓模式,即內(nèi)核電壓與外部I/O電壓相同。
3 軟件設(shè)計與測試
系統(tǒng)的軟件設(shè)計是整個系統(tǒng)的重要組成部分。依據(jù)上述硬件電路的設(shè)計原理與功能要求,軟件中首先要完成MC9S08QE8的初始化,對各種MEMS傳感器的工作模式進(jìn)行設(shè)定;然后獲取三軸陀螺儀、加速度計、電子羅盤的實時信號,并根據(jù)姿態(tài)計算算法計算姿態(tài)角,最終把姿態(tài)角信息通過串口傳送到上位機(jī)中進(jìn)行測試與演示,嵌入式姿態(tài)測量系統(tǒng)軟件流程如圖5所示。
3.1 MC9S08QE8的初始化
MC9S08QE8的初始化函數(shù)主要實現(xiàn)對系統(tǒng)時鐘、端口及各個使用的功能模塊進(jìn)行初始化,如ADC模塊、SCI模塊、I2C模塊。初始化函數(shù)Sys_init_fun(void)如下:
3.2 傳感器工作模式的設(shè)定
各種MEMS傳感器工作模式的設(shè)定中,陀螺儀涉及的均為模擬信號,不用對其具體工作模式進(jìn)行設(shè)定。加速度計ADXL345豐富的功能是通過配置對應(yīng)的寄存器來實現(xiàn)的,通過對應(yīng)的寄存器可以選擇數(shù)據(jù)格式、FIFO工作模式、數(shù)字通信模式、節(jié)電模式、中斷使能以及修正各軸偏差等。POWER_CTL寄存器用來設(shè)定供電模式,與BW_RATE寄存器配合,可設(shè)定數(shù)據(jù)傳輸速率,如果要進(jìn)一步降低功耗,可將BW_RATE寄存器中的LOW_POWER位置位,進(jìn)入低功耗模式。而DATA_FORMAT寄存器用來設(shè)定數(shù)據(jù)格式與加速度計的量程,F(xiàn)IFO_CTL寄存器用來設(shè)置緩存器具體的工作模式,如Bypass、FIFO、Stream、Trigger。最后OFSX、OFSY、OFSZ三個用來存放初始化時標(biāo)定的X、Y、Z軸的偏移量,以便對數(shù)據(jù)進(jìn)行修正。
電子羅盤HMC5843配置相對簡單,主要有3個寄存器,通過配置寄存器A可以設(shè)定數(shù)據(jù)傳輸速率和測量模式,寄存器B用來設(shè)置設(shè)備的增益大小,而通過模式寄存器用來設(shè)置設(shè)備的工作模式。
3.3 姿態(tài)計算
典型的姿態(tài)解算方法有方向余弦矩陣求解法、四元數(shù)法、旋轉(zhuǎn)矢量法等,本系統(tǒng)采用William Premerlani andPaul Bizard的DCM算法,DCM算法框圖如圖6所示。三軸陀螺儀的輸入信號通過運動學(xué)方程計算出方向余弦矩陣,三軸加速度計信號與三軸電子羅盤信號結(jié)合PI反饋控制對陀螺儀信號進(jìn)行修正。
其中算法由kinematics_and_normalization(t_vector*gyro,t_matrix*dcm)函數(shù)實現(xiàn):
上述計算得到的實時姿態(tài)角數(shù)據(jù)通過串口傳送到上位機(jī),上位機(jī)中通過編寫的python演示程序?qū)ο挛粰C(jī)姿態(tài)測量模塊的運動姿態(tài)進(jìn)行跟蹤與顯示,演示效果如圖7所示。每幅圖中包含3個部分:第1部分(左上角)中紅、綠、藍(lán)3種指針指向分別代表橫滾角(roll)、俯仰角(pitch)與航向角(yaw)的大小,第2部分(左下角)顯示模塊實時運動姿態(tài),第3部分(右邊)用于顯示姿態(tài)角信息。左圖為物體靜止不動下的演示效果,右圖表示在運動過程中物體的姿態(tài)運動效果,通過對比與分析2個圖及各圖對應(yīng)3部分的效果,可以說明本設(shè)計達(dá)到了良好的效果,能比較正確地測量物體的姿態(tài)信息。
結(jié)語
當(dāng)前,各種消費電子設(shè)備內(nèi)部一般含有三軸加速度計和電子羅盤,如智能手機(jī)、平板電腦等,但加速度計動態(tài)性能相比陀螺儀遜色很多,而陀螺儀的增加可以提升系統(tǒng)整體的動態(tài)與靜態(tài)性能。本文設(shè)計的嵌入式姿態(tài)測量系統(tǒng),采用多MEMS傳感器組合方式,拓展了MEMS傳感器的應(yīng)用范圍,也延伸了姿態(tài)測量系統(tǒng)的應(yīng)用領(lǐng)域。實驗演示表明系統(tǒng)性能和使用性都比較好,可以應(yīng)用于消費電子與一般工業(yè)的姿態(tài)測量與物體穩(wěn)定控制的應(yīng)用中。
評論