روبوت السومو

 

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

sumo-mbot

الأدوات المطلوبة:

 

sumo-mbot

mBot Kit (عدد 2)

 

فكرة المشروع

سنقوم في هذا المشروع باستخدام مستشعر الموجات فوق الصوتية ووحدة تتبع المسار. بحيث يتحرك الروبوت على ساحة المعركة دون الخروج من الحدود المرسومة باللون الأسود باستخدام مستشعر تتبع المسار.

 

sumo-mbot

 

يعطي المستشعر قراءة تساوي 3 إذا كان على سطح أبيض وقراءة تساوي 0 إذا كان على سطح أسود، وقيم تساوي 1 أو 2 إذا كانت إحدى جهتي المستشعر على اللون الأسود والأخرى على الأبيض.  لفهم كيفية عمل مستشعر وحدة المسار راجع مشروع روبوت تفادي السقوط

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

رصد حافة الطاولة رصد الخصم الفعل
نعم نعم الانعطاف يمينًا أو يسارًا
نعم لا الانعطاف يمينًا أو يسارًا
لا نعم زيادة السرعة (هجوم)
لا لا التحرك للأمام

 

 

الكود البرمجي

 

سنحتاج عند برمجة روبوت السومو إلى وضع الأوامر باعتبار قراءة مستشعر تتبع المسار ومستشعر الموجات فوق الصوتية.

سنقوم بدايةً بوضع مجموعة من الأوامر داخل حلقة تكرار Repeat until ، يقوم هذا الأمر بتنفيذ الأوامر التي بداخل الحلقة إلى أن يتحقق الشرط الذي يتم وضعه
وهنا قمنا باختيار الشرط أن تساوي قراءة مستشعر تتبع المسار 3
(عندما تكون القيمة 3 فذلك يعني أن كلا المستشعرين في وحدة تتبع المسار على سطح أبيض أي أن الروبوت لم يصل لحافة ساحة القتال)

sumo-mbot

 

الأوامر التي بداخل حلقة repeat until ستعتمد على المسافة على قراءة مستشعر الموجات فوق الصوتية ، أي إذا كان الروبوت يسير على السطح الأبيض سننتقل لاختبار شرط المسافة
وهو إذا كانت المسافة بين الروبوت والخصم أقل من 12 سم سيقوم بالهجوم عليه عن طريق زيادة السرعة إلى 255،  وإن لم تكن المسافة كذلك يستمر الروبوت في الحركة للأمام بسرعة متوسطة

 

sumo-mbot

نعود إلى شرط مستشعر تتبع المسار
إذا تحقق الشرط أن القراءة أصغر من 3، فذلك يعني أن الروبوت لم يعد على السطح الأبيض أي وصل إلى حافة ساحة القتال
فهنا يتم تنفيذ الأوامر بعد else،  وهي الحركة للخلف لمدة ثانيتين وفائدة الأمر wait  أن يسمح له بالرجوع مسافة كافية تمكنه من الانعطاف

sumo-mbot

 

بعد أن يعود الروبوت للخلف هل ينعطف يمينا أو يسارًا؟
ليتمكن الروبوت من اتخاذ القرار
سنستخدم الأمر pick random من 1 إلى 10

sumo-mbot

 

وهذا الأمر يقوم في كل مرة بأخذ رقم عشوائي بين العددين اللذان تم اختيارهما
وتبعا لهذا الرقم قمنا بوضع شرط إذا كان الرقم أقل من 5 ينعطف الروبوت لليمين
وإلا فينعطف لليسار

sumo-mbot

قمنا بوضع أمر التأخير الزمني.wait ليكون لدى الروبوت زمن كافي للانعطاف

الكود البرمجي

 

sumo-mbot

بذلك سيكون الروبوت جاهزًا للمشاركة في مسابقة السومو قم بتنزيل الكود على روبوت آخر لتبدأ المنافسة.
لمزيد من المعلومات حول الأوامر البرمجية الأخرى يمكنك مراجعة درس جولة حول الأوامر البرمجية.

 




تنصيب برنامج mBlock

يمثل برنامج mBlock منصة مفتوحة المصدر يمكن من خلالها تصميم الألعاب والرسوم والمتحركة و برمجة الروبوت والأردوينو باستخدام البرمجة الرسومية المبنية على Scratch
سنقوم في هذا الدرس بالتعرف على واجهة البرنامج وطرق ربط الروبوت بجهاز الكمبيوتر

makeblock-mblock

سنقوم بتطبيق خطوات هذا الدرس على mBot Kit كمثال ويمكن أن تطبق على جميع اللوحات الرئيسية لمنتجات MakeBlock

الأدوات المطلوبة:

 

makeblock-mblock

mBot Kit

تنصيب برنامج mBlock

يتوفر برنامج mBlock بشكل مجاني  للتنزيل من الموقع http://www.mblock.cc
اختر النسخة المتوافقة مع نظام التشغيل لجهازك (ويندوز، MAC، لينيكس)

makeblock-mblock

قم باتباع خطوات تنصيب البرنامج عند فتح ملف التنزيل
ستظهر لك واجهة البرنامج بهذا الشكل

makeblock-mblock

ربط اللوحة الرئيسية للروبوت

 

1- عن طريق كيبل USB

وهذه الطريقة التي يمكن من خلالها تنزيل البرنامج على اللوحة الرئيسية
قم بفتح برنامج mBlock واختر نوع الروبوت/ اللوحة الرئيسية من قائمة Board

makeblock-mblock

عند استخدام mBlock لأول مرة ستحتاج إلى تثبيت  Arduino driver من قائمة connect  يقوم ذلك بتثبيت البرامج اللازمة للتواصل بين جهاز الكمبيوتر ولوحة الأردوينو/الروبوت.
إذا كنت من مستخدمي نظام Mac OS Sierra قد تحتاج إلى تغيير إعدادات الأمان والخصوصية باتباع الخطوات على الرابط التالي

لمستخدمي Windowes
من قائمة Connect > Serial Port
واختر اسم المنفذ الخاص بالروبوت مثلا COM 5

makeblock-mblock

 

إذا كنت تستخدم نظام Mac  فاختر قائمة Connect >serial Port
وسيظهر العنوان مثل /tty.usbserial

makeblock-mblock

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

 

 

ربط اللوحة الرئيسية للروبوت

 

2- الربط عبر 2.4G dongle

يمكن من خلال هذه الطريقة التحكم بالروبوت لاسلكيا باستخدم dongle خاص بجهاز الكمبيوتر ووحدة 2.4G المتصلة بالروبوت

 

makeblock-mblock

قم بتوصيل وحدة 2.4G باللوحة الرئيسية واضغط على زر الطاقة

 

makeblock-mblock

قم بالضغط على الزر العلوي الموجود في وحدة 2.4G ستتحول إضاءة LED من وميض متقطع إلى سريع خلال ذلك قم بتوصيل dongle  إلى جهاز الكمبيوتر
يجب أن تتحول إضاءة LED إلى إضاءة ثابتة

 

makeblock-mblock

 

قم باختيار قائمة Connect   من الشريط  العلوي
2.4G Serial > Connect

makeblock-mblock

 

الآن يمكنك التحكم بالروبوت الخاص بك لاسلكيا

 

ربط اللوحة الرئيسية للروبوت

 

3- الربط عبر البلوتوث

يمكن ربط الروبوت/ اللوحة الرئيسية بجهاز الكمبيوتر عبر البلوتوث
قد لا تعمل هذه الطريقة بصورة مستقرة بسبب اختلاف رقاقات البلوتوث بين أجهزة الكمبيوتر وأنظمة التشغيل
لتجربة ذلك تحتاج إلى جهاز كمبيوتر يدعم البلوتوث الدخول إلى إعدادات النظام وتفعيل خاصية البلوتوث

makeblock-mblock

لمستخدمي Windows
اختر قائمة connect
Bluetooth > Discover
حتى تظهر نافذة منبثقة بأجهزة البلوتوث المكتشفة . قد يستغرق ذلك 60 ثانية

makeblock-mblock

 

حدد الاسم الذي ترغب في الاتصال به وفق الجهاز الذي تستخدمه
مثلا سيظهر لك “MakeBlock”
انقر فوق “نعم” عند السؤال عن  عن “الاقتران” للسماح للكمبيوتر بالتواصل مع الروبوت

makeblock-mblock

 

لمستخدمي MAC
عند ربط الروبوت عبر البلوتوث للمرة الأولى ستحتاج إلى اختيار رمز البلوتوث < Bluetooth Preference

makeblock-mblock

انقر على زر الاقتران يمين اسم الجهاز

makeblock-mblock

ثم في واجهة mBlock اختر قائمة Connect
Serial Port
ثم اختر عنوان جهاز البلوتوث الخاص بك

 

makeblock-mblock