ARDUINO-lgoo

طرح تست سنسور ترکیبی ARDUINO GY87

محصول ARDUINO-GY87-ترکیبی-سنسور-تست-اسکچ

مقدمه

اگر از سازنده‌های مشتاق یا علاقه‌مند به رباتیک هستید، با این ماژول کوچک و در عین حال قدرتمند مواجه شده‌اید. ماژول GY-085 IMU یک راه عالی برای اضافه کردن حس حرکت به پروژه های شما است، مانند یک ربات خود متعادل کننده یا یک کوادکوپتر.
اما قبل از شروع آزمایش با ماژول GY-87 IMU، باید بدانید که چگونه آن را با برد آردوینو خود ارتباط برقرار کنید. اینجاست که این وبلاگ وارد می شود! در پاراگراف های بعدی، اصول اولیه ماژول GY-87 IMU، نحوه تنظیم آن و نحوه نوشتن کد آردوینو برای خواندن داده های سنسور را پوشش خواهیم داد. ما همچنین نکات و منابعی را برای عیب یابی مشکلات رایج ارائه خواهیم کرد.
بنابراین، اگر برای شروع آماده هستید، بیایید وارد آن شویم و در مورد رابط ماژول GY-87 IMU با آردوینو بیاموزیم!

GY-87 IMU MPU6050 چیست؟

ماژول‌های واحد اندازه‌گیری اینرسی (IMU) مانند GY-87 بسیاری از سنسورها را در یک بسته واحد ترکیب می‌کنند، مانند شتاب‌سنج/ژیروسکوپ MPU6050، مغناطیس سنج HMC5883L و سنسور فشار فشار سنج BMP085. از این رو، GY-87 IMU MPU6050 یک ماژول ردیابی حرکت 9 محوره یکپارچه است که یک ژیروسکوپ 3 محوره، شتاب سنج 3 محوره، مغناطیس سنج 3 محوره و یک پردازنده حرکت دیجیتال را ترکیب می کند. در پروژه های رباتیک مانند کوادکوپترها و سایر وسایل نقلیه هوایی بدون سرنشین (پهپاد) بسیار استفاده می شود، زیرا می تواند جهت گیری و حرکت را به دقت اندازه گیری و ردیابی کند. همچنین در برنامه های کاربردی دیگر مانند ناوبری، بازی و واقعیت مجازی نیز استفاده می شود.

قطعات سخت افزاری

برای رابط GY-87 IMU MPU6050 HMC5883L BMP085 ماژول با آردوینو به سخت افزار زیر نیاز دارید.

اجزاء ارزش تعداد
آردوینو UNO 1
MPU6050 ماژول سنسور GY-87 1
تخته نان 1
سیم های جامپر 1

GY-87 با آردوینو 

اکنون که GY-87 را درک کرده اید، زمان آن است که با آردوینو رابط کاربری داشته باشید. برای انجام این کار، اکنون که GY-87 را فهمیدید، وقت آن است که با آردوینو ارتباط برقرار کنید. برای انجام آن، دنبال کنید

نموداری

اتصالات را مطابق نمودار مدار زیر انجام دهید

GY-87 IMU MPU6050 HMC5883L BMP085 آردوینوARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1سیم کشی / اتصالات

آردوینو سنسور MPU6050
5V VCC
GND GND
A4 SDA
A5 SCA

نصب آردوینو IDE 

ابتدا باید نرم افزار Arduino IDE را از طریق رسمی آن نصب کنید webسایت آردوینو در اینجا یک راهنمای گام به گام ساده در مورد "نحوه نصب Arduino IDE" آورده شده است.

نصب کتابخانه ها 

قبل از شروع آپلود کد، کتابخانه های زیر را در /Program دانلود و از حالت فشرده خارج کنید Files (x86)/Arduino/Libraries (پیش فرض) به منظور استفاده از سنسور با برد آردوینو. در اینجا یک راهنمای گام به گام ساده در مورد "چگونه کتابخانه ها را در Arduino IDE اضافه کنیم" آورده شده است.

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Simple

کد 

حال کد زیر را کپی کرده و در نرم افزار آردوینو IDE آپلود کنید.

#include "I2Cdev.h" #include "MPU6050.h" #include #عبارتند از MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_قطب نما ساده; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // مقدار دهی اولیه دستگاه ها Serial.println("Initializing I13C devices..."); // مقداردهی اولیه bmp9600 if (!bmp.begin()) { Serial.println("نتوانست حسگر BMP2 معتبری پیدا کند، (!bmp.begin()) را بررسی کنید { Serial.println("نتوانست حسگر BMP085 معتبری پیدا کند، Serial.println(accelgyro.testConnection() ? "اتصال MPU085 موفقیت آمیز": "اتصال MPU085 ناموفق")؛ accelgyro.setI6050CBypassEnabled(true)؛ // تنظیم حالت بای پس برای دروازه به hmc6050L // مقدار دهی اولیه hmc2. 5883، 'E')؛ Compass.SetSamplingMode (COMPASS_SINGLE)؛
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // LED آردوینو را برای بررسی فعالیت pinMode پیکربندی کنید (LED_PIN، OUTPUT)؛ } void loop() {
Serial.print("دما = "); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print("Pressure = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // محاسبه ارتفاع با فرض فشار سنجی استاندارد // فشار 1013.25 میلی بار = 101325 پاسکال Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println ("متر"); Serial.print("Pressure at sealevel (محاسبه شده) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print("ارتفاع واقعی = "); Serial.print(bmp.readAltitude(101500));
Serial.println("meter"); // خواندن اندازه‌گیری‌های خام accel/gyro از دستگاه accelgyro.getMotion6(&ax، &ay، &az، &gx، &gy، &gz); // نمایش مقادیر accel/gyro x/y/z جدا شده با تب Serial.print(“a/g:\t”); Serial.print(ax);
Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az);
Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy);
Serial.print("\t"); Serial.println(gz); عنوان شناور =
Compass.GetHeadingDegrees(); Serial.print("Heading: \t"); Serial.println( heading ); // LED چشمک زدن برای نشان دادن فعالیت blinkState = !blinkState;
digitalWrite (LED_PIN، blinkState)؛ تاخیر (500); }

بیایید آن را تست کنیم 

وقتی کد را آپلود کردید، نوبت به تست مدار می رسد! کد موجود در برنامه آردوینو با حسگرها با استفاده از کتابخانه‌هایشان ارتباط برقرار می‌کند که به آن اجازه می‌دهد داده‌های حسگر را بخواند و پیکربندی‌های مختلف حسگرها را تنظیم کند. سپس داده های سنسور را روی پورت سریال چاپ می کند. LED برای نشان دادن اینکه مدار در حال انجام کاری است استفاده می شود. این به این معنی است که LED هر بار که عملکرد حلقه اجرا می شود چشمک می زند و نشان می دهد که کد به طور فعال مقادیر سنسور را می خواند.

توضیح کاری 

کد اصلی ترین چیزی است که کار مدار بر آن استوار است. بنابراین، بیایید کد را درک کنیم:.

  • اول، شامل چندین کتابخانه برای ارتباط با حسگرها است:
  • «I2Cdev.h» و «MPU6050.h» کتابخانه‌هایی برای حسگر شتاب‌سنج/ژیروسکوپ 6050 محوری MPU6 هستند.
  • "Adafruit_BMP085.h" کتابخانه ای برای سنسور فشار فشار سنج BMP085 است.
  • "HMC5883L_Simple.h" کتابخانه ای برای حسگر مغناطیس سنج HMC5883L است.
  • سپس اشیاء جهانی را برای سه حسگر ایجاد می کند: MPU6050 accelgyro، Adafruit_BMP085 bmp، و HMC5883L_Simple Compass.
  • سپس، متغیرهایی را برای ذخیره مقادیر حسگر تعریف می‌کند، مانند ax، ay، و az برای شتاب‌سنج MPU6050 و برای هدایت مغناطیس‌سنج HMC5883L. و یک ثابت LED_PIN و یک متغیر blinkState را تعریف می کند.
  • تابع setup() یک ارتباط سریالی را شروع می کند و ارتباط I2C را آغاز می کند. سپس سه حسگر را مقداردهی اولیه می کند:
  • سنسور BMP085 با فراخوانی متد start() مقدار دهی اولیه می شود. اگر این مقدار false را برگرداند که نشان می‌دهد سنسور پیدا نشد، برنامه وارد یک حلقه بی‌نهایت می‌شود و پیام خطا را روی پورت سریال چاپ می‌کند.
  • سنسور MPU6050 با فراخوانی متد ()Initialize و بررسی اینکه آیا درست کار می کند، مقداردهی اولیه می شود. و بای پس I2C را برای MPU6050 فعال کرد.
  • سنسور HMC5883L با فراخوانی برخی از عملکردها مانند SetDeclination، SetS مقداردهی اولیه می شود.amplingMode، SetScale و SetOrientation، برای تنظیم تنظیمات مختلف برای سنسور.
  • در تابع loop() کد داده ها را از سه حسگر می خواند و آن را روی پورت سریال چاپ می کند:
  • دما، فشار، ارتفاع و فشار در سطح دریا را از سنسور می‌خواند.
  • اندازه گیری شتاب و ژیروسکوپ خام را از حسگر MPU6050 می خواند.
  • عنوان را از حسگر HMC5883L می‌خواند، که زاویه بین جهتی که سنسور در آن قرار دارد و جهتی است که شمال مغناطیسی در آن قرار دارد.
  • در نهایت، LED را برای نشان دادن فعالیت چشمک می زند و قبل از خواندن مجدد حسگرها لحظه ای صبر می کند.

اسناد / منابع

طرح تست سنسور ترکیبی ARDUINO GY87 [pdf] دفترچه راهنمای کاربر
طرح تست سنسور ترکیبی GY87، طرح تست سنسور ترکیبی GY87، طرح تست سنسور ترکیبی، طرح تست سنسور، طرح تست

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *