Проблема сопряжения с модулем esp8266 esp-01 и mpu6050 - PullRequest
0 голосов
/ 23 октября 2018

Я использовал 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,6, 0, 60, 0,70, 0,7, 0, 60, 0,70 и продолжают увеличивать значения на 0,01, но мне нужно реальное чтение гироскопа.помогите мне пожалуйста

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

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

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

0 голосов
/ 23 октября 2018

вместо использования библиотеки MPU 6050, просто используйте библиотеку проводов, чтобы получить значения, ссылающиеся на таблицу данных 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];

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

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

...