Я использовал Arduino uno для загрузки скетча в модуль esp 01. Я прикрепил изображение, как я подключил esp-01 и mpu6050, браузер постоянно печатает значения гироскопа, но с увеличением на 0,01 Мне нужны фактические значения гироскопа

[1]
#include <ESP8266WiFi.h>
#include <MPU6050_tockn.h>
#include <Wire.h>

MPU6050 mpu6050(Wire);

const char* ssid = "TP-LINK";
const char* password = "1913131";

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);

void setup() {

  Serial.begin(115200);
  delay(1000);


  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());



  delay(5000);
  //Serial.begin(9600);
  Wire.begin(0,2);
  delay(1000);


  mpu6050.begin();
  delay(1000);
  mpu6050.calcGyroOffsets(true);

  delay(1000);
}

void loop() {
  // Check if a client has connected

  WiFiClient client = server.available();
  if (!client) {
    Serial.print("Client did not connect");
    delay(1000);

    return;
  }

  // Wait until the client sends some data
  Serial.println("new client");
  while (!client.available()) {
    delay(1);
  }

  while(client.available()){
  mpu6050.update();

  client.print(mpu6050.getGyroAngleX());
  client.print(",");
  client.print(mpu6050.getGyroAngleY());
  client.print(",");
  client.println(mpu6050.getGyroAngleZ());
  delay(10);

  }

  delay(1);

  Serial.println("Client disonnected");

  // The client will actually be disconnected
  // when the function returns and 'client' object is detroyed
}

> Blockquote

Когда клиент действительно подключается, и когда я ввожу IP-адрес в браузере, значения, напечатанные в браузере, равны 0,69,0,69,0.60 0,70,0,70,0,60 0,70 и продолжают увеличивать значения на 0,01, но мне нужно фактическое чтение гироскопа. Помоги мне, пожалуйста

Я подключил esp 01 и mpu6050, как на этом изображении Элемент списка

1
gnaneshwar shamantula 23 Окт 2018 в 07:40

2 ответа

Лучший ответ

Вместо использования библиотеки MPU 6050 просто используйте Wire Library, чтобы получить значения, относящиеся к листу данных, MPU6050 использует адрес 0x68 для начала передачи.

 Wire.beginTransmission(0x68);

Вы можете обратиться к следующей таблице данных, Чтобы получить значения гироскопа, мы пишем в 0x1B (MSB) и 0x18 (LSB). Получим 6 байтов данных

 // Select gyroscope configuration register
 Wire.write(0x1B);
 Wire.write(0x18);

Теперь запишите в регистр данных 0x43, чтобы получить значения гироскопа. Мы получим 6 байтов значений от датчика, где 16 бит (1 байт) для осей x, y и z соответственно Wire.requestFrom (Addr, 6);

// Read 6 byte of data 
if(Wire.available() == 6)
{
   data[0] = Wire.read();
   data[1] = Wire.read();
   data[2] = Wire.read();
   data[3] = Wire.read();
   data[4] = Wire.read();
   data[5] = Wire.read(); 
 }
 // Convert the data
   int xGyro = data[0] * 256 + data[1];
   int yGyro = data[2] * 256 + data[3];
   int zGyro = data[4] * 256 + data[5];

Где as Чтобы получить значения акселерометра, мы пишем в 0x1C (MSB) и 0x18 (LSB). вы можете найти полный код по этой ссылке на github . Здесь мы получили значения гироскопа и акселерометра от датчика

Также Сделайте это как Wire.begin (SDA, SCL), в вашем случае это будет Wire.begin (0,2); * Обратите внимание, что MPU6000 и MPU6050 имеют одинаковые характеристики и адрес, поэтому не беспокойтесь об этом.

0
vaibhav sharma 23 Окт 2018 в 10:42

Полный диапазон GYRO может быть обнаружен по адресу регистра 0x1B, есть различное разрешение в диапазоне от 250 до 2000 градусов / сек, чтобы получить точное значение оси вращения, которое вам нужно, чтобы разделить ваши исходные значения с определенным масштабным коэффициентом в следующей таблице данных в столбце спецификации гироскопа. это чувствительность / масштабный коэффициент. Необработанные значения, которые вы получаете, являются десятичными значениями, а этот масштабный коэффициент выражается в младших битах (градус / сек). например, если вы выбрали 500 град / сек, вам нужно разделить его на 65,5, чтобы получить значение

0
vaibhav sharma 10 Ноя 2018 в 06:48
52941292