به نام خدا
تو این پست می خوام ساخت لابیرنت(Labyrinth) با آردوینو و کنترل اون رو با جوی استیک و سروو آموزش بدم.
لابیرنت (Labyrinth یا ماز چوبی) یک بازی مبتنی بر تمرکز حواس است که در آن میبایست یک گوی فلزی را از نقطه شروع به نقطه پایان برسانید. وجود حفره های متعدد در مسیر گوی، باعث میشود که با کوچکترین خطایی، شما بازنده بازی باشید. لذا برای پیروز شدن در این بازی، نیاز به هماهنگی کامل چشم و دست دارید. همین الان بازیهای ویدئویی را کنار بگدارید و تمرکز حواس خود را به چالش بکشید. شما میتوانید در جمع دوستان و آشنایان، لابیرنت را به عنوان بازی به یک رقابت داغ تبدیل کنید.
جالب است بدانید که برای این بازی رکوردهای جهانی با زمان های خیلی کم،ثبت شده است و برخی افراد حرفه ای،این بازی را با دوگوی همزمان انجام میدهند. شاخص ارزش بازی لابیرنت در سایتهای خارجی، ۸٫۴ از ۱۰ و شاخص آی کیوی آن ۱۶۱ از ۲۰۰ میباشد. لازم به ذکر است که با استفاده از برد ” آردوینو Arduino ” میتوان لابیرنت یا ماز چوبی را بوسیله یک دسته کنترل و یا حتی گوشی تلفن همراه، انجام داد. این بازی با یک جوی استیک در دو محور X و Y کنترل میشود.
موارد لازم برای ساخت لابیرنت (Labyrinth) :
- آردوینو (Arduino) – یک عدد — خرید از فروشگاه
- جوی استیک – یک عدد — خرید از فروشگاه
- سروو موتور – دو عدد (مدلش فرقی نداره اما باید مثل هم باشن) — خرید از فروشگاه
- برد لابیرنت – یک عدد — خرید از فروشگاه
اتصالات :
- سیم زرد سرووی ۱ به پین ۹ آردوینو
- سیم زرد سرووی ۲ به پین ۱۰ آردوینو
- سیم های قرمز سرووها به Vcc 5V آردوینو
- سیم های قهوه ای سرووها به Gnd آردوینو
- Gnd جوی استیک به Gnd آردوینو
- Vcc جوی استیک به Vcc 5v آردوینو
- پین X (محور X) جوی استیک به پین A0 آردوینو
- پین Y (محور Y) جوی استیک به پین A1 آردوینو
اینم کد :
#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]); }
فراخوانی کتابخانه ی سروو
#include <Servo.h>
ساخت دو شی از جنس سروو با نام xservo و yservo
Servo xservo; Servo yservo;
شروع حلقه ی محدود Setup
void setup () {
معرفی کردن پین هایی که سرووها به آنها متصل هستند و پایان حلقه ی Setup
xservo.attach(10); yservo.attach(9); }
شروع حلقه ی loop
void loop () {
معرفی دو متغییر با نام joystek
int joystek[2];
خواندن مقدار آنالوگ A0 و ریختن مقدار آن درون رجیستر joystek[1]
joystek[1] = analogRead(A0);
خواندن مقدار آنالوگ A1 و ریختن مقدار آن درون رجیستر joystek[2]
joystek[2] = analogRead(A1);
تناسب بندی بین دو مقدار رجیستر ها و عددی بین ۰ تا ۲۰ برای سروو
joystek[1] = map(joystek[1], 0, 1023, 0, 20); joystek[2] = map(joystek[2], 0, 1023, 0, 20);
دستور دادن به سروو برای رفتن به موقعیت خود بر اساس میزان حرکت جوی استیک و پایان حلقه ی loop
xservo.write(joystek[1]); yservo.write(joystek[2]); }
اگر از زاویه های چرخش سرووها راضی نیستید ، میتونید عدد دلخواه رو در قسمت تابع map ، به جای عدد ۲۰ را بنویسید….
ویدیو راه اندازی لابیرنت با آردوینو Arduino
لطفا شیوه نصب سروو موتورها را هم بفرمایید. بازیه جالبیه بخصوص اینکه با آردوینو ترکیب میشه
در قسمت اتصالات نوشته شده. شما میتونید با کمی آزمایش و خطا محل نصب سروو ها رو تایین کنید.
آقا ما اینو راه اندازی کردیم … عجب فازی می ده … انگار داری هواپیمای مسافربری رو کنترل می کنی … راجع لابیرنت بازم اگه آموزشی هست لطفا بذارین … ما تازه داریم میفهمیم این بازی چقدر جا برای خلاقیت داره … دست شما درد نکنه
خواهش می کنم…
متشکرم از سایت خوبی که دارید
سلام ممنون از سایت خوبتون. موفق باشید.
باید بازی جالبی باشه ممنون از مطلب جالبتون
با سلام
از توجه شما ممنونم.
ممنون از سایت خوبتون
سپاس از همراهی شما