إنشاء روبوت المنافسة Roborace

تفاصيل Roborace


صورة

Roborace هي مسابقة تتنافس فيها السيارات الآلية على مضمار حلقة خاص. يمكنك رسم بعض التشابه بين Roborace و Formula 1 Racing ، باستثناء نقطتين.
  • أولاً ، بدلاً من سيارات السباق واسعة النطاق ، يتم تضمين طرازات سيارات أصغر وتصميمات أصلية مع قيود شاملة ووزن (الحد الأقصى للعرض = 25x50 سم والوزن حتى 3 كجم).
  • ثانيًا ، بدلاً من الطيارين ، يتم التحكم في السيارة عن طريق كمبيوتر على متن الطائرة ، والذي يحلل قراءات أجهزة الاستشعار المختلفة ويوجه السيارة على المسار ، ويحدد سرعة الحركة ، ويمنع الاصطدامات بالعقبات والمنافسين. في الواقع يتم تحديد "سلوك" السيارة على المسار من خلال برنامج التحكم في الكمبيوتر على متن الطائرة.

يقام Roborace على شكل بطولة تتكون من مراحل ، والتي يتم تنظيمها في مدن مختلفة من روسيا البيضاء وخارجها. تشارك كل من الإنشاءات على مستوى الدخول (على سبيل المثال ، بناءً على مُنشئ من نوع LEGO) والأجهزة الروبوتية المعقدة في البطولة. يتم تشكيل لوائح المنافسة بطريقة تغطي أوسع نطاق ممكن من خصائص وقدرات الهياكل الروبوتية.

الشكل 1 - مسار روبوتات السباق:

صورة

ضع في اعتبارك المسار الموضح في الشكل 1 ، حيث يتحرك الروبوت. العناصر الإلزامية هي خطوط وجدران سوداء. بناءً على ذلك ، يمكنك بناء إستراتيجية لتحريك الروبوت على طول المسار: على سبيل المثال ، تجهيز الروبوت بأجهزة استشعار الخط الأسود واستخدام خطوط المسار للتنقل ، أو تثبيت محددات المدى لاكتشاف العوائق والتحرك على طول الجدران.

تقدم هذه المقالة أحد الروبوتات التي قمت بتطويرها لـ Roborace وفقًا للاستراتيجية الثانية (الحركة بناءً على قراءات محددات المدى).

مراحل إنشاء الروبوت


يبدأ إنشاء روبوت لـ Roborace باختيار الهيكل. تقدم المتاجر الآن مجموعة كبيرة من المنصات المجنزرة والعجلات. أوصي بالتركيز على التصميم الكلاسيكي عندما تكون العجلات الخلفية مدفوعة بمحرك كهربائي وتكون العجلات الأمامية مدفوعة بمحرك مؤازر . يوضح الشكل 2 روبوت لـ Roborace ، تم بناؤه وفقًا لمخطط مماثل.

الشكل 2 - الروبوت:

صورة

كنت محظوظًا بشراء نموذج من نادي محلي لمصممي الراديو مقابل القليل من المال (يمكن للقراء محاولة القيام بنفس الشيء في منطقتهم: عادة ما يكون لديهم الكثير من النماذج القديمة). نظرًا لأن النموذج الذي تم شراؤه لم يكن يحتوي على محرك جر ، فقد تم تركيب محرك 12 فولت تم شراؤه عليه. يمكنك أيضًا استخدام لعبة عادية: عادة ما تكون عنيدة تمامًا وتحتاج فقط إلى تعديل التوجيه.

نظرًا لأنه في حالتي تم تثبيت المؤازرة بالفعل ، لم تكن هناك مشاكل معها.

الخطوة التالية هي اختيار لوحة التحكم. هناك العديد من الخيارات. لقد اخترت Arduino كخيار أسهل. ويمكن أن يوصى القارئ بنفس الشيء ، خاصة مع قلة الخبرة. بناءً على خبرتي الواسعة إلى حد ما ، بالنسبة لمثل هذه الروبوتات ، فإن وحدات التحكم الدقيقة 8 بت المعتادة كافية. لذلك ، إذا كنت لا تخطط لاستخدام كاميرا لتتبع تحركات الروبوت ، فلا تعقده بمعالج أكثر قوة.

يمكن توصيل محرك الأقراص المؤازر مباشرةً بـ Arduino - على سبيل المثال ، من خلال درع المستشعر الموضح في الشكل 3. كما أنه مناسب أيضًا لتوصيل أجهزة الاستشعار به.

الشكل 3 - درع المستشعر - الإصدار 4:

صورة

لا يمكن توصيل المحرك مباشرة بـ Arduino. تحتاج إلى استخدام برنامج تشغيل المحرك الخاص. الآن هناك الكثير من المتاح ، وهناك تعليمات للاتصال. استخدمت محرك المحرك الذي تم تطويره في مختبرنا (الشكل 4).

الشكل 4 - سائق المحرك:

صورة

في مسابقات الروبوت ، يجب أن تولي الكثير من الاهتمام للبطاريات. أستخدم بطاريات بوليمر الليثيوم. لقد أثبتوا أنفسهم بشكل جيد للغاية. أحد الاختراقات التي أستخدمها في روبوتي يتعلق بمحول الجهد. محول Arduino الأصلي ليس جيدًا جدًا ، لذا من الجيد استخدام منظم Step-Down لتوفير طاقة البطارية . بالطبع ، يمكنك استخدام محول خطي تقليدي.

أهم جزء من الروبوت هو أجهزة الاستشعار - ما يزودها بمعلومات عن العالم والعقبات وعن الروبوتات الأخرى. في فئة السعر المتوسط ​​، يمكننا الاختيار من أجهزة الاستشعار بالموجات فوق الصوتية والأشعة تحت الحمراء. في روبوتي ، أستخدم مستشعرات الأشعة تحت الحمراء GP2Y0A02YK0F. لا أحب أجهزة الاستشعار بالموجات فوق الصوتية نظرًا لحقيقة أن أحد أجهزة الاستشعار قد يكون مزعجًا مع جهاز آخر. على سبيل المثال ، كان لدي مثل هذه المواقف: أرسل المستشعر الأيمن إشارة ، واستقبلها المستشعر الأيسر. ما زلت أعمل على وضع وإدارة أجهزة الاستشعار بالموجات فوق الصوتية بشكل صحيح. إن أمل إطلاقها يتغذى باستمرار من سعرها.

يحتوي نموذج الروبوت المعروض هنا على ثلاثة أجهزة استشعار بالأشعة تحت الحمراء. يمكن رؤية المستشعرات في الشكل 2. يتم تركيبها عميقًا في السكن لسببين:
  1. لتقليل المنطقة الميتة للمستشعر ، والتي يبلغ طولها 20 سم في هذا النموذج ؛
  2. يحمي جسم الروبوت المستشعرات من التلف الميكانيكي أثناء التصادم مع الروبوتات الأخرى.

يتم تثبيت أجهزة الاستشعار الجانبية بزاوية 45 درجة. حسنًا ، إذا كان تصميم الروبوت ينص على تعديل زاوية تركيبه.

يمكن رؤية المخطط العام للروبوت في الشكل 5.

الشكل 5 - المخطط العام للروبوت:

صورة

برمجة الروبوت


نظرًا لأن الروبوت يستخدم Arduino ، يتم تنفيذ البرمجة باستخدام Arduino IDE. برنامج الروبوت عبارة عن حلقة مغلقة تتكون من الكتل التالية:
  1. تصفية قراءات أجهزة الاستشعار ؛
  2. حساب زاوية وسرعة الروبوت ؛
  3. نقل إشارات التحكم إلى الآليات.

في هذا الهيكل ، لا توجد كتلة لتلقي المعلومات من أجهزة الاستشعار. نظرًا لأن أجهزة الاستشعار تُرجع إشارة تمثيلية ، فإن Arduino IDE يحتوي على وظيفة analogWrite (). تعمل هذه الوظيفة بشكل رائع إذا كانت سرعة القياس غير مهمة. ولكن بما أن الروبوت تم تصميمه للمنافسة ، فقد تقرر وضع معالجة أجهزة الاستشعار في المقاطعة.

جميع لوحات Arduino المبنية على متحكم ATmega لديها القدرة على إجراء قياسات ADC في الوضع التلقائي. تحتاج إلى تكوين هذا الوضع مرة واحدة ، ثم استخدم القيم التي تم الحصول عليها. ونتيجة لذلك ، تتحكم وحدة التحكم باستمرار في أجهزة الاستشعار ، دون إضاعة وقت وحدة المعالجة المركزية. تتم تصفية قراءات المستشعر بواسطة مرشح متوسط ​​مع نافذة من ثلاثة عناصر.

للتحرك على طول الطريق السريع ، تم تطوير الخوارزمية التالية. يقارن الروبوت المسافات بين الجدران اليمنى واليسرى ، ووفقًا لذلك يتحول العجلات في الاتجاه المطلوب. إذا لم تكن هناك عقبات أمام الروبوت ، تزداد السرعة ، ولكن تنخفض أيضًا أقصى زاوية دوران ممكنة للعجلات. يعد ذلك ضروريًا حتى يسافر الروبوت بشكل مستقيم على الأقسام المستقيمة. عندما يتم الكشف عن عائق ، تزداد زاوية دوران العجلات ، ويتباطأ الروبوت.

هناك بالطبع مشاكل لم يتم حلها. على سبيل المثال ، لا يعرف الروبوت انحناء المنعطف ، لذلك يتباطأ قبل كل دور.

يمكنك عرض كود المشروع على جيثب .

Source: https://habr.com/ru/post/ar381775/


All Articles