色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

聚豐項(xiàng)目 > 基于RT-Thread的GY-91開發(fā)

基于RT-Thread的GY-91開發(fā)

隨著物聯(lián)網(wǎng)應(yīng)用越來越廣泛,涌現(xiàn)各種各樣的傳感器,如溫度、氣壓、重力、陀螺儀、光照傳感器等等,這類傳感器接口形式、控制方式、數(shù)據(jù)精度,因?yàn)椴煌瑥S商而存在一定差異。另一方面,用戶在實(shí)時調(diào)整傳感器功耗、靈敏度、數(shù)據(jù)速率等會因?yàn)閭鞲衅鞑町悓?dǎo)致大量重復(fù)編碼工作,降低開發(fā)效率。因此將傳感器進(jìn)行集成化不僅會節(jié)省硬件電路的需求,減少了開發(fā)人員的工作難度。本項(xiàng)目則是進(jìn)行GY-91的傳感器開發(fā),它集成了三軸陀螺儀+三軸加速度+三軸磁場+氣壓,不僅可以測量各個軸的角度,還可以測量外界環(huán)境的溫度、氣壓,從而彌補(bǔ)因環(huán)境產(chǎn)生的的誤差。此外,該傳感器模塊采用極其緊湊的封裝。得益于小尺寸和低功耗特性,這種器件可應(yīng)用于多個場景。例如:GPS的導(dǎo)航、室內(nèi)導(dǎo)航、戶外步態(tài)分析等等。最后通過實(shí)驗(yàn),成功讀取到9軸數(shù)據(jù)和大氣壓以及溫度,并通過卡爾曼濾波解析出俯仰角度。

999哲 999哲

分享
0 喜歡這個項(xiàng)目
團(tuán)隊介紹

999哲 999哲

團(tuán)隊成員

張銘哲 學(xué)生

分享
項(xiàng)目簡介
隨著物聯(lián)網(wǎng)應(yīng)用越來越廣泛,涌現(xiàn)各種各樣的傳感器,如溫度、氣壓、重力、陀螺儀、光照傳感器等等,這類傳感器接口形式、控制方式、數(shù)據(jù)精度,因?yàn)椴煌瑥S商而存在一定差異。另一方面,用戶在實(shí)時調(diào)整傳感器功耗、靈敏度、數(shù)據(jù)速率等會因?yàn)閭鞲衅鞑町悓?dǎo)致大量重復(fù)編碼工作,降低開發(fā)效率。因此將傳感器進(jìn)行集成化不僅會節(jié)省硬件電路的需求,減少了開發(fā)人員的工作難度。本項(xiàng)目則是進(jìn)行GY-91的傳感器開發(fā),它集成了三軸陀螺儀+三軸加速度+三軸磁場+氣壓,不僅可以測量各個軸的角度,還可以測量外界環(huán)境的溫度、氣壓,從而彌補(bǔ)因環(huán)境產(chǎn)生的的誤差。此外,該傳感器模塊采用極其緊湊的封裝。得益于小尺寸和低功耗特性,這種器件可應(yīng)用于多個場景。例如:GPS的導(dǎo)航、室內(nèi)導(dǎo)航、戶外步態(tài)分析等等。最后通過實(shí)驗(yàn),成功讀取到9軸數(shù)據(jù)和大氣壓以及溫度,并通過卡爾曼濾波解析出俯仰角度。
硬件說明

本項(xiàng)目核心模塊時GY-91,它是由BMP280和MPU9250集成而來。其中BMP280 是博世公司開發(fā)的一款環(huán)境傳感器,支持氣壓和溫度測量。bmp180是一款上市比較久的傳感器,很多功能并未支持,如電源模式、數(shù)據(jù)輸出速率等不支持。

MPU9250可以通過集成電路總線接口和單片機(jī)進(jìn)行數(shù)據(jù)交互,傳輸速率可達(dá) 400 kHz /s。陀螺儀的角速度測量范圍最高達(dá)±2000(° /s),具有良好的動態(tài)響應(yīng)特性。加速度計的測量范圍最大為±16g( g 為重力加速度),靜態(tài)測量精度高。磁力計采用高靈度霍爾型傳感器進(jìn)行數(shù)據(jù)采集,磁感應(yīng)強(qiáng)度測量范圍為±4800μT,可用于對偏航角的輔助測量

兩種傳感器都可以使用IIC進(jìn)行驅(qū)動,按照標(biāo)準(zhǔn)的IIC協(xié)議進(jìn)行驅(qū)動即可。


RT-Thread使用情況概述:

本項(xiàng)目使用到了非常多方面的知識,其中包含但不僅限于RT-Thread操作系統(tǒng),sensor框架,RT-Thread-studio,硬件選型,,TFT屏幕的驅(qū)動原理,GY-91的驅(qū)動


內(nèi)核部分:主要使用了多線程

