eagler8 发表于 2020-12-10 16:24:48

eagler8 发表于 2020-12-10 16:29:40

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

eagler8 发表于 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通信(仅读取原始数据)

eagler8 发表于 2020-12-10 16:44:15


eagler8 发表于 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)修改波特率指令
A556   修改波特率成为115200
A5   57修改波特率成为9600

eagler8 发表于 2020-12-10 17:25:02

eagler8 发表于 2020-12-10 17:26:17

eagler8 发表于 2020-12-10 17:27:26

eagler8 发表于 2020-12-10 17:32:06

eagler8 发表于 2020-12-25 10:53:31

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

#include <Wire.h>
int YPR;
unsigned char Re_buf, counter = 0;
unsigned char sign = 0;
int led = 13;

//-----------------------------------------------------------
void setup()
{
Serial.begin(115200);
delay(2000);
Serial.write(0XA5);
Serial.write(0X52);    //初始化GY25,连续输出模式
}
//-------------------------------------------------------------
void loop() {
if (sign)
{
    sign = 0;
    if (Re_buf == 0xAA && Re_buf == 0x55)   //检查帧头,帧尾
    {
      YPR = (Re_buf << 8 | Re_buf) / 100; //合成数据,去掉小数点后2位
      YPR = (Re_buf << 8 | Re_buf) / 100;
      YPR = (Re_buf << 8 | Re_buf) / 100;
      Serial.print("YPR:\t");
      Serial.print(YPR, DEC); Serial.print("\t"); //显示航向
      Serial.print(YPR, DEC); Serial.print("\t"); //显示俯仰角
      Serial.println(YPR, DEC);                  //显示横滚角
      delay(50);
    }
}
}
//---------------------------------------------------------------
void serialEvent() {
while (Serial.available()) {
    Re_buf = (unsigned char)Serial.read();
    if (counter == 0 && Re_buf != 0xAA) return; // 检查帧头
    counter++;
    if (counter == 8)             //接收到数据
    {
      counter = 0;               //重新赋值,准备下一帧数据的接收
      sign = 1;
    }
}
}

eagler8 发表于 2020-12-25 11:07:43



eagler8 发表于 2020-12-25 11:11:01

GY-25串口倾斜度模块实验场景图

eagler8 发表于 2020-12-25 12:01:07

/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百五十二:GY-25 串口直接输出角度数据 倾斜度角度传感器模块 MPU-6050
使用步骤:
1.先下载GY25_uart程序至arduino
2.再接上GY25模块
3.按复位按键
4.打开串口,波特率115200
5、接线
GY25                arduino uno
VCC----------------------VCC
RX-----------------------TX
TX-----------------------RX
GND----------------------GND
---------------------------------------
IICLCD2004         arduino uno
VCC----------------------VCC
SCL----------------------A5
SDA----------------------A4
GND----------------------GND
实验之二:IICLCD2004显示动态角度数值
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int YPR;
unsigned char Re_buf, counter = 0;
unsigned char sign = 0;
int led = 13;
LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x20 for a 20 chars and 4 line display

//-----------------------------------------------------------
void setup()
{
lcd.init();                      // initialize the lcd
// Print a message to the LCD.
Serial.begin(115200);
delay(2000);
Serial.write(0XA5);
Serial.write(0X52);    //初始化GY25,连续输出模式
lcd.backlight();
lcd.setCursor(0, 0);    //I2C接口LCD2004显示初始值
lcd.print("Yaw:");
lcd.setCursor(0, 1);
lcd.print("Pitch:");
lcd.setCursor(0, 2);
lcd.print("Roll:");
}
//-------------------------------------------------------------
void loop() {
if (sign)
{
    sign = 0;
    if (Re_buf == 0xAA && Re_buf == 0x55)   //检查帧头,帧尾
    {
      YPR = (Re_buf << 8 | Re_buf) / 100; //合成数据,去掉小数点后2位
      YPR = (Re_buf << 8 | Re_buf) / 100;
      YPR = (Re_buf << 8 | Re_buf) / 100;

      lcd.setCursor(4, 0);
      lcd.print("    ");
      lcd.setCursor(4, 0);
      lcd.print(YPR);      //显示航向

      lcd.setCursor(6, 1);
      lcd.print("    ");
      lcd.setCursor(6, 1);   //显示俯仰角
      lcd.print(YPR);

      lcd.setCursor(5, 2);
      lcd.print("    ");
      lcd.setCursor(5, 2);    //显示横滚角
      lcd.print(YPR);
      delay(100);
    }
}
}
//----------------------------------------------------------
void serialEvent() {
while (Serial.available()) {
    Re_buf = (unsigned char)Serial.read();
    if (counter == 0 && Re_buf != 0xAA) return; // 检查帧头
    counter++;
    if (counter == 8)             //接收到数据
    {
      counter = 0;               //重新赋值,准备下一帧数据的接收
      sign = 1;
    }
}
}

eagler8 发表于 2020-12-25 12:06:37

GY-25串口倾斜度模块实验场景图二,未输出角度数据,不知哪里出问题了

eagler8 发表于 2020-12-25 13:03:04

经过调试,LCD2004A可以显示动态角度数据了



页: 1 [2] 3
查看完整版本: 【Arduino】168种传感器系列实验(152)---GY-25串口倾斜度模块