久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12065|回復: 4
收起左側

ADXL345+ITG3205引腳圖與電路原理圖等資料 九軸傳感器程序與芯片數據手冊GY-85

[復制鏈接]
ID:254238 發表于 2017-11-27 16:37 | 顯示全部樓層 |閱讀模式
GY-85九軸傳感器資料
0.png 0.png

模塊的原理圖:
0.png

ADXL345是一款小而薄的超低功耗3軸加速度計,分辨率高(13位),測量范圍達±  16g。數字輸出數據為16位二進制補碼格式,可通過SPI(3線或4線)或I2C數字接口訪問。
ADXL345非常適合移動設備應用。它可以在傾斜檢測應用中測量靜態重力加速度,還可以測量運動或沖擊導致的動態加速度。其高分辨率(3.9mg/LSB),能夠測量不到1.0°的傾斜角度變化。
該器件提供多種特殊檢測功能。活動和非活動檢測功能通過比較任意軸上的加速度與用戶設置的閾值來檢測有無運動發生。敲擊檢測功能可以檢測任意方向的單振和雙振動作。自由落體檢測功能可以檢測器件是否正在掉落。這些功能可以獨立映射到兩個中斷輸出引腳中的一個。正在申請專利的集成式存儲器管理系統采用一個32級先進先出(FIFO)緩沖器,可用于存儲數據,從而將主機處理器負荷降至最低,并降低整體系統功耗。

ADXL345引腳圖與中文資料PDF:
0.png

HMC5883L中文規格書.pdf:
0.png

ITG3205引腳圖:
0.png

ITG3205應用電路:
0.png

HMC5883L資料:


