آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو

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

Arduino-nano-and-mpu6050-with-led-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 

 

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

سنسور شتاب و ژایرو از تراشه MPU6050 تشکیل شده است. سنسور بسیار دقیق ۱۶ بیتی که برای هر کانال تعریف شده است. این سنسور هر سه محور X , Y و Z را در یک زمان دربرمی‌گیرد. ولتاژ کاری سنسور شتاب و ژایرو MPU6050 بین ۳٫۳ تا ۵ ولت DC می‌باشد. همچنین این سنسور از پروتکل I2C جهت ارتباط با میکروکنترلر آردوینو بهره می‌برد. سنسور شتاب ژایرو MPU6050 دارای حساسیت  ۱۳۱ LSBs/dps  و در محدوده  ±۲۵۰, ±۵۰۰, ±۱۰۰۰,  ±۲۰۰۰dps می‌باشد. ماژول شتاب و ژایرو MPU6050 از یک چیپ سیلیکونی با قابلیت پردازش دیجیتالی بهره می‌برد و همچنین توانایی ترسیم الگوریتم های پیچیده ۹ محوری را دارد. سنسور MPU6050 جریان مصرفی بسیار ناچیز در محدوده ۵ میکروآمپر تا ۳٫۶ میلی آمپر دارد. این سنسور دارای ۸ پایه VCC, GND, SCL, SDA, XDA, XCL, ADD, INT می‌باشد. دیتاشیت کامل سنسور در صفحه محصول سنسور شتاب و ژایرو MPU6050 در داشنجوکیت قرار گرفته شده است. آن را دانلود و  مطالعه نمایید.

 

 

آردوینو Arduino Nano

برد آردوینو نانو Arduino NANO با تراشه CH340G یک برد کوچک بر پایه آی سی ATmega328 می باشد. برد آردوینو دارای ۳۰ پایه می‌باشد. پایه D0 تا D13 پایه ورودی و خروجی دیجیتال است. پایه ۳ و ۲۸  ریست RESET، پایه ۴ و ۲۹ زمین GND، پایه ۱۷ تعذیه ۳٫۳ ولت DC، پایه ۱۸ (AREF ( ADC، پایه ۱۹ تا ۲۶ ورودی آنالوگ A0 – A7، پایه ۲۷ تغذیه ۵ ولت DC و پایه ۳۰ تغذیه پاور VIN می‌باشد. ابعاد برد آردوینو نانو Arduino Nano در حدود ۱٫۷۰ * ۰٫۷۳ اینچ می‌باشد. نوع کانکتور آردوینو نانو Mini USB است. فرکانس کاری آردوینو نانو ۱۶ مگاهرتز MHz می‌باشد. ولتاژ مورد نیاز ۵ ولت DC و جریان آن در حدود ۴۰ میلی آمپر برای هر پین ورودی و خروجی است. اطلاعات بیشتر به همراه دیتاشیت کالا در صفحه محصول آردوینو نانو Arduino Nano در دانشجوکیت قرار گرفته شده است که می‌توانید مطالعه کنید.

 

پروژه کنترل ال ای دی با سنسور شتاب و ژایرو MPU6050 - دیجی اسپارک

هدف از آموزش

توسط سنسور شتاب و ژایرو MPU6050 به ۴ ال ای دی در جهت محور X , Y فرمان می‌دهیم. در ادامه آموزش به بررسی اتصالات، وسایل مورد نیاز جهت اجرای پروژه و در نهایت کد آردوینو آن خواهیم پرداخت. از آنجایی که هر جهت دارای قسمت مثبت و منفی است، در خروجی شاهد چهار جهت خواهیم بود.

 

ال ای دی اوال Oval LED

ال ای دی Oval در مقایسه با سایر ال ای دی‌های نور بسیار واضح و شفاف با زوایه دید بیشتری دارد. همچنین ظاهر این نوع ال ای دی ها متفاوت است. اوال Oval در انگلیسی به معنای بیضی می‌باشد. ولتاژ مورد نیاز برای ال ای دی اوال Oval از ۳ تا ۳٫۲ ولت DC است. این ال ای دی دارای طول موج ۴۲۶ تا ۴۶۵ نانومتر است. همچنین دارای شدت نور ۶۰۰ تا ۸۰۰ MCD می‌باشد. جریان کاری این ال ای دی ۱۵ تا ۲۰ میلی متر است.

 

 

فراخوانی کتابخانه در آردوینو

جهت اجرای این کد نیاز به فراخوانی ۳ کتابخانه خواهیم داشت. چنانچه شیوه نصب کتابخانه در آردوینو را نمی‌دانید. به پستآموزش نصب کتابخانه در نرم افزار آردوینو مراجعه کنید. اگر هم شیوه نصب و راه اندازی نرم افزار آردوینو را نمی‌دانید. به آموزش کار با برد آردوینو و نصب نرم افزار آردوینو Arduino IDE مراجعه کنید.

  • کتابخانه I2Cdev

کتابخانه I2Cdev برای ارتباط پروتکل I2C با میکروکنترل ها فراخوانی می‌شود. لینک دانلود کتابخانه در صفحه محصول سنسور شتاب و ژایرو MPU6050 قرار گرفته شده است. آن را دانلود و سپس فراخوانی کنید.

  • کتابخانه MPU6050_6Axis_MotionApps20

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

  • کتابخانه Wire

کتابخانه wire به صورت پیش فرض در لیست کتابخانه های آردوینو قرار گرفته شده است. آن را فراخوانی کنید.

 

 

اتصال سنسور شتاب و ژایرو MPU

  • پایه VCC سنسور شتاب و ژایرو MPU6050 را به پایه ۳٫۳ ولت آردوینو نانو Arduino Nano اتصال دهید.
  • پایه GND سنسور شتاب و ژایرو MPU6050 را به پایه GND آردوینو نانو Arduino Nano اتصال دهید.
  • پایه SCL سنسور شتاب و ژایرو MPU6050 را به پایه آنالوگ A5 آردوینو نانو Arduino Nano اتصال دهید.
  • پایه SDA سنسور شتاب و ژایرو MPU6050 را به پایه آنالوگ A4 آردوینو نانو Arduino Nano اتصال دهید.
  • پایه INT سنسور شتاب و ژایرو MPU6050 را به پایه دیجیتال D2 آردوینو نانو Arduino Nano اتصال دهید.

اتصال ماژول شتاب و ژایرو به برد آردوینو نانو Nano - دیجی اسپارک

اتصال ال ای دی LED

  • ال ای دی LED اول را به پایه دیجیتال D3 آردوینو نانو Arduino Nano اتصال دهید.
  • ال ای دی LED دوم را به پایه دیجیتال D5 آردوینو نانو Arduino Nano اتصال دهید.
  • ال ای دی LED سوم را به پایه دیجیتال D6 آردوینو نانو Arduino Nano اتصال دهید.
  • ال ای دی LED چهارم را به پایه دیجیتال D9 آردوینو نانو Arduino Nano اتصال دهید.

 

 

کد برنامه آردوینو

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر شوید.

 

 

تحلیل کد آردوینو

از طریق کلیدهای میانبری که برای انتقال کدها در نظر گرفته شده است، کد را به نرم افزار آردوینو منتقل کنید. سپس کامپایل کنید. طبق اتصالات گفته شده در متن آموزش اتصالات را انجام دهید. نکته مهم، بسیاری از سنسور ها برای نمایش دقیق مقادیر اندازه گیری شده و تعیین صحت و دقت نیاز به کالبیراسیون دارند. پیشنهاد می‌شود برای اندازه گیری دقیق تر محور X,Y,Z سنسور را کالیبره کنید.

 

تحلیل مدار MPU6050

با قرار گرفتن سنسور در زاویه افقی Horizental، طبق تعریف کدها با جا به جا کردن سنسور به سمت بالا، پایین، چپ و راست به ترتیب ۴ ال ای دی LED به عنوان خروجی فعال می‌شود. به این صورت که با کج کردن سنسور به سمت بالا ال ای دی متصل به پایه ۳ دیجیتال، به سمت پایین ال ای دی متصل به پایه ۵ دیجیتال ، به سمت چپ ال ای دی متصل به سمت ۹ دیجیتال و در نهایت به سمت راست ال ای دی متصل به پایه ۱۰ دیجیتال روشن خواهد شد.

پروژه کنترل LED با آردوینو نانو و ماژول شتاب و ژایرو MPU6050 - دیجی اسپارک

 

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

برد آردوینو نانو Arduino Nano

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

ال ای دی Oval 

بردبورد 

۶۰ رشته کابل مخصوص بردبورد

 

 

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

 

پروژه

طی چند قسمت قبلی که طرح پروژه را پیاده سازی کردیم، با استقبال شما کاربران مواجه شدیم. در این سری برای اینکه گستره بیشتری از افراد بتوانند فرصت استفاده از بن خرید را داشته باشند؛ روال دیگری را در پیش گرفتیم. در این روش تصمیم گرفته‌ایم به ۱۰ نفر از کاربران بن خرید ارایه شود. برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و بسته به خلاقیت، مدار جدیدی ایجاد کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ «#دیجی_اسپارک» و «#دانشجوکیت» و «#digispark» و «#daneshjookit» منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۲۰ دیدگاه

  • سرکار خانم مهندسس محبت کنید در پروژه هاتون از اسم درست قطعات و ماژولها استفاده کنید. در این پروژه شما از اسم ژایرو استفاده کردید که باید بگم این اسم درست نیست و حال انکه این پروژه جنبه آموزشی هم داره. اسم درست این ماژول Gayro و اسم کاملشم Gayroscope هستش و نه ژایرو. بسیار پسندیده هست اگه از اسم قطعه ای اطمینان نداری لطفا تو گوگل یه سرچ کنی بد نیست. درضمن من بشما زیاد ایراد نمیگیرم ممکن هست شما هم از مثلا استاد خودتون آموخته باشید و او هم همچنین الا آخر. موفق و پایدار باشید.

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

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

  • با عرض سلام وخسته نباشید،معذرت میخام میشه همین کدهارو روی آردینو مینی هم آپلود کرد واستفاده بشه یا نیاز به تغییراتی هم هست؟؟اگر بله چه تغییراتی؟؟

  • سلام و ممنون از سایت و آموزش های خوبتون ،
    من یه mpu6050 به صورت ماژول gy521 دارم برنامش درسته ولی تغییر مقادیر خروجی خیلی غیر منطقیه (یعنی خیلی زیاده) به نظرتون مشکل از کجا میتونه باشه ؟
    و سوال دوم اینکه ماژول gy521 امکان کالیبره شدن داره ؟
    خیلی ممنون