极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: eagler8

【Arduino】168种传感器系列实验(152)---GY-25串口倾斜度模块

[复制链接]
 楼主| 发表于 2020-12-10 16:24:48 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 16:29:40 | 显示全部楼层
GY25是一款低成本倾斜模块
工作电压3-5v 功耗小,体积小。其工作原理,是通过陀螺仪与加速度传感器经过数据融合算法最后得到直接的角度数据。此倾斜度模块以串口TTL 电平全双工方式与上位机进行通信。该产品精度高,稳定性高。能够在任意位置得到准确的角度,输出的波特率有9600bps 与115200bps有连续输出与询问输出两种方式,可适应不同的工作环境,与各种的单片机及电脑连接。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 16:41:31 | 显示全部楼层
GY25模块参数
1.工作电压:3~5 V(内部低压差稳压)
2.工作电流:15mA
3.测量范围:-180°~ 180°
4.分辨率:0.01°
5.测量精度:1 °(倾斜度)
6.响应频率:100HZ(115200bps)
7.工作温度:-20°~ 85°
8.使用芯片:MCU+MPU6050
9.产品尺寸:15.5×15.5mm,引脚间距2.54mm
10.通信方式:串口通讯(波特率9600,115200), IIC通信(仅读取原始数据)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 16:44:15 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 16:46:53 | 显示全部楼层
GY25数据读取
1.YAW/OLL/PITCH直接数据:
航向角(YAW  ) ±180°
横滚角(ROLL ) ±180°
俯仰角(PITCH) ±180°( ±90°+±90°)
角度分辨率0.01°
2.原始数据直接数据:
陀螺仪原始数据
加速度原始数据
温度数据
角度数据