單片機源程序如下:
  1. #include "IMU.h"
  2. #include "ADXL345.h"
  3. #include "ITG3205.h"
  4. #include "arm_math.h"
  5. #include <math.h>

  6. struct IMU_Data MyIMU={0,0,0};

  7. float ADXL_X=0,ADXL_Y=0,ADXL_Z=0;
  8. float ITG_X=0,ITG_Y=0,ITG_Z=0;
  9. short GetX,GetY,GetZ;

  10. void TIM4_IRQHandler(void)
  11. {
  12.         if(TIM_GetITStatus(TIM4,TIM_IT_Update)==SET)
  13.         {
  14.                 TIM_ClearFlag(TIM4,TIM_FLAG_Update);
  15.                 IMU_Update();
  16.         }
  17. }

  18. ////////////////////////////////////////////////////////////////////////////////
  19. #define Kp 10.0f                        // proportional gain governs rate of convergence to accelerometer/magnetometer
  20. #define Ki 0.008f                          // integral gain governs rate of convergence of gyroscope biases
  21. #define halfT 0.0025f                   // half the sample period采樣周期的一半

  22. float q0 = 1, q1 = 0, q2 = 0, q3 = 0;    // quaternion elements representing the estimated orientation
  23. float exInt = 0, eyInt = 0, ezInt = 0;    // scaled integral error
  24. void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az)
  25. {
  26.         float norm;
  27.         float vx, vy, vz;// wx, wy, wz;
  28.         float ex, ey, ez;

  29.         float q0q0 = q0*q0;
  30.         float q0q1 = q0*q1;
  31.         float q0q2 = q0*q2;
  32. //  float q0q3 = q0*q3;
  33.         float q1q1 = q1*q1;
  34. //  float q1q2 = q1*q2;
  35.         float q1q3 = q1*q3;
  36.         float q2q2 = q2*q2;
  37.         float q2q3 = q2*q3;
  38.         float q3q3 = q3*q3;

  39.         if(ax*ay*az==0)
  40.                 return;

  41.         norm = __sqrtf(ax*ax + ay*ay + az*az);//acc數據歸一化
  42.         ax = ax /norm;
  43.         ay = ay / norm;
  44.         az = az / norm;

  45.         // estimated direction of gravity and flux (v and w)              估計重力方向和流量/變遷
  46.         vx = 2*(q1q3 - q0q2);//四元素中xyz的表示
  47.         vy = 2*(q0q1 + q2q3);
  48.         vz = q0q0 - q1q1 - q2q2 + q3q3 ;

  49.         // error is sum of cross product between reference direction of fields and direction measured by sensors
  50.         ex = (ay*vz - az*vy) ;//向量外積在相減得到差分就是誤差
  51.         ey = (az*vx - ax*vz) ;
  52.         ez = (ax*vy - ay*vx) ;

  53.         exInt = exInt + ex * Ki;//對誤差進行積分
  54.         eyInt = eyInt + ey * Ki;
  55.         ezInt = ezInt + ez * Ki;

  56.         // adjusted gyroscope measurements
  57.         gx = gx + Kp*ex + exInt;//將誤差PI后補償到陀螺儀,即補償零點漂移
  58.         gy = gy + Kp*ey + eyInt;
  59.         gz = gz + Kp*ez + ezInt;//這里的gz由于沒有觀測者進行矯正會產生漂移,表現出來的就是積分自增或自減

  60.         // integrate quaternion rate and normalise//四元素的微分方程
  61.         q0 = q0 + (-q1*gx - q2*gy - q3*gz)*halfT;
  62.         q1 = q1 + (q0*gx + q2*gz - q3*gy)*halfT;
  63.         q2 = q2 + (q0*gy - q1*gz + q3*gx)*halfT;
  64.         q3 = q3 + (q0*gz + q1*gy - q2*gx)*halfT;

  65.         // normalise quaternion
  66.         norm = __sqrtf(q0*q0 + q1*q1 + q2*q2 + q3*q3);
  67.         q0 = q0 / norm;
  68.         q1 = q1 / norm;
  69.         q2 = q2 / norm;
  70.         q3 = q3 / norm;

  71.         MyIMU.Yaw = atan2(2 * q1 * q2 + 2 * q0 * q3, -2 * q2*q2 - 2 * q3* q3 + 1)* 57.3; // yaw
  72.         MyIMU.Pitch  = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; // pitch
  73.         MyIMU.Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // roll
  74.         
  75.         /*if(GYRO_I.Z>=360)GYRO_I.Z=0;
  76.         Q_ANGLE.Z = GYRO_I.Z;*/
  77. }

  78. //#define NUMOFALL 8

  79. //short ADXL_X_Buf[NUMOFALL];
  80. //short ADXL_Y_Buf[NUMOFALL];
  81. //short ADXL_Z_Buf[NUMOFALL];
  82. //int ADXL_SumX=0,ADXL_SumY=0,ADXL_SumZ=0;
  83. //short ADXL_CurNum=0;
  84. void IMU_Update(void)
  85. {
  86.         ITG3205_ReadXYZ(&GetX,&GetY,&GetZ);//-27 13 5
  87.         GetX-=-27;GetY-=13;GetZ-=5;
  88.         ITG_X = (float)GetX/14.375/57.325;//14.375是轉換為度每秒(來自與手冊資料)  57.325是轉換為弧度每秒(來源于180/π)
  89.         ITG_Y = (float)GetY/14.375/57.325;
  90.         ITG_Z = (float)GetZ/14.375/57.325;
  91.         
  92.         ADXL345_ReadXYZ(&GetX,&GetY,&GetZ);
  93.         
  94. //        ADXL_SumX-=ADXL_X_Buf[ADXL_CurNum];
  95. //        ADXL_SumY-=ADXL_Y_Buf[ADXL_CurNum];
  96. //        ADXL_SumZ-=ADXL_Z_Buf[ADXL_CurNum];
  97. //        
  98. ……………………

  99. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
GY-85發送資料.rar (12.95 MB, 下載次數: 72)
回復

使用道具 舉報

ID:306536 發表于 2018-4-15 04:12 | 顯示全部樓層
好資料!學習學習!!!
回復

使用道具 舉報

ID:88919 發表于 2018-10-8 14:56 | 顯示全部樓層
學習學習
回復

使用道具 舉報

ID:400671 發表于 2019-7-13 14:15 | 顯示全部樓層
好資料!學習學習!!!
回復

使用道具 舉報

ID:314614 發表于 2020-2-27 18:17 | 顯示全部樓層
好資料,多謝樓主!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品毛片视频 | 综合色播| 久久99精品久久 | 国产91九色 | 久久网一区二区三区 | 欧美精品第三页 | 一区二区三区小视频 | 日本亚洲一区 | 最新国产视频 | 亚洲国产精品成人无久久精品 | 爱爱视频在线观看 | 亚洲免费一 | 欧洲成人免费视频 | 成人精品久久久 | 波多野结衣在线观看一区二区三区 | 青青久草 | 中文av电影 | 亚洲综合无码一区二区 | 久久国产欧美日韩精品 | 久久五月婷 | 欧美日韩国产精品一区二区 | 91影院在线观看 | 嫩草视频免费 | 日本午夜在线视频 | 伊人电影院av | 中文字幕一区二区三区精彩视频 | 久久国品片| 国产激情在线看 | 国产欧美日韩综合精品一 | 日本免费一区二区三区视频 | 亚洲精品一区二区三区蜜桃久 | 91精品国产一区二区三区 | 在线免费观看黄色av | 亚洲综合色站 | 激情91| 日韩一级欧美一级 | 中文无码日韩欧 | 国产欧美日韩一区 | 久久33| 伦理二区 | 成人亚洲 |