آموزش آردوینو شتاب و ژایرو پروژه های آردوینو

سنسور ژیروسکوپ و راه اندازی در نرم افزار آردوینو

نوشته شده توسط حسین فهیمی

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


ژیروسکوپ چیست


ژیروسکوپ یک سنجش‌گر یا ابزار اندازه‌گیری است که برای سنجیدن سرعت چرخشی یا جهت گیری حرکت یک جسم به کار می‌رود. ژیروسکوپ‌ها بر اساس اصل تراز بودن حرکت گردشی یک جسم نسبت به یک محور ثابت، عمل می‌کنند. در واقع، ژیروسکوپ‌ها بر اساس اصل نگهداری جهت گیری یک سیستم حول محور گردش، به عنوان یک ابزار اندازه‌گیری استفاده می‌شوند. به طور کلی، ژیروسکوپ‌ها شامل یک دیسک یا یک چرخه کوچک است که به سرعت چرخش دارد. این چرخه بر روی یک محور ثابت نصب شده است که در جهتی خاص قرار دارد. هنگامی که یک نیروی بیرونی بر روی ژیروسکوپ اعمال می‌شود، چرخش چرخه به سمتی که متعامد بر جهت اعمال نیرو است تغییر جهت می‌دهد، اما محور چرخش ژیروسکوپ همچنان به جهت قبلی خود ادامه می‌دهد.

ژیروسکوپ‌ها به عنوان یک ابزار اندازه‌گیری برای تشخیص جهت و سرعت چرخشی یک جسم استفاده می‌شوند. در مصارف الکترونیکی نیز سنسور ژیروسکوپ به عنوان یکی از اجزای مهم در سیستم‌های کنترلی مورد استفاده قرار می‌گیرد. برای مثال، در دستگاه‌های موبایل هوشمند، سنسور ژیروسکوپ به کنترل حرکت صفحه نمایش و تغییر جهت آن کمک می‌کند. همچنین، در دستگاه‌های مانیتورینگ قلب، سنسور ژیروسکوپ به کنترل حرکت دستگاه برای ردیابی نبض قلب و اندازه‌گیری فعالیت‌های ورزشی نیز استفاده می‌شود.

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


سنسور ژیروسکوپ


سنسور ژیروسکوپ یا سنسور چرخشی، یک حسگر الکترونیکی است که برای سنجش سرعت و جهت چرخشی یک جسم به کار می‌رود. این سنسور براساس اصل دینامیک نیوتن عمل می‌کند و از تغییر جهت سیستم‌های حلقه‌ای استفاده می‌کند. در سنسور ژیروسکوپ، یک دیسک چرخان به سرعت ثابت در داخل یک حلقه قرار دارد و هنگامی که جسم حرکت می‌کند، دیسک به اندازه‌ای در جهت مخالف حرکت می‌کند که می‌توان از آن برای تعیین جهت و سرعت چرخشی جسم استفاده کرد.سنسور ژیروسکوپ در سیستم‌های ناوبری، کنترل و رباتیک بسیار کاربرد دارد. به طور مثال، در پرنده‌های بدون سرنشین (بدون سرنشین)، سنسور ژیروسکوپ برای تشخیص جهت و سرعت چرخشی پرنده به کار می‌رود.


سنسور شتاب و ژایرو MPU6050


سنسور MPU6050 یک سنسور ستاره‌ای ۶ محوره است که شامل دو سنسور مجزا برای شتاب و ژیروسکوپ در یک بسته یکپارچه است. این سنسور با استفاده از یک سیستم مجتمع از سنسورهای MEMS (سنسورهای ساخته شده با تکنولوژی میکروالکترومکانیک) و پردازنده‌ی دیجیتالی، میزان شتاب و سرعت چرخشی جسم را اندازه‌گیری می‌کند. این سنسور به دلیل داشتن دو سنسور مجزا و همچنین امکان اندازه‌گیری دما، در بسیاری از کاربردهای نظامی، صنعتی و خانگی مورد استفاده قرار می‌گیرد.

