Мазмұны:

MPU-6050 (GY-521) көмегімен бұрышты қалай өлшеуге болады: 3 қадам
MPU-6050 (GY-521) көмегімен бұрышты қалай өлшеуге болады: 3 қадам

Бейне: MPU-6050 (GY-521) көмегімен бұрышты қалай өлшеуге болады: 3 қадам

Бейне: MPU-6050 (GY-521) көмегімен бұрышты қалай өлшеуге болады: 3 қадам
Бейне: Гироскоп-Акселерометр MPU-6050. Первое знакомство 2024, Қараша
Anonim
MPU-6050 (GY-521) көмегімен бұрышты қалай өлшеуге болады
MPU-6050 (GY-521) көмегімен бұрышты қалай өлшеуге болады

Бұл нұсқаулықта біз Arduino көмегімен бұрышты өлшейміз. Бұрышты өлшеу үшін бізге Arduino UNO және GY-521 (MPU-6050) кабельдері қажет.

1-қадам: MPU-6050-ді Arduino UNO-ға қосу

MPU-6050 Arduino UNO-ға қосылуда
MPU-6050 Arduino UNO-ға қосылуда

Бұрышты өлшеу үшін бізге ерлер мен әйелдердің кабельдері, Arduino UNO және GY-521 (MPU-6050) сенсоры қажет. Біз MPU-6050 суретте көрсетілгендей Arduino UNO-ға қосуымыз керек. Сонымен,

  • VCC 5V дейін (MPU-6050 3.3V жұмыс істейді, бірақ GY-521 оны 5V дейін арттырады),
  • GND - GND,
  • SCL A5 дейін,
  • SDA - А4,
  • ADO - GND,
  • 2 цифрлық пинге INT.

2 -қадам: код

Код
Код

Міне код. Ол I2C қолданады. Мен кодтың кейбір бөліктерін интернеттен алдым. (I2C бөлігі)

// Авторы: Ахмет Буркай КИРНИК // MPU-6050 көмегімен бұрышты өлшеу (GY-521)

#қосу

const int MPU_addr = 0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;

int minVal = 265; int maxVal = 402;

қос x; қос у; қос z;

void setup () {Wire.begin (); Wire.beginTrmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (шын); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (жалған); Wire.requestFrom (MPU_addr, 14, шын); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = карта (AcX, minVal, maxVal, -90, 90); int yAng = карта (AcY, minVal, maxVal, -90, 90); int zAng = карта (AcZ, minVal, maxVal, -90, 90);

x = RAD_TO_DEG * (atan2 (-yAng, -zAng)+PI); y = RAD_TO_DEG * (atan2 (-xAng, -zAng)+PI); z = RAD_TO_DEG * (atan2 (-yAng, -xAng)+PI);

Serial.print («AngleX =»); Serial.println (x);

Serial.print («AngleY =»); Serial.println (y);

Serial.print («AngleZ =»); Serial.println (z); Serial.println («-----------------------------------------»); кешіктіру (400); }

3 -қадам: Орындалды

Орындалды!
Орындалды!

Болды! Егер ол жұмыс істемесе немесе сізге көмек қажет болса, түсініктеме қалдырыңыз немесе электрондық пошта жіберіңіз. Сіз менің электрондық пошта мекенжайымды түсініктемелерден таба аласыз. Айтпақшы, менің ағылшын тілім соншалықты жақсы емес, сондықтан мен нашар ағылшын тілім үшін кешірім сұраймын.

Ахмет Буркай КИРНИК

Стамбул/ТҮРКИЯ

Өңдеу: 2 жылдан кейін ағылшын тілім жақсарды, сондықтан мен кейбір қателерді түзеттім.

Ұсынылған: