به نام خدا
در این پست قصد دارم آموزش کنترل لابیرنت Labyrinth که یک بازی حساس و تمرکز حواس میباشد؛ با ژیروسکوپ MPU6050 رو براتون بزارم. این بازی بسیار مهیج هست مخصوصا زمانی که با سنسور ژیروسکوپ ترکیب میشه… لذت بخش ترین قسمتش همین جاست که شما میتونید ژیروسکوپ MPU6050 رو به یک دستکش متصل کنید و بعد دستکش رو دستتون کنید. با کج کردن دستتون در دو محور X و Y لابیرنت هم مطابق با دست شما کج میشه… لابیرنت(Labyrinth) یک بازی بسیارجذاب میباشد که تمرکز حواس و تعادل شما را به چالش می کشد. شما باید یک گوی فلزی را از موانع متعدد عبور دهید و به خط پایان برسانید. موانعی که سر راه شما هستند عبارتند از دیوارها و حفره هایی که با کوچکترین خطا، شما را مجبور میکنند بازی را از ابتدا شروع کنید. در ادامه با مرجع تخصصی آردوینو، دیجی اسپارک همراه باشید.
سنسور شتاب و ژایرو MPU6050
ماژول شتاب و ژایرو MPU6050 از یک چیپ سیلیکونی با قابلیت پردازش دیجیتال بهره میبرد. این ماژول توانایی ترسیم الگوریتم های پیچیده ۹ محوری را دارد. در استفاده از سنسورهای مختلف در انواع مدارها به هنگام تنظیمات محور افقی، کاربر با تنظیمات و مشکلات زیادی روبرو خواهد بود. اما با استفاده از ماژول شتاب و ژایرو MPU6050 بسیار کوچک و سبک تمامی این مشکل ها حل خواهند شد. همانطور که در بخش مشخصات فنی مشاهده نمودید، کاربر امکان مشخص کردن بازه کاری را در ۴ حالت مختلف برای هر دو قسمت شتاب سنج و ژیروسکوپ را دارد. ماژول GY521 با تجمیع و ترکیب یک ژیروسکوپ ۳ محور با یک شتاب سنج ۳ محور روی یک چیپ سیلیکونی و بهره گیری از یک پردازشگر دیجیتال حرکت، قادر است الگوریتم پیچیده ۹ محوری را اجرا کند. این ویژگی بسیاری از مشکلاتی را که در تنظیم محور افقی در سنسورهای مجزا ایجاد می گردد را بر طرف خواهد ساخت. برای دستیابی به دقت بالای اندازه گیری در حرکت های کند و حرکتهای سریع در سنسور MPU6050 امکانی فراهم شده تا کاربر بتواند بازه اندازه گیری را متناسب با شتاب یا سرعت زاویه ای تغییر دهد.
مشخصات ژیروسکوپ MPU6050:
۱- خروجی دیجیتال برای سه محور x, y و z در رنج قابل برنامه ریزی ±۲۵۰، ±۵۰۰، ±۱۰۰۰ و ۲۰۰۰± درجه بر ثانیه
۲- نمونه گیری داده ها به صورت ۱۶ بیتی
۳- دارای فیلتر قابل برنامه ریزی دیجیتال
۴- جریان مصرفی بسیار ناچیز در محدوده ۵ میکروآمپر تا ۳٫۶ میلی آمپر
مشخصات شتاب سنج:
۱- خروجی دیجیتال برای سه محور x, y و z در رنج قابل برنامه ریزی ±۲، ±۴، ±۸ و ۱۶± درجه بر ثانیه
۲- نمونه گیری داده ها به صورت ۱۶ بیتی
۳- جریان مصرفی در حدود ۵۰۰ میکروآمپر
۴- تشخیص ضربه و وقفه های در حال برنامه ریزی
۵- تحمل شوک های مکانیکی تا ۱۰ KG
سروو موتور Servo Motor
سروو نوعی از موتورهای الکتریکی است که با هدف بکارگیری در سیستمهای کنترل فیدبک طراحی میشود. لختی (اینرسی) در این موتورها پایین بوده و در نتیجه تغییر سرعت در این موتورها بسیار سریع است. برای مشاهده ی آموزش کامل راه اندازی سروو موتور و تولید PWM با آردوینو کلیک کنید.
اتصالات :
- SCL ژیروسکوپ به پین A5 آردوینو
- SDA ژیروسکوپ به پین A4 آردوینو
- Vcc ماژول و سیم قرمز سروو ها به ۵v آردوینو
- Gnd ماژول و سیم قهوه ای سروو ها به Gnd آردوینو
- سیم زرد سروو ها به پین ۹ و ۱۰ آردوینو
کد نویسی :
/* MPU6050 with Servoes by hossein fahimi*/ #include <Servo.h> #include "MPU6050.h" #include "Wire.h" MPU6050 mpu; int16_t ax, ay, az; int16_t gx, gy, gz; Servo xservo; Servo yservo; int xdeg, ydeg; void setup() { Serial.begin(9600); Wire.begin(); mpu.initialize(); xservo.attach(9); yservo.attach(10); } void loop() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); xdeg = map(ax, -10000, +10000, 0, 180); ydeg = map(ay, -10000, +10000, 0, 180); xservo.write(xdeg); yservo.write(ydeg); delay(100); }
خب حالا کدها رو روی آردوینو آپلود کنید و بعد از انجام دادن اتصالات ، میتونید با کج کردن ژیروسکوپ در محور های X و Y ، لابیرنت را هم کنترل کنید.
جهت انجام این آزمایش به چهار کالا نیاز دارید که من در زیر لینک خرید آن ها را برای شما قرار داده ام که میتوانید از فروشگاه دانشجو کیت تهیه کنید:
امیدوارم از این آموزش لذت ببرید 🙂
سلام ممنون برای سایت خوبتون من هرچی اپلود میکنم اینو
ارور میده #include
با سلام و تشکر از شما
لطفا ارور دریافتی را به صورت کامل کپی و ارسال کنید، تا بتوانم راهنمایی کنم.
سلام ببخشید آیا نرم افزار هست که بشه این سنسور GY521رو داخل شبیه سازی کرد؟
با سلام و تشکر از شما
نرم افزار برای شبیه سازی سنسورهای حرکتی زیاد هست. بنده کار نکردهام، پیشنهاد میکنم گوگل کنید و اگر با هر کدام کار کردید از همین طریق تجربه کاربریتان را با دیگر کاربران به اشتراک بگذارید.