組件部分:使用了Sensor

軟件包:主要使用了sensor框架下的BMP280和MPU9250軟件包

設(shè)備驅(qū)動:GPIO/II/SP/UART/MSH等

系統(tǒng)框圖如下所示:

 

硬件.png


軟件說明

總體方案邏輯明確,通過開啟傳感器線程進(jìn)行20hz頻率的數(shù)據(jù)采集,通過主函數(shù)來不斷刷新傳感器采集的數(shù)據(jù)以供顯示,其中再開發(fā)過程中用到了UART1和MSH指令進(jìn)行調(diào)試。使用組件包I2C可以快速的配置所需要的I2C引腳號以及初始化,給開發(fā)人員帶來了極大的便利。

流程圖如下所示:

軟件.png

主要代碼如下:

    while(1)

    {

 

        mpu6xxx_get_gyro(i2c_bus, &gyro);

        mpu6xxx_get_accel(i2c_bus, &accel);

        mpu6xxx_get_mag(i2c_bus,&magn);

 

        rt_device_read(baro_dev, 0, &baro_data, 1);

        rt_device_read(temp_dev, 0, &temp_data, 1);

 

        Pitch = atan2(accel.x,accel.z)*180/PI;

        gyro.y = gyro.y/16.4;

        Pitch = Kalman_Filter(Pitch ,gyro.y);

 

}

 

 

float Kalman_Filter(float newAngle, float newGyro)//angleAx 和 gyroGy

{

                //1 Update xhat

        gyro_Ka = newGyro - bias;

        angle +=  gyro_Ka*dt;

 

        //2 Update estimation error covariance

                P[0][0] += dt * (dt*P[1][1] - P[0][1] - P[1][0] + Q_angle);

                P[0][1] -= dt * P[1][1];

                P[1][0] -= dt * P[1][1];

                P[1][1] += Q_bias * dt;

 

        //3 Calculate Kalman gain - Compute the Kalman gain

        float S = P[0][0] + R_measure; // Estimate error

                float K[2]; // Kalman gain - This is a 2x1 vector

                K[0] = P[0][0] / S;

                K[1] = P[1][0] / S;

 

                // Calculate angle and bias

                float y = newAngle - angle;

 

                angle += K[0] * y;

                bias += K[1] * y;

 

                // Calculate estimation error covariance - Update the error covariance

                /* Step 7 */

                float P00_temp = P[0][0];

                float P01_temp = P[0][1];

 

                P[0][0] -= K[0] * P00_temp;

                P[0][1] -= K[0] * P01_temp;

                P[1][0] -= K[1] * P00_temp;

                P[1][1] -= K[1] * P01_temp;

 

       return angle;

}

代碼地址:https://gitee.com/zhangzhe-2021/rt-thread

演示效果


解釋.png


正因?yàn)檫@個比賽,使我從一開始的對RT-Thread一無所知,慢慢的喜歡上它。在完成項(xiàng)目的過程中,學(xué)習(xí)到了很多的關(guān)于RT-Thread的知識,再次鍛煉了自己的動手實(shí)踐能力,在比賽中和志同道合的朋友相互交流,相互請教,相互學(xué)習(xí)是一件非常快樂的事情。非常感謝各位金主提供的這次機(jī)會,也非常感謝幕后每位工作人員的付出,耐心的幫助我們解答問題!


評論區(qū)(1 )
  • dianzi_0101: 為老哥點(diǎn)贊

    回復(fù)

主站蜘蛛池模板: 动漫美女被h动态图| 久久精品男人影院| 强奷乱码欧妇女中文字幕熟女| av av在线| 视频成人永久免费看| 国产亚洲精品久久精品6| 亚洲伊人色综合久久天天伊人| 快播在线电影网站| 啊灬啊别停灬用力啊在线观看视频| 色婷婷99综合久久久精品| 韩国演艺圈悲惨在线| 91香蕉福利一区二区三区| 色久久一个亚洲综合网| 黄色a一级视频| caoporn超碰在线| 亚洲成人中文| 欧美色图天堂网| 果冻传媒在线看免费高清| 99E久热只有精品8在线直播| 无码AV毛片色欲欧洲美洲| 老色哥网站| 国产成人在线视频播放| 伊人久久电影网| 乳巨揉みま痴汉电车中文字幕动漫| 韩国和日本免费不卡在线| G0GO人体大尺香蕉| 亚洲精品久久无码AV片银杏| 年轻的女教师2017韩国在线看| 国产免费网站看v片在线| 97在线播放视频| 亚洲视频黄| 色偷偷超碰97人人澡人人| 麻豆E奶女教师国产精品| 国产免费午夜高清| www黄色大片| 在线日本高清日本免费| 无人区在线日本高清免费| 欧美69xxx| 久久精品中文騷妇女内射| 国产精品久久久久久精品...| 99精品在线观看|