GY25注意事项
(1)模块上电自校正,需保持3秒以上静止状态,建议不要用手拿着模块;
(2)角度欧拉角由于万向锁问题,横滚,俯仰在90度时候会有相互影响;
(3)模块右侧的焊接点短接,重启后模块进入 IIC 模式,客户可自行操作传感    器,模块 MCU 不对传感器进行任何操作;
(4)模块I/O是TTL电平,可以直接与单片机串口连接,但不能与电脑九针    串口直接连接;
(5)修改波特率指令
A5  56   修改波特率成为115200
A5   57  修改波特率成为9600

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 17:25:02 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 17:26:17 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 17:27:26 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 17:32:06 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-25 10:53:31 | 显示全部楼层
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百五十二:GY-25 串口直接输出角度数据 倾斜度角度传感器模块 MPU-6050
  4.   使用步骤:
  5.   1.先下载GY25_uart程序至arduino
  6.   2.再接上GY25模块
  7.   3.按复位按键
  8.   4.打开串口,波特率115200
  9.   5、接线
  10.   GY25                arduino uno
  11.   VCC----------------------VCC
  12.   RX-----------------------TX
  13.   TX-----------------------RX
  14.   GND----------------------GND
  15.   实验之一:串口显示动态角度数值
  16. */

  17. #include <Wire.h>
  18. int YPR[3];
  19. unsigned char Re_buf[8], counter = 0;
  20. unsigned char sign = 0;
  21. int led = 13;

  22. //-----------------------------------------------------------
  23. void setup()
  24. {
  25.   Serial.begin(115200);
  26.   delay(2000);
  27.   Serial.write(0XA5);
  28.   Serial.write(0X52);    //初始化GY25,连续输出模式
  29. }
  30. //-------------------------------------------------------------
  31. void loop() {
  32.   if (sign)
  33.   {
  34.     sign = 0;
  35.     if (Re_buf[0] == 0xAA && Re_buf[7] == 0x55)   //检查帧头,帧尾
  36.     {
  37.       YPR[0] = (Re_buf[1] << 8 | Re_buf[2]) / 100; //合成数据,去掉小数点后2位
  38.       YPR[1] = (Re_buf[3] << 8 | Re_buf[4]) / 100;
  39.       YPR[2] = (Re_buf[5] << 8 | Re_buf[6]) / 100;
  40.       Serial.print("YPR:\t");
  41.       Serial.print(YPR[0], DEC); Serial.print("\t"); //显示航向
  42.       Serial.print(YPR[1], DEC); Serial.print("\t"); //显示俯仰角
  43.       Serial.println(YPR[2], DEC);                    //显示横滚角
  44.       delay(50);
  45.     }
  46.   }
  47. }
  48. //---------------------------------------------------------------
  49. void serialEvent() {
  50.   while (Serial.available()) {
  51.     Re_buf[counter] = (unsigned char)Serial.read();
  52.     if (counter == 0 && Re_buf[0] != 0xAA) return; // 检查帧头
  53.     counter++;
  54.     if (counter == 8)             //接收到数据
  55.     {
  56.       counter = 0;               //重新赋值,准备下一帧数据的接收
  57.       sign = 1;
  58.     }
  59.   }
  60. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-25 11:07:43 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-25 11:11:01 | 显示全部楼层
GY-25串口倾斜度模块实验场景图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-25 12:01:07 | 显示全部楼层
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百五十二:GY-25 串口直接输出角度数据 倾斜度角度传感器模块 MPU-6050
  4.   使用步骤:
  5.   1.先下载GY25_uart程序至arduino
  6.   2.再接上GY25模块
  7.   3.按复位按键
  8.   4.打开串口,波特率115200
  9.   5、接线
  10.   GY25                arduino uno
  11.   VCC----------------------VCC
  12.   RX-----------------------TX
  13.   TX-----------------------RX
  14.   GND----------------------GND
  15.   ---------------------------------------
  16.   IICLCD2004           arduino uno
  17.   VCC----------------------VCC
  18.   SCL----------------------A5
  19.   SDA----------------------A4
  20.   GND----------------------GND
  21.   实验之二:IICLCD2004显示动态角度数值
  22. */

  23. #include <Wire.h>
  24. #include <LiquidCrystal_I2C.h>
  25. int YPR[3];
  26. unsigned char Re_buf[8], counter = 0;
  27. unsigned char sign = 0;
  28. int led = 13;
  29. LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x20 for a 20 chars and 4 line display

  30. //-----------------------------------------------------------
  31. void setup()
  32. {
  33.   lcd.init();                      // initialize the lcd
  34.   // Print a message to the LCD.
  35.   Serial.begin(115200);
  36.   delay(2000);
  37.   Serial.write(0XA5);
  38.   Serial.write(0X52);    //初始化GY25,连续输出模式
  39.   lcd.backlight();
  40.   lcd.setCursor(0, 0);    //I2C接口LCD2004显示初始值
  41.   lcd.print("Yaw:");
  42.   lcd.setCursor(0, 1);
  43.   lcd.print("Pitch:");
  44.   lcd.setCursor(0, 2);
  45.   lcd.print("Roll:");
  46. }
  47. //-------------------------------------------------------------
  48. void loop() {
  49.   if (sign)
  50.   {
  51.     sign = 0;
  52.     if (Re_buf[0] == 0xAA && Re_buf[7] == 0x55)   //检查帧头,帧尾
  53.     {
  54.       YPR[0] = (Re_buf[1] << 8 | Re_buf[2]) / 100; //合成数据,去掉小数点后2位
  55.       YPR[1] = (Re_buf[3] << 8 | Re_buf[4]) / 100;
  56.       YPR[2] = (Re_buf[5] << 8 | Re_buf[6]) / 100;

  57.       lcd.setCursor(4, 0);
  58.       lcd.print("    ");
  59.       lcd.setCursor(4, 0);
  60.       lcd.print(YPR[0]);      //显示航向

  61.       lcd.setCursor(6, 1);
  62.       lcd.print("    ");
  63.       lcd.setCursor(6, 1);   //显示俯仰角
  64.       lcd.print(YPR[1]);

  65.       lcd.setCursor(5, 2);
  66.       lcd.print("    ");
  67.       lcd.setCursor(5, 2);    //显示横滚角
  68.       lcd.print(YPR[2]);
  69.       delay(100);
  70.     }
  71.   }
  72. }
  73. //----------------------------------------------------------
  74. void serialEvent() {
  75.   while (Serial.available()) {
  76.     Re_buf[counter] = (unsigned char)Serial.read();
  77.     if (counter == 0 && Re_buf[0] != 0xAA) return; // 检查帧头
  78.     counter++;
  79.     if (counter == 8)             //接收到数据
  80.     {
  81.       counter = 0;               //重新赋值,准备下一帧数据的接收
  82.       sign = 1;
  83.     }
  84.   }
  85. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-25 12:06:37 | 显示全部楼层
GY-25串口倾斜度模块实验场景图二,未输出角度数据,不知哪里出问题了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-25 13:03:04 | 显示全部楼层
经过调试,LCD2004A可以显示动态角度数据了



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 17:32 , Processed in 0.041926 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表