Serial 6-Axis Accelerometer/Gyroscope Module for Arduino Wiki - DFRobot

Introduction

This module integrates high-precision gyroscopes, accelerometer, microprocessor of high-performance and advanced dynamics solves and Kalman filter algorithms that aim to quickly solve the current real-time movement of the module attitude. The use of advanced digital filtering technology can effectively reduce measurement noise and improve accuracy.
The module comes with built-in gesture solver that can get accurate attitude in dynamic environment combining with dynamic Kalman filter algorithm. Its static measurement accuracy is up to 0.05 degree(dynamic 0.1) with high stability, which could bring better performance even than some professional Inclinometers!
There is a voltage stabilizer circuit inside the module. The product should be operated at 3.3-5V and its pin level is compatible with 3.3/5V embedded systems. It employs TTL interface for connection.

Specification

Tutorial

Requirements

Connection

图片介绍
WT61PC Arduino UNO
VCC 5V/3V
RXD D11
TXD D10
GND GND

Sample Code


/*!
 * @file getData.ino
 * @brief Set the frequency of data output by the sensor, read the acceleration, 
 * @n angular velocity, and angle of X, Y, and Z axes.
 * @n Experimental phenomenon: when the sensor starts, it outputs data at the set 
 * @n frequency and the data will be displayed on serial monitor.
 * @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @license The MIT License (MIT)
 * @author [huyujie](yujie.hu@dfrobot.com)
 * @version V1.0
 * @date 2023-07-12
 * @url https://github.com/DFRobot/DFRobot_WT61PC
 */
#include <DFRobot_WT61PC.h>


#if (defined(ARDUINO_AVR_UNO) || defined(ESP8266))   // Using a soft serial port
#include <SoftwareSerial.h>
SoftwareSerial softSerial(/*rx =*/10, /*tx =*/11);
#define FPSerial softSerial
#else
#define FPSerial Serial1
#endif

DFRobot_WT61PC sensor(&FPSerial);

void setup()
{
  //Use Serial as debugging serial port 
  Serial.begin(115200);

#if (defined ESP32)
  FPSerial.begin(9600, SERIAL_8N1, /*rx =*/D3, /*tx =*/D2);
#else
  FPSerial.begin(9600);
#endif


void loop()
{
  if (sensor.available()) {
    Serial.print("Acc\t"); Serial.print(sensor.Acc.X); Serial.print("\t");
    Serial.print(sensor.Acc.Y); Serial.print("\t"); Serial.println(sensor.Acc.Z); //acceleration information of X,Y,Z
    Serial.print("Gyro\t"); Serial.print(sensor.Gyro.X); Serial.print("\t");
    Serial.print(sensor.Gyro.Y); Serial.print("\t"); Serial.println(sensor.Gyro.Z); //angular velocity information of X,Y,Z
    Serial.print("Angle\t"); Serial.print(sensor.Angle.X); Serial.print("\t");
    Serial.print(sensor.Angle.Y); Serial.print("\t"); Serial.println(sensor.Angle.Z); //angle information of X, Y, Z 
    Serial.println();
  }
}

Expected Results

图片介绍

FAQ

For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

More Documents