در این سری از آموزش های آردوینو می خواهیم پروژه راه اندازی لابیرنت(Labyrinth) توسط برد آردوینو و کنترل این بازی توسط جوی استیک را شرح دهیم. همانطور که می دانید لابیرنت یک بازی مبتنی بر تمرکز و حواس است به طوری که باید یک گوی فلزی را از یک سمت لابیرنت(نقطه شروع) به سمت دیگر آن(نقطه پایان) برسانیم. در صورتی که تمرکز خود را نتوانید کنترل یا جمع کنید با کوچکترین خطایی گوی فلزی به داخل حفره هایی که بر روی لابیرنت تعبیه شده است، می افتد و بازنده می شوید.
تا حالا فکر کرده اید، چگونه یک لابرینت که از جوی استیک کنترل شود بسازید قطعا با خودتان فکر کرده اید که این پروژه خیلی سخت است و منصرف از ساختن آن شده اید. ولی در این پروژه نحوه ساخت یک لابیرنت که توسط جوی استیک کنترل می شود را یاد خواهید گرفت و متوجه سادگی کار خواهید شد. پس برای جلوگیری از اتلاف وقت سریعا شروع به انجام پروژه خواهیم کرد.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
سروو موتور میکرو SG90 مدل 180 درجه | 2 عدد |
جوی استیک | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال تجهیزات به برد آردوینو
1. سیم زرد سروموتور ۱ را به پین 9 دیجیتال آردوینو اتصال دهید
2. سیم زرد سروموتور 2 را به پین 10 دیجیتال آردوینو متصل کنید.
3. سیم های قرمز هر دو سروموتور را به پین 5ولت آردوینو وصل نمائید.
4. سیم های قهوه ای یا مشکی هر دو سروموتور را به پین زمین یا GND آردوینو اتصال دهید.
5. در این مرحله پایه های VCC و GND جوی استیک را به ترتیب به پین زمین و 5ولت آردوینو متصل کنید.
6. پین X یا محور X جوی استیک را به پین A0 آردوینو وصل نمائید.
7. در نهایت پین Y یا محور Y جوی استیک را به پین A1 آردوینو اتصال دهید.
دقت شود که سروموتورها با اختلاف 90درجه با هم به برد لابیرنت اتصال داده می شوند.
برنامه نویسی پروژه
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <Servo.h> Servo xservo; Servo yservo; void setup () { xservo.attach(10); yservo.attach(9); } void loop () { int joystek[2]; joystek[1] = analogRead(A0); joystek[2] = analogRead(A1); joystek[1] = map(joystek[1], 0, 1023, 0, 20); joystek[2] = map(joystek[2], 0, 1023, 0, 20); xservo.write(joystek[1]); yservo.write(joystek[2]); } |
سلام می تونی بامدلی دیگر از سرو موتور استفاده کنیم با همین برنامه لطفا جواب بدید ممنون
کد اردینو برای دو تا سرو موتور هست یا موتونم با یک عدد سرو موتور راه بندازم لطفا جواب بدین مخوام درست کنم
سلام دوست عزیز
تفاوت اصلی سرو موتورها در میزان آزادی یا زاویه عملکرد آنها در رنج های 90، 180 و 360 درجه است. که شما باید برای این پروژه از سرو موتور 90 درجه استفاده کنید و حتما باید از دو سرو موتور استفاده شود.