wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6222|回復: 1
打印 上一主題 下一主題
收起左側

STM32F429開發-空間姿態檢測系統

[復制鏈接]
跳轉到指定樓層
樓主
臨近期末,學校剛剛考完試,弄了一個基于STM32F429的姿態檢測系統,也就是俗稱的AHRS,被很多人用來做四軸飛行器的,不過本人對四軸飛行器不是很感興趣,主要用來檢測人體姿態和仿生控制的。采用MPU6050進行數據融合,得到空間姿態信息,從而完成手勢檢測,動作檢測,人體姿態檢測。基于MEMS的三軸陀螺儀,加速度計。目前AHRS內部采用的多傳感器數據融合進行的航姿解算單元為卡爾曼濾波器。
   特點:高精度360 度全方位位置姿態輸出,數據融合算法快速動態響應與長時間穩定性(無漂移,無積累誤差)
   輸出:三維全姿態數據(四元數 / 歐拉角 / 旋轉矩陣/原始數據)三維加速度 / 三維角速度

   不多說了上圖!相關原理請自己谷歌一下

  1. /*-----------------------------------------------------------------------------------
  2.                                                                                                 STM32F429ZI+MPU6050+AHRS
  3.         
  4.         簡介:
  5.         
  6.                         1) 如何計算積分
  7.                          對角速度積分得到角度,但是會累積誤差,dt為積分時間s秒,最好放在中斷運行.中斷每隔
  8.                          dt秒進入一次中斷并進行計算,必須確保在1個中斷周期內能夠完成全部計算.
  9.                         
  10.                          Example:                        
  11.                          Axis.GyroY = getGyroY();                        //獲取Y軸角速度,單位為度
  12.                          Angle += Axis.GyroY * dt;    //離散信號的積分即為求黎曼和.
  13.                
  14.                 2) 互補濾波器
  15.                          原理是取當前傾角和加速度,做差獲得傾角差值并進行放大,然后與陀螺儀角速度
  16.                          疊加后再積分,從而使傾角跟蹤為加速度獲得的角度.
  17.                          2為放大倍數,可調節補償度;0.01為系統周期10ms.
  18.                         
  19.                          Example:                        
  20.                          FilterAngle = FilterAngle + (((Gesture.Angle_FY - FilterAngle)*2 + Axis.GyroY)*0.01);
  21.                
  22.                 3) 卡爾曼濾波器
  23.                          原理請百度
  24.                         
  25.                          Example:                        
  26.                          Kalman_Filter(Gesture.Angle_FY,Axis.GyroY,&FilterAngle);
  27.                         
  28.                 4) AHRS數據融合
  29.                          通過四元數矩陣運算把加速度計和陀螺儀的數據進行融合計算出歐拉角.
  30.                  
  31.         
  32. +------------------------+-----------------------+----------------------------+
  33. +                                               LCD GPIO分配表                                   +
  34. +------------------------+-----------------------+----------------------------+
  35. |  LCD_TFT R2 <-> PC10   |  LCD_TFT G2 <-> PA6   |  LCD_TFT B2 <-> PD6        |
  36. |  LCD_TFT R3 <-> PB0    |  LCD_TFT G3 <-> PG10  |  LCD_TFT B3 <-> PG11       |
  37. |  LCD_TFT R4 <-> PA11   |  LCD_TFT G4 <-> PB10  |  LCD_TFT B4 <-> PG12       |
  38. |  LCD_TFT R5 <-> PA12   |  LCD_TFT G5 <-> PB11  |  LCD_TFT B5 <-> PA3        |
  39. |  LCD_TFT R6 <-> PB1    |  LCD_TFT G6 <-> PC7   |  LCD_TFT B6 <-> PB8        |
  40. |  LCD_TFT R7 <-> PG6    |  LCD_TFT G7 <-> PD3   |  LCD_TFT B7 <-> PB9        |
  41. -------------------------------------------------------------------------------
  42.           |  LCD_TFT HSYNC <-> PC6   | LCDTFT VSYNC <->  PA4   |
  43.           |  LCD_TFT CLK   <-> PG7   | LCD_TFT DE   <->  PF10  |
  44.            -----------------------------------------------------

  45. +-------------------+--------------------+--------------------+--------------------+
  46. +                                               SDRAM GPIO 分配表                                     +
  47. +-------------------+--------------------+--------------------+--------------------+
  48. | PD0  <-> FMC_D2   | PE0  <-> FMC_NBL0  | PF0  <-> FMC_A0    | PG0  <-> FMC_A10   |
  49. | PD1  <-> FMC_D3   | PE1  <-> FMC_NBL1  | PF1  <-> FMC_A1    | PG1  <-> FMC_A11   |
  50. | PD8  <-> FMC_D13  | PE7  <-> FMC_D4    | PF2  <-> FMC_A2    | PG8  <-> FMC_SDCLK |
  51. | PD9  <-> FMC_D14  | PE8  <-> FMC_D5    | PF3  <-> FMC_A3    | PG15 <-> FMC_NCAS  |
  52. | PD10 <-> FMC_D15  | PE9  <-> FMC_D6    | PF4  <-> FMC_A4    |--------------------+
  53. | PD14 <-> FMC_D0   | PE10 <-> FMC_D7    | PF5  <-> FMC_A5    |   
  54. | PD15 <-> FMC_D1   | PE11 <-> FMC_D8    | PF11 <-> FMC_NRAS  |
  55. +-------------------| PE12 <-> FMC_D9    | PF12 <-> FMC_A6    |
  56.                      | PE13 <-> FMC_D10   | PF13 <-> FMC_A7    |   
  57.                      | PE14 <-> FMC_D11   | PF14 <-> FMC_A8    |
  58.                      | PE15 <-> FMC_D12   | PF15 <-> FMC_A9    |
  59. +-------------------+--------------------+--------------------+
  60. | PB5 <-> FMC_SDCKE1|
  61. | PB6 <-> FMC_SDNE1 |
  62. | PC0 <-> FMC_SDNWE |
  63. +-------------------+  
  64.   
  65.         作者: BoX
  66.         版本: V1.0
  67.         平臺: STM32F429I-Discovery Board
  68.         日期: 2014年7月11日
  69. ------------------------------------------------------------------------------------*/
  70. #include "LED.h"
  71. #include "stm32f4_tft.h"
  72. #include "stm32f4_delay.h"
  73. #include "stm32f4_usart1.h"
  74. #include "stm32f4_timer.h"
  75. #include "stm32f4_ahrs.h"
  76. #include "stm32f4_mpu6050.h"
  77. #include "iic_analog.h"
  78. #include "kalman_filter.h"
  79. #include "stm32f4xx.h"
  80. /*------------------------------------------
  81.                                                                 條件編譯
  82.         DATA_TYPE
  83.         0 - 輸出處理后的數據,加速度單位為g,角速度
  84.                   單位為deg/s
  85.         1 - 輸出數據融合后的歐拉角.
  86.         2 - 輸出卡爾曼濾波后的角度.
  87.         
  88.         DATA_DISPLAY
  89.         0 - 數據不顯示在LCD上
  90.         1 - 數據顯示在LCD上
  91. ------------------------------------------*/
  92. #define USAR_DELAY    (800)
  93. #define DATA_TYPE                        (1)
  94. #define DATA_DISPLAY  (1)
  95. /*------------------------------------------
  96.                                                                 全局變量
  97. ------------------------------------------*/
  98. extern MPU6050_AxisTypeDef    Axis;
  99. extern AHRS_EulerAngleTypeDef EulerAngle;

  100. uint8_t LCD_Buffer[240];
  101. /*------------------------------------------
  102.                                                                 主函數
  103. ------------------------------------------*/
  104. int main(void)
  105. {
  106.         DelayInit();
  107.         LED_Init();
  108.         USART1_Config();
  109.         printf(" AHRS OK!");
  110.         MPU6050_Init();
  111.         TIM2_Config(2000,89);  //每2ms溢出中斷為AHRS_Update提供定時
  112.         LCD_Init();
  113.         LCD_LayerInit();
  114.         LTDC_Cmd(ENABLE);
  115.         LCD_SetLayer(LCD_FOREGROUND_LAYER);
  116.         LCD_Clear(LCD_COLOR_BLACK);
  117.         LCD_SetColors(LCD_COLOR_GREEN,LCD_COLOR_BLACK);
  118.         
  119.         while (1)
  120.         {
  121. #if DATA_TYPE         == 0
  122.                 Axis.AccX  = getAccX();
  123.                 Axis.AccY  = getAccY();
  124.                 Axis.AccZ  = getAccZ();
  125.                 Axis.GyroX = getGyroX();
  126.                 Axis.GyroY = getGyroY();
  127.                 Axis.GyroZ = getGyroZ();
  128.                 printf("AX:%3.2f AY:%3.2f AZ:%3.2f GX:%4.0f GY:%4.0f GZ:%4.0f",
  129.                                                                                                                                                                                                                  Axis.AccX,
  130.                                                                                                                                                                                                                  Axis.AccY,
  131.                                                                                                                                                                                                                  Axis.AccZ,
  132.                                                                                                                                                                                                                  Axis.GyroX,
  133.                                                                                                                                                                                                                  Axis.GyroY,
  134.                                                                                                                                                                                                                  Axis.GyroZ);
  135.         #if DATA_DISPLAY == 1               
  136.                 sprintf(LCD_Buffer,"AX:%3.2f AY:%3.2f AZ:%3.2f  ",
  137.                                                                                                                                                                                                                  Axis.AccX,
  138.                                                                                                                                                                                                                  Axis.AccY,
  139.                                                                                                                                                                                                                  Axis.AccZ);
  140.                 LCD_DisplayStringLine(1,LCD_Buffer);
  141.                
  142.                 sprintf(LCD_Buffer,"GX:%4.0f GY:%4.0f GZ:%4.0f  ",
  143.                                                                                                                                                                                                                  Axis.GyroX,
  144.                                                                                                                                                                                                                  Axis.GyroY,
  145.                                                                                                                                                                                                                  Axis.GyroZ);
  146.                 LCD_DisplayStringLine(21,LCD_Buffer);
  147.         #endif
  148.         
  149. #elif DATA_TYPE         == 1
  150.                 printf("Pitch:%3.0f Roll:%3.0f Yaw:%3.0f",
  151.                                                                                                                                                                                                         EulerAngle.Pitch,
  152.                                                                                                                                                                                                         EulerAngle.Roll,
  153.                                                                                                                                                                                                         EulerAngle.Yaw);
  154.         #if DATA_DISPLAY == 1
  155.                 sprintf(LCD_Buffer,"Pitch:%3.0f Roll:%3.0f Yaw:%3.0f  ",
  156.                                                                                                                                                                                                                                         EulerAngle.Pitch,
  157.                                                                                                                                                                                                                                         EulerAngle.Roll,
  158.                                                                                                                                                                                                                                         EulerAngle.Yaw);
  159.                 LCD_DisplayStringLine(1,LCD_Buffer);
  160.         #endif
  161.         
  162. #elif DATA_TYPE         == 2
  163.                 Gesture.Angle_FY = getFuYangAngle();
  164.                 Axis.GyroY       = getGyroY();
  165.                 Kalman_Filter(Gesture.Angle_FY,Axis.GyroY,&FilterAngle);
  166.                 printf("FY1:%3.1f FY2:%3.1f",Gesture.Angle_FY,FilterAngle);
  167.                
  168.         #if DATA_DISPLAY == 1
  169.                 sprintf(LCD_Buffer,"FY1:%3.1f FY2:%3.1f",Gesture.Angle_FY,FilterAngle);
  170.                 LCD_DisplayStringLine(1,LCD_Buffer);
  171.         #endif
  172.         
  173. #endif                        
  174.                 GPIOG->ODR ^= GPIO_Pin_14;
  175.                 delayms(30);
  176.         }
  177. }
復制代碼


空間姿態檢測.zip (611.82 KB, 下載次數: 58)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94995 發表于 2019-4-2 14:28 | 只看該作者
不錯。學學
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
99r国产精品视频| 四虎精品欧美一区二区免费| 国产精品第一页第二页第三页| 欧美疯狂party性派对| 欧美aaa一级片| 国产成人精品免费看视频| 99久久久无码国产精品衣服| 99视频在线免费播放| 高清一区二区三区视频| 美女少妇精品视频| 精品国产制服丝袜高跟| 成人午夜伦理影院| 欧美日韩一区自拍| 亚洲妇女成熟| 激情福利在线| 夜夜操 天天摸| 亚洲精品久久久成人| 91丨九色丨海角社区| 91麻豆精品久久毛片一级| 色一情一区二区| 成人免费网视频| 中文字幕日韩欧美在线 | 韩日精品中文字幕| 日韩欧美在线免费| 国产日韩欧美一区二区三区乱码| 日日欢夜夜爽一区| 日韩在线观看一区二区三区| 天天干在线视频论坛| a4yy在线播放免费观看视频| 国产精品7区| 污污网站免费在线观看| 国产免费一级视频| 中文字幕电影av| 久久亚洲AV成人无码国产野外 | 新天堂中文资源官网在线观看| 亚洲一区二区三区综合| 国产精品亚洲二区在线观看| 俄罗斯精品一区二区三区| 久久天天躁日日躁| 亚洲裸体xxxx| 欧美刺激脚交jootjob| 日韩人体视频一二区| 亚洲视频在线观看三级| 免费看亚洲片| 国产福利资源一区| 大胆国模一区二区三区| 欧美性suv| av日韩国产| 在线电影福利片| 成年人视频在线看| 国产精品秘入口| 嫩草研究院在线观看| 性欧美18+| 欧美h版电影| 米奇777在线影院线| 女色窝人体色77777| 成在线人视频免费视频| 青青青免费视频观看在线| 国产日韩欧美一区二区三区视频| 先锋av资源站| 亚洲在线视频免费| 自拍偷拍国产| 亚洲国产成人影院播放| 在线播放一区二区精品产| 亚洲精品7777| xx00欧美| 成人eeuss影院在线观看| 成人免费黄色网址| 羞羞网站免费观看| 视频一区二区三区国产| 免费看成年人视频| 黄色电影免费在线观看| 天天干天天草| 一本色道久久加勒比88综合| 在线视频99| 小草av在线播放| 极品美乳网红视频免费在线观看 | 国产精品久久久久久久泡妞| 免费看涩涩视频软件| h在线观看网站| 交换国产精品视频一区| 亚洲成人套图| 日本美女高清在线观看免费| 好了av在线| 草草视频在线| 成人网av.com/| 青草久久视频| 亚洲91视频| 久久aⅴ国产紧身牛仔裤| 久久国产精品露脸对白| 波多野结衣中文字幕一区 | 国产日本欧美在线观看| 另类视频在线观看| 51ⅴ精品国产91久久久久久| 国产精品狠色婷| 粉嫩av四季av绯色av第一区| 日本三级中国三级99人妇网站| 在线观看一区欧美| 久久av一区二区| 91最新在线免费观看| 热99精品里视频精品| 国产精品自拍偷拍视频| 久久久久久欧美精品色一二三四| 国产又黄又爽免费视频| 日韩欧美在线免费观看视频| 国产原创剧情av| 一级黄色免费毛片| 91麻豆精品久久毛片一级| 一级特黄免费视频| 亚洲AV第二区国产精品| 99热在线免费观看| 成年人视频在线观看免费| 亚洲精品88| 欧美黑白配在线| 亚洲国产黄色| caoporm超碰国产精品| 亚洲精品伦理在线| 在线观看一区二区精品视频| 亚洲性69xxxbbb| 色系列之999| 国产91在线高潮白浆在线观看| 国产精品成人观看视频免费| 麻豆传媒网站在线观看| 欧美激情视频在线| 91精品久久久久久久久不口人| 日韩av高清| 欧美wwwwwww| 日韩一级片大全| 可以免费观看的毛片| 成年人网站在线免费观看| 黄上黄在线观看| 精品国产黄a∨片高清在线| 手机看片久久| 青青草原综合久久大伊人精品| 色综合色综合| 国产乱对白刺激视频不卡| 亚洲一区二区三区四区在线| 亚洲精品wwwww| 国产精品免费视频xxxx| 黄色片免费在线观看视频| 人妻在线日韩免费视频| 夜夜躁很很躁日日躁麻豆| 黄色网址免费看| 成人a在线视频免费观看| 亚洲精品福利电影| 四季av一区二区三区免费观看| 国产精品一区免费在线观看| 少妇精品久久久一区二区| 美女视频一区免费观看| 自拍偷在线精品自拍偷无码专区| 亚洲国产精品一区二区尤物区| 日韩av在线天堂网| 国产中文字幕亚洲| 日韩免费高清在线| 日本少妇全体裸体洗澡| 欧美精品se| 免费高清完整在线观看| 快播电影网址老女人久久| 午夜精品999| 中文字幕成人av| 亚洲精选一区二区| 2019日本中文字幕| 国内精品二区| 午夜av中文字幕| 欧美人一级淫片a免费播放| 岛国片免费观看| 免费成人动漫| 香蕉成人久久| 欧美日韩国产专区| 57pao成人国产永久免费| 福利在线一区二区| 国产一级做a爰片在线看免费| 国产专区自拍| 国产拍在线视频| 99热这里只有精品8| 97精品电影院| 精品国产不卡一区二区三区| 97欧洲一区二区精品免费| 波多野结衣三级视频| 欧洲猛交xxxx乱大交3| 麻豆视频国产| 日产精品久久久久久久性色| 国产调教精品| 久久一区二区视频| 亚洲石原莉奈一区二区在线观看| 你懂的视频在线一区二区| 亚洲精品视频大全| 综合蜜桃精品| 筱崎爱全乳无删减在线观看| 丝袜脚交一区二区| 欧美一区永久视频免费观看| 国产日韩欧美亚洲一区| 谁有免费的黄色网址| 韩国18福利视频免费观看| 日本三级一区| 久久99精品国产麻豆婷婷 | 成人丝袜高跟foot| 日韩av在线网站| 亚洲午夜精品一区二区三区| 九九九九九九九九| 国产aⅴ爽av久久久久成人| 毛片免费在线观看| 欧美91精品| 欧美视频一区在线| 高清av免费一区中文字幕| 一区二区黄色片| 91视频观看| 精品国产三区在线| 国产偷国产偷亚洲高清人白洁| 欧美成人一区二区三区电影| 毛片av免费在线观看| 99国产揄拍国产精品| 欧美13一16娇小xxxx| 国产欧美日韩综合一区在线播放| 欧美日韩久久一区| 欧美一区二区高清在线观看| 综合五月激情网| 五月精品在线| 欧美极品免费| 99精品久久只有精品| 欧美xxxx做受欧美| 国产永久免费网站| 欧美大交乱xxxx| 日韩成人一区| 中文字幕在线观看一区| 国产91色在线| 国产手机在线观看| 天天爽夜夜爽| 四虎8848精品成人免费网站| 欧美在线观看视频一区二区 | 国产v在线观看| 亚洲精品白浆| 国产不卡视频在线播放| 久久综合久久88| 亚洲欧美天堂在线| 51成人精品网站| 日韩精选在线| 久久久www免费人成精品| 久久男人资源视频| 日日摸日日碰夜夜爽av| 性生活黄色大片| 涩涩涩视频在线观看| 久久伊人中文字幕| 91免费视频国产| 久久综合加勒比| jyzzz在线观看视频| 国产在线精品一区在线观看麻豆| 欧美一级夜夜爽| 国产一区二区三区在线免费| 午夜精品久久久久久久99| 欧美极度另类| 亚洲视频在线一区观看| 国产精品区二区三区日本| 大又大又粗又硬又爽少妇毛片 | 国产精品丝袜白浆摸在线| 92国产精品久久久久首页| 变态另类ts人妖一区二区| 黄网站app在线观看大全免费视频| 亚洲毛片在线| 久久亚洲春色中文字幕| 亚洲熟女乱综合一区二区三区 | 北条麻妃高清一区| 精品一区在线视频| а√天堂官网中文在线| 久久久亚洲国产美女国产盗摄| 国产精品永久在线| 亚欧视频在线观看| 国产伦子伦对白在线播放观看| 国产清纯在线一区二区www| 色综合久久悠悠| 国产精品九九九九九| 一级二级三级在线观看| 国产一区二区三区免费看| 久久免费视频观看| 成年人二级毛片| dj大片免费在线观看| 久久九九久久九九| 久久99精品国产一区二区三区| 国产美女裸体无遮挡免费视频| 欧美在线一级| 欧美日韩综合在线| 国产 porn| 韩国版免费三体| 久久精品国内一区二区三区| 国产精彩精品视频| 6080午夜伦理| 日日夜夜亚洲| 欧美日韩视频在线观看一区二区三区| 国产日韩av网站| jizz日本| 美腿丝袜亚洲综合| 在线播放国产精品| 一级国产黄色片| av在线播放av| 亚洲天堂免费看| 亚洲一卡二卡三卡| 国产在线视频精品视频免费看| 一区二区三区毛片免费| 久久国产精品久久久久| 男人与禽猛交狂配| 在线天堂新版最新版在线8| 亚洲成av人片| 欧美a v在线播放| 九七影院理伦片| 国产成人综合视频| 久久亚洲免费| 四虎成人欧美精品在永久在线| 你懂的国产精品| 91国产视频在线| 国产精华7777777| 精品伊人久久久| 一区二区三区视频免费在线观看| 国产一二三四视频| 台湾佬成人网| 日韩欧美国产一区二区在线播放| 亚洲熟女一区二区| 天堂8中文在线| 在线视频综合导航| 中文字幕在线播放一区二区| 777电影在线观看| 黑人巨大精品欧美一区免费视频| 日本在线观看免费视频| 欧美老tube| 国产精品一区毛片| 成人在线播放av| 亚洲成人在线播放| 鲁大师精品99久久久| 精品亚洲一区二区三区| 日韩在线视频网址| 成年永久一区二区三区免费视频| 亚洲国产视频一区| 五月婷婷六月合| 91看片在线观看| 色婷婷久久综合| 亚洲啪av永久无码精品放毛片| 欧美另类tv| 日韩片之四级片| 日韩精品一区二区三区在线视频| 九色成人搞黄网站| 91国偷自产一区二区使用方法| 激情久久综合网| 羞羞的网站在线观看| 欧美精品色综合| av资源在线免费观看| 日韩成人综合网| 色偷偷亚洲男人天堂| 97人妻精品视频一区| 亚洲精品中文字幕乱码| 成人a视频在线观看| 久热中文字幕精品视频在线| 久久精品国产77777蜜臀| 日韩视频免费观看高清完整版在线观看| 天堂网成人在线| 麻豆理论在线观看| 精品视频在线导航| 欧美一级淫片免费视频黄| 99国产**精品****| 91亚洲国产精品| 青青色青青操| 国产精品毛片高清在线完整版| 性刺激的欧美三级视频| 丁香花在线电影小说观看| 亚洲国产成人精品久久| 天堂中文字幕在线观看| 牛牛国产精品| 精品中文字幕一区| 午夜在线不卡| 一本一本大道香蕉久在线精品 | 国产在线播放观看| 69久久久久| 精品久久久久久最新网址| aaa人片在线| 影音先锋中文字幕一区| 青青草成人激情在线| 情趣视频网站在线免费观看| 色丁香久综合在线久综合在线观看 | 日本一区二区在线播放| 在线观看精品自拍视频| av激情综合网| 中文字幕一区久久| 国产精品久久亚洲不卡| 欧美日韩爱爱视频| 特级xxxxx欧美| 国产免费观看久久| 制服丝袜第一页在线观看| 一区二区三区高清在线观看| 日韩美女中文字幕| 黄色大片在线观看| 欧美日韩免费观看中文| 精品国产视频一区二区三区| 成人亚洲一区二区| 国内视频一区二区| 午夜成人影视| 欧美va日韩va| 国产福利第一页| 成人午夜视频在线观看| 男人午夜视频在线观看| 91成人在线精品视频| 91精品国产自产在线| 成年人视频在线|