سنسور ۳ محوره GY-521 همچنین یک سنسور شتاب و ژیروسکوپ یکپارچه است که برای اندازه‌گیری شتاب و سرعت چرخشی جسم در سه محور استفاده می‌شود. این سنسور با استفاده از یک سیستم مجتمع از سنسورهای MEMS و پردازنده‌ی دیجیتالی، این اطلاعات را اندازه‌گیری می‌کند. این سنسور برای کاربردهایی مانند روباتیک، خودروهای هوشمند و بازی‌های الکترونیکی استفاده می‌شود.بطور کلی، سنسور MPU6050 نسخه پیشرفته‌تری از سنسور ۳ محوره GY-521 است که دارای ویژگی‌های بیشتری است. به عنوان مثال، سنسور MPU6050 دارای فیلترهای بیشتری است که امکان تصحیح داده‌های اندازه‌گیری شده را بهبود می‌بخشد و همچنین دارای رابط‌های ارتباطی بیشتری مانند I2C و SPI می‌باشد.


مشخصات فنی ماژول MPU6050


  •  تعداد محورهای اندازه‌گیری: ۶ محور (۳ محور شتاب سنج و ۳ محور ژیروسکوپ)
  • دامنه‌ی اندازه‌گیری شتاب سنج: ±۲g، ±۴g، ±۸g، ±۱۶g
  • دامنه‌ی اندازه‌گیری ژیروسکوپ: ±۲۵۰°/s، ±۵۰۰°/s، ±۱۰۰۰°/s، ±۲۰۰۰°/s
  • دقت اندازه‌گیری شتاب سنج: ۱۶ بیت
  • دقت اندازه‌گیری ژیروسکوپ: ۱۶ بیت
  • فرکانس نمونه‌برداری: قابل تنظیم تا ۸ کیلوهرتز
  • رابط‌های ارتباطی: I2C و SPI
  • ولتاژ کاری: ۳٫۳ ولت
  • مصرف جریان: کمتر از ۵ میلی‌آمپر
  • دمای کاری: -۴۰ درجه تا +۸۵ درجه سانتی‌گراد
  • ابعاد: ۴ × ۴ × ۰٫۹ میلی‌متر
  • وزن: ۰٫۰۴ گرم

اتصالات ماژول شتاب MPU6050


ابتدا باید سنسور MPU6050 را به برد آردوینو متصل کنید. این سنسور دارای دو رابط ارتباطی I2C و SPI می‌باشد. در اینجا، اتصال با استفاده از رابط I2C را شرح می‌دهیم. برای این کار، باید پایه‌های VCC و GND سنسور را به منبع تغذیه برد آردوینو متصل کنید. سپس پایه‌های SDA و SCL سنسور را به پایه‌های A4 و A5 برد آردوینو وصل کنید.


کد آردوینو ماژول شتاب MPU6050


 برای استفاده از سنسور MPU6050 با برد آردوینو، باید از کتابخانه‌ی آن استفاده کنید. برای این کار، می‌توانید از کتابخانه‌ی MPU6050 با نام “MPU6050” استفاده کنید. این کتابخانه را می‌توانید از اینترنت دانلود کرده و در برنامه آردوینو خود فراخوانی کنید.حالا که سنسور MPU6050 را به برد آردوینو متصل کردید و کتابخانه‌ی آن را در برنامه آردوینو خود فراخوانی کردید، می‌توانید برنامه‌ای برای خواندن داده‌های سنسور بنویسید. برای مثال، برنامه‌ی زیر را برای خواندن داده‌های سنسور MPU6050 و نمایش آن‌ها در سریال مانیتور آردوینو می‌توانید استفاده کنید:

#include<Wire.h>
#include<MPU6050.h>

MPU6050 mpu;

void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
}

void loop() {
float xAccel, yAccel, zAccel;
float xGyro, yGyro, zGyro;

mpu.getAcceleration(&xAccel, &yAccel, &zAccel);
mpu.getRotation(&xGyro, &yGyro, &zGyro);

Serial.print(”

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

مشخص کردن رنج کاری سریال مانیتور

  Serial.begin(9600);

کشیدن مقادیر مشخص شده از ماژول و ریختن آن درون متغییر های تعریف شده

 mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

نمایش متغییر ها بر روی سریال مانیتور و پایان حلقه ی loop

Serial.println("ax :");
  Serial.println(ax);
  Serial.println("     ");
  Serial.println("ay :");
  Serial.println(ay);
  Serial.println("     ");
  Serial.println("az :");
  Serial.println(az);
  Serial.println("     ");
  Serial.println("gx :");
  Serial.println(gx);
  Serial.println("      ");
   Serial.println("gy :");
  Serial.println(gy);
  Serial.println("      ");
   Serial.println("gz :");
  Serial.println(gz);
  Serial.println("      ");
  delay(500);
}

وسایل مورد نیاز


برد آردوینو

سنسور ژایروسکوپ MPU6050

کابل فلت

برد بورد

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

درباره نویسنده

حسین فهیمی

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۱ دیدگاه

    • با سلام
      میتوانید به صفحه محصول در فروشگاه مراجعه کنید، لینک کتابخانه برای آردوینو و برد رزبری پای Raspberry Pi موجود است.

  • سلام این نمونه کدی که شما گذاشتین برا من وقتی که تو آردوینو انجام میدم خطا میده ……..
    ‘class MPU6050’ has no member named ‘initialize’
    میگه هیچ مقدار دهی اولیه وجود نداره ؟؟؟؟؟

  • سلام درود بر شما
    مهندس جان یه سوال
    هیچ کجا جوابشو پیدا نکردم لطفا راهنماییم کنید.
    تفاوت این دو دستور چیه
    #include”library”
    #include
    تفاوت نوشتن کتابخونه داخل “” و در چیه؟
    ممنون

  • باسلام درباره ماژول mpu6050خواستم بدونم ایا دیتا برداری که انجام میده بیشتر از ماژول التراسونیک هستش چون یه قطعه هستش که از ارتفاع ۶متری پرت میشه وما اینو میخوایم باسرعت بالا دیتا برداری کنه لطفا راهنمایی بفرماییدوخواستم بدونم ایابرنامه کدویژن وپروتئوس مشابه اینو دارید من طبق این انجام بدم باتشکر از سایتتون

    • با سلام
      ضمن تشکر از توجه شما، برای اینکه بهترین حالت دیتا برداری را داشته باشید پیشنهاد میشود از ترکیب هردو ماژول استفاده کنید. ولی در حالت کلی استفاده از ماژول MPU6050 انتخاب مناسبی است. در مورد کدویژن و پروتئوس در حال حاضر هیچ برنامه‌ای نداریم.

  • با سلام
    من میخواهم با ژیروسکوپ پروژه درست کنم که هر وقت ماژول ژیروسکوپ تکان بخورد موبایلم زنگ بخورد
    با سیم ۸۰۸
    میشه کمکم کنید
    با تشکر

    • با سلام و تشکر از شما
      بسیار عالی، در این خصوص باید موارد را به صورت عملی اجرا کنید. دقت داشته باشید که شما بایستی دانش فنی داشته باشید، سپس برای دریافت راهنمایی به دیجی اسپارک مراجعه بفرمایید.

  • با سلام

    ببخشید من مو به مو تمام کار هایی که گفتید انجام دادم و تمامی اموزش های توی نت رو امتحان کردم اما همش تو سریال مانیتورم یه سری پیام عجیب قریب میاد که اصلا معلوم نیست چی هستند .

    تمام پروژه هارو که تست میکنم این جوریه

    میشه راهنماییم کنید چون نه سریال مانیتور نه سریال پلاتر چیز درستی نشون نمیدن و فقط یه سری علامت عجیب قریبه

  • با سلام و وقت بخیر
    من این ماژول رو راه انداختم ولی مقادیر شتابی که میده اصلا واقعی نیست.
    یعنی در حالت سکون شتاب همچنان متغیر هست . اعداد هم بسیار بالاست.
    میشه یه توضیحی بدین ممنون میشم ازشما

    • با سلام
      در این خصوص بایستی دیتاشیت را بررسی کنید و در صورت نیاز کالیبره کنید.