جدول المحتويات:

كيفية قياس الزاوية باستخدام MPU-6050 (GY-521): 3 خطوات
كيفية قياس الزاوية باستخدام MPU-6050 (GY-521): 3 خطوات

فيديو: كيفية قياس الزاوية باستخدام MPU-6050 (GY-521): 3 خطوات

فيديو: كيفية قياس الزاوية باستخدام MPU-6050 (GY-521): 3 خطوات
فيديو: Arduino Lesson 25 : MPU6050 Gyro plane simulator / استخدام حساس الإتجاهات لمحاكاة حركة الطائرة 2024, شهر نوفمبر
Anonim
كيفية قياس الزاوية باستخدام MPU-6050 (GY-521)
كيفية قياس الزاوية باستخدام MPU-6050 (GY-521)

في Instructable ، سنقيس الزاوية باستخدام 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.3 فولت لكن GY-521 يزيده إلى 5 فولت.) ،
  • GND إلى GND ،
  • SCL إلى A5 ،
  • SDA إلى A4 ،
  • ADO إلى GND ،
  • INT to digital pin 2.

الخطوة 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 ؛ ص مزدوج ض مزدوج

إعداد باطل () {Wire.begin () ؛ Wire.beginTransmission (MPU_addr) ؛ Wire.write (0x6B) ؛ Wire.write (0) ؛ Wire.endTransmission (صحيح) ؛ Serial.begin (9600) ؛ } حلقة فارغة () {Wire.beginTransmission (MPU_addr)؛ Wire.write (0x3B) ؛ Wire.endTransmission (خطأ) ؛ Wire.request From (MPU_addr، 14، true) ؛ AcX = Wire.read () << 8 | Wire.read () ؛ AcY = Wire.read () << 8 | Wire.read () ؛ AcZ = Wire.read () << 8 | Wire.read () ؛ int xAng = map (AcX، minVal، maxVal، -90، 90) ؛ int yAng = map (AcY، minVal، maxVal، -90، 90) ؛ int zAng = map (AcZ، minVal، maxVal، -90، 90) ؛

س = RAD_TO_DEG * (atan2 (-yAng، -zAng) + PI) ؛ y = RAD_TO_DEG * (atan2 (-xAng، -zAng) + PI) ؛ ض = RAD_TO_DEG * (atan2 (-yAng ، -xAng) + PI) ؛

Serial.print ("AngleX =") ؛ Serial.println (x) ؛

Serial.print ("AngleY =") ؛ Serial.println (ذ) ؛

Serial.print ("AngleZ =") ؛ Serial.println (ض) ؛ Serial.println ("-----------------------------------------") ؛ تأخير (400) ؛ }

الخطوة 3: تم

منتهي!
منتهي!

تم التنفيذ! إذا لم ينجح الأمر أو كنت بحاجة إلى مساعدة ، فالرجاء ترك تعليق أو إرسال بريد إلكتروني. يمكنك أن تجد عنوان بريدي الإلكتروني من التعليقات. بالمناسبة ، لغتي الإنجليزية ليست جيدة ، لذا أعتذر عن لغتي الإنجليزية السيئة.

أحمد بوركاي كيرنيك

اسطنبول، تركيا

تحرير: بعد عامين ، تحسنت لغتي الإنجليزية لذا صححت بعض الأخطاء.

موصى به: