فهرست مطالب:

ربات آردوینو سومو: 5 قدم
ربات آردوینو سومو: 5 قدم

تصویری: ربات آردوینو سومو: 5 قدم

تصویری: ربات آردوینو سومو: 5 قدم
تصویری: How to Build Your Own Robotic Arm with Arduino Braccio #arduino #electronics #electrician #robot #ai 2024, جولای
Anonim
ربات آردوینو سومو
ربات آردوینو سومو

قبل از اینکه شروع کنیم

ربات سومو چیست؟

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

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

ایده:

یک ربات با مشخصات خاص و متناسب با قوانین آن رقابت (سومو) بسازید ، این ربات باید در ابعاد دقیق برای مبارزه و زنده ماندن باشد تا به هیچ وجه از رینگ خارج نشود.

بنابراین بیایید نگاهی به قوانین رقابت روبات سومو داشته باشیم:

من برخی از نقش های مهمی را که باید هنگام ساخت SUMO خود در نظر بگیرید ، توضیح خواهم داد ، همچنین ممکن است به شما کمک کند ایده خود را بدون جزئیات عمیق تصور و نوآوری کنید.

1. ابعاد: حداکثر عرض 20 سانتی متر ، حداکثر طول 20 سانتی متر ، ارتفاع مشخص نشده است.

2. شکل: شکل ربات می تواند پس از شروع مسابقه قابل تغییر باشد ، اما بدون حفظ اجزای جدا نشدنی یک هدف اصلی.

3. وزن: از 3 کیلوگرم تجاوز نمی کند.

4- ربات باید خودکنترلی باشد.

مرحله 1: اجزاء

Image
Image
موارد استفاده برای هر جزء
موارد استفاده برای هر جزء

1 آردوینو Ano3

2 موتور DC

1 پل L298N Dual H برای آردوینو

1 سنسور اولتراسونیک

2 IR TCRT5000

1 باتری 9 ولت

باتری AA 4 * 1.5 قطعه + باتری خانه

4 چرخ ربات

سیم های جهنده

مرحله 2: استفاده برای هر جزء

موارد استفاده برای هر جزء
موارد استفاده برای هر جزء
موارد استفاده برای هر جزء
موارد استفاده برای هر جزء

اکنون اجزای مورد نیاز را داریم ، بنابراین اجازه دهید جزئیات را بررسی کنیم تا بدانیم برای چه مواردی استفاده می شود..

1- آردوینو آنو 3

این یک برد اصلی است که تمام قسمت ها را کنترل کرده و آن را به هم متصل می کند

2- موتور DC

که به مانیتور و حرکت ربات در حلقه COMPETING کمک می کند

4- L298N Dual H Bridge برای آردوینو

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

5- سنسور اولتراسونیک

سنسور اولتراسونیک برای مکان یابی ربات حریف استفاده می شود و معمولاً در بالای ربات قرار می گیرد.

6- IR TCRT5000

همانطور که قبلاً اشاره کردیم ، حلقه مسابقه در اندازه خاصی طراحی شده است و دارای دو رنگ است ، رنگ مشکی و قاب سفید است. شرکت کننده نباید بیرون برود. بنابراین ، ما از سنسور IR برای اطمینان از خارج نشدن ربات از حلقه استفاده می کنیم. این سنسور توانایی تشخیص رنگ حلقه را دارد).

7- باتری 9 ولت

از برد اصلی (آردوینو) با ولتاژ مهم پشتیبانی می کند.

8- باتری AA 4 * 1.5 قطعه ولت + باتری خانه

از دو موتور (موتور DC) با ولتاژ مهم پشتیبانی می کند و باید از هم جدا شود تا نیروی کامل را به چرخ ها بدهد.

9- سیم های بلوز

مرحله 3: طراحی

طرح
طرح
طرح
طرح

من دو طرح روبات سومو با استفاده از طرح سه بعدی Google ایجاد کرده ام ، زیرا دوست دارم قبل از اینکه قطعاتی از اکریلیک را بر روی برش لیزری برش دهم ، مدل های کاغذی روبات هایم را ایجاد کنم. برای تأیید اینکه همه قسمتها به درستی با هم قرار می گیرند ، مهم است که مدلهای کاغذی با اندازه دقیق نقشه ها چاپ شوند.

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

به منظور حساسیت بیشتر به وزن ربات ارسال شده یا سپس باتری ها را در جلوی ربات با سپر جلویی با زاویه 45 درجه به شکل ربات قرار دهید.

طرح 1 را از اینجا بارگیری کنید

طرح 2 را از اینجا بارگیری کنید

همچنین می توانید الگوی مدل کاغذی را بارگیری کنید

باز کردن فایل PDF با Adobe Acrobat Reader (نرم افزار توصیه شده)

مرحله 4: استراتژی بازی

Image
Image
استراتژی بازی
استراتژی بازی

همانطور که قبلاً اشاره کردیم که ربات باید توانایی خود را در کنترل خود داشته باشد ، بنابراین به ما این امکان را می دهد که آن را به بیش از یک روش برنامه ریزی کنیم ، بسته به اینکه شما می خواهید ربات مانند حلقه در رینگ بازی کند. واقعاً می خواهید بازی را ببرید

استراتژی بازی (1):

· ما ربات را به طور مداوم در اطراف خود می سازیم.

· ربات همیشه در حین چرخش فاصله را به طور مداوم اندازه گیری می کند.

· اگر فاصله حريف اندازه گيري شده كمتر از (مثلاً 10 سانتي متر) باشد ، بدين معناست كه حريف مستقيما روبوت ماست.

· ربات باید چرخش خود را متوقف کرده و سپس حمله را آغاز کند (با سرعت کامل به جلو حرکت کنید).

· روبات باید همیشه قرائت سنسورهای IR را بگیرد تا مطمئن شود که ما از مرز حلقه عبور نکرده ایم.

· در صورت وجود IR در رنگ سفید ، باید روبات را مستقیماً در جهت مخالف سنسور حرکت دهد (برای مثال: اگر سنسور جلو ، که نشان دهنده رنگ سفید ربات است به عقب حرکت کند)!

استراتژی بازی (2):

· در شروع ربات فاصله جلو را اندازه گیری کنید.

· ربات با همان فاصله اندازه گیری شده به عقب حرکت می کند.

· چرخش ربات متوقف شده و سپس حمله را ناگهان آغاز می کند (با تمام قدرت به جلو حرکت کنید).

· در صورت حریف ربات متصل باید 45 درجه بچرخد در حالی که برای زنده ماندن در صورت افتادن از حلقه.

· روبات باید همیشه قرائت سنسورهای IR را بگیرد تا مطمئن شود که ما از مرز حلقه عبور نکرده ایم.

· در صورت وجود IR در رنگ سفید ، باید روبات را مستقیماً در جهت مخالف سنسور حرکت دهد (برای مثال: اگر سنسور جلو ، که نشان دهنده رنگ سفید ربات است به عقب حرکت کند)!

مرحله 5: برنامه نویسی

برنامه نويسي
برنامه نويسي

لطفاً مدار و کد را بررسی کنید

* به روز رسانی 2019-03-26

ابتدا کتابخانه اولتراسونیک را از اینجا بارگیری کرده و نصب کنید:

github.com/ErickSimoes/Ultrasonic/blob/mas…

/*

توسط احمد آزوز

www.instructables.com/id/How-to-Make-Ardu…

ابتدا lib را از اینجا بارگیری کنید

github.com/ErickSimoes/Ultrasonic/blob/ma…

*/

#شامل اولتراسونیک. h

اولتراسونیک اولتراسونیک (4 ، 3) ؛

const int IN1 = 5 ؛

const int IN2 = 6 ؛ const int IN3 = 9؛ const int IN4 = 10 ؛ #تعریف سنسور IR_front A0 // سنسور جلو #تعریف_سنسور IR_back A1 // سنسور عقب int int؛

void setup ()

{Serial.begin (9600) ؛ تأخیر (5000) ؛ // طبق نقشهای sumo compat} حلقه void () {int IR_front = analogRead (IR_sensor_front) ؛ int IR_back = analogRead (IR_sensor_back) ؛ distance = ultrasonic.read ()؛ چرخش (200) ؛ // شروع چرخش if (فاصله <20) {توقف ()؛ while (فاصله 650 || IR_back> 650) {break؛} تاخیر (10)؛ } if (IR_front <650) // <650 به معنی خط سفید {توقف ()؛ تأخیر (50) ؛ BACKWARD (255) ؛ تأخیر (500) ؛ } if (IR_back <650) // {توقف ()؛ تأخیر (50) ؛ جلو (255) ؛ تأخیر (500) ؛ } /* ----------- اشکال زدایی ---------------- Serial.print (فراصوت. رتبه بندی (CM)) ؛ Serial.println ("cm") ؛ Serial.println ("IR جلو:")؛ Serial.println (IR_front) ؛ Serial.println ("IR back:")؛ Serial.println (IR_back) ؛ */

} //--------------------------------------------

void FORWARD (int Speed) {// وقتی می خواهیم به موتور اجازه دهیم به جلو حرکت کند ، // فقط این قسمت را در قسمت حلقه باطل کنید. analogWrite (IN1 ، سرعت) ؛ analogWrite (IN2 ، 0) ؛ analogWrite (IN3 ، 0) ؛ analogWrite (IN4 ، سرعت) ؛ } // ------------------------------------------------ باطل عقب (int Speed) {// وقتی می خواهیم به موتور اجازه دهیم به جلو حرکت کند ، // فقط این قسمت را در قسمت حلقه باطل کنید. analogWrite (IN1، 0)؛ analogWrite (IN2 ، سرعت) ؛ analogWrite (IN3 ، سرعت) ؛ analogWrite (IN4 ، 0) ؛ } // ------------------------------------------------ void ROTATE (int Speed) {// هنگامی که می خواهیم اجازه دهیم موتور بچرخد ، // فقط این قسمت را در قسمت حلقه باطل کنید. analogWrite (IN1 ، سرعت) ؛ analogWrite (IN2 ، 0) ؛ analogWrite (IN3 ، سرعت) ؛ analogWrite (IN4 ، 0) ؛ } // ------------------------------------------------ void Stop () {// وقتی می خواهیم به موتور توقف کنیم ، // فقط این قسمت را در قسمت حلقه باطل کنید. analogWrite (IN1 ، 0) ؛ analogWrite (IN2 ، 0) ؛ analogWrite (IN3 ، 0) ؛ analogWrite (IN4 ، 0) ؛ }

توصیه شده: