بسم الله الرحمن الرحيم
NXT برمجة وتصميم روبوتات
مجتمعنا العربي متراجع جداً في هذا الجيل من الناحية البرمجية ، فلو نظرنا الى المجتمع العربي هذه الايام ، لرأينا بان هناك القليل من المبرمجين العرب ، خصوصا مبرمجوا الروبوتات ، وهناك عدة اسباب تؤدي الى هذا التراجع منها اولا غلاء اجهزة الروبوت ، او عدم الدعم القوي للكثير من مبرمجي ومهتمي هذا المجال الا في بعض الدول القليلة ، كذلك عدم وجود مواضيع تهتم ببرمجة الروبوتات .
عموما ، بسبب قلة المواضيع البرمجية عن الروبوتات ، سوف ابدأ ان شاء الله بوضع ما تعلمته من برمجة الروبوتات البسيطة من نوع NXT
وهي ما عبارة الا عن اساسيات برمجة هذه الروبوتات ولما تعلمته من اساسيات .
ملاحظة هامة : بعض الصور لم اقم انا بتصويرها (( كصورة القرص او صورة الاسلاك او المعالج )) اما باقي الصور فهي مني انا .
وأسأل الله التوفيق في الشرح .
الروبوتات في تصميمها وصنعها تعتمد على شيئين ، لصناعة روبوت
1 – تصميم الروبوت : يجب تصميم الروبوت بتشكيل القطع وترتيبها ، وايضا تركيب الحساسات الخاصة بالروبوت ، وتصميم الروبوت وتشكيل قطعه ليس بالامر السهل فقد يستمر هذا العمل لمدة ساعتين او اكثر .
2 – برمجة الروبوت : وهي المرحلة الثانية التي تلي تصميم الروبوت وهي الاهم وايضا الاصعب ، حيث في هذه المرحلة يتم اعطاء المعلومات للروبوت ليقوم بعمل محدد .
1 – القطعة الاهم وهي بمثابة الروبوت نفسه سميت بالمعالج ، فهي تتحكم بالروبوت والحساسات وجميع منافذ الحساسات والمحركات يتم توصيلها لهذه القطعة والبرمجة تكون لهذه القطعة ، بدون هذه القطعة لا نستطيع عمل الروبوت .
2 – المحركات : وهذه القطع من القطع المهمة جدا في الروبوت ، حيث تقوم هذه المحركات بتحريك الروبوت . كالتقدم للامام او التراجع للخلف .
3 – الاسلاك : وهي اسلاك خاصة موصلة بين القطعة الاهم في الروبوت والحساسات والمحركات .
4– القطع الاخرى الموجودة جميعها هي خاصة بتصميم الروبوت وتشكيله
1 – حساس الاستشعار عن بعد : وهذا الحساس هو من اهم الحساسات وهو يتحسس ما اذا كان امام هذا الحساس جسم . فيستطيع كشفه .
2 – حساس الضوء : يعتبر من الحساسات المهمة . وهو يستكشف ما اذا كان هناك لون ما امام الروبوت ، وايضا يمكنه كشف لون الجسم ( اخضر ام احمر ام اصفر ) .... الخ .
3 – حساس اللمس : هذا الحساس يقوم بتحسس ما اذا قام جسم بملامسة هذا الحساس ، وهو في مقدمته كبسة ( زر ) خفيفة جدا وضغطها سهل ، حتى اذا لامس أي جسم لهذه الكبسة . فانها تُضغط وترسِل اشارة للروبوت بان هناك جسم لمس هذا الحساس .
4 – حساس الصوت : هذا الحساس هو حساس الصوت . فاذا كان هناك صوت في الغرفة او قريب من الروبوت ، يرسل اشارة للروبوت بان هناك صوت تم التقاطه من خلال هذا الروبوت .
ايضا يوجد حساسات اخرى .
تصميم الروبوت يتم من خلال تشكيل القطع الموجودة في الروبوت وتشكيلها لتصبح أي شكل يريده المصمم . ويجب ان لا ننسى تركيب الحساسات والمحركات ، سأقوم ان شاء الله بشرح طريقة الوصل للمحركات والحساسات .
اولا في هذه القطعة البالغة الاهمية كما ذكرت .. كما نرى يوجد هناك اربع فتحات في اسفلها ومرقمة 1 – 2 – 3 – 4 .... وايضا يوجد بالاعلى كما نرى في الصورة الاحرف
A – B – C
كما نرى ايضا كلمة USB
في كل من هذه الاحرف والارقام . هناك اماكن لتركيب الحساسات والمحركات .
اولا نقوم بتصميم الروبوت كاملا من حيث الشكل . اما تركيب المحركات والحساسات ، فبالطريقة التالية :
الارقام 1 – 2 – 3 – 4 ، كما ذكرنا هي منافذ ، هذه المنافذ الخاصة بتركيب الحساسات أي انك يجب ان تضع سلكاً في أي واحد من هذه الارقام . ثم تقوم بتركيب هذا السلك من الطرف الاخر بالحساس .
الحد الاقصى للحساسات التي يمكن تركيبها مرة واحدة هي 4 حساسات .
اما بالنسبة للاحرف
A – B – C
فهي منافذ خاصة بالمحركات ، حيث نستطيع ربط المحركات بهذه المنافذ ، والطريقة هي نفس طريقة تركيب الحساس ، نقوم بتوصيل جزء من السلك بمنفذ من المنافذ الثلاثة ، والطرف الاخر نقوم بتركيبه بالمحرك .
والحد الاقصى بالتأكيد لعدد المحركات هي 3 محركات .
أما بالنسبة لمنفذ
USB
فهذا المنفذ من خلال سلك مميز موجود في علبة الروبوت هذا السلك طرفه الاول نقوم بربطه بالروبوت والطرف الثاني الذي هو عبارة عن USB
نقوم بتركيبه في جهاز الكمبيوتر ، ومن خلال هذا الربط نستطيع برمجة الروبوت .
الروبوت يعمل على طاقة البطاريات ، ويمكن شحنه ايضا من خلال محول موجود في العلبة الخاصة به .
بعد ان نقوم بتركيب كامل المعدات الخاصة بالروبوت وتركيب الروبوت والحساسات والمحركات ننتقل الى قسم البرمجة .
شرح مختصر كامل عبارة عن صورة وتم توضيح الاماكن التي تم شرحها بالاعلى .
بخبرتي البسيطة بالروبوتات وبرمجتها ، سوف اقوم بشرح البرنامج الخاص ببرمجته بشكل مختصر ، لكن ليس باختصار شديد ، وسبب الاختصار هو ان البرنامج كبير جداً ولا استطيع شرحه كاملا .
اولا نقوم بتنصيب البرنامج الخاص به عن طريق القرص المدرج مع العلبة .
وتنصيب برنامج
LEGO MINDSTORMS NXT
1 – ادخل القرص في جهاز الكمبيوتر الخاص بك .
2 – اتبع خطوات التنصيب التالية .
(كل رقم في الصورة .. شرحه كما هو بالاسفل )
اولا : اداة تحريك الموتور :
1 – اختر المنافذ التي تريد لتشغيل المحركات المحددة .. فمثلا اردت تشغيل المحرك الذي في منفذ
A
اضافة الى المحرك الذي في المنفذ
B
مع بعضيهما ، فهذا الخيار هو لتحديد منافذ المحركات المطلوب تحريكها .
. نفس الخانة هي لتحديد منفذ الحساسات عند استعمال الادوات الخاصة بالحساسات
2 – اتجاه الحركة : وهو اختيار الاتجاه التحرك للأمام ، او للخلف ، او التوقف
3 – مستوى الانعطاف : وهو للتحرك يميناً او يساراً ، من خلال هذا الخيار يمكنك ان تغير اتجاه الروبوت بأن يذهب لليمين مثلا او الى اليسار .
4 – مستوى الطاقة / السرعة : وهو كمية الطاقة المرسلة من المعالج الى المحركات . فكلما ازدت الرقم ، ازدادت سرعة التحرك .
5 – مدة التحرك : وهي مدة التحرك ، مثلا تختار خيار الثواني ثم كتابة عدد الثواني التي ستكون مدة تحرك المحرك ان شاء الله ( ملاحظة : خيار
Unlimited
هو للتحرك الدائم الذي لا يتوقف )
6 – الخيار القادم : هذا الخيار يهتم ما اذا كانت هناك نفس الاداة تمت اضافتها ، فهل يا ترى يتوقف مهلة بسيطة ثم يتحرك مرة اخرى ؟ ام لا ؟
= انه يستمر في التحرك ولا يتحرك هذه المهلة البسيطةCoast
= ان لا يستمر في التحرك ويتوقف مهلة ثم يواصل عمله BREAK
ثانيا : اداة تشغيل الصوت :
1 – الصوت او الرنة :
= اختيار ملف صوت من الاصوات الجاهزة في الرقم 4Sound File
= وهي رنة واحدة صوتية .Tone
2 – تشغيل / ايقاف الصوت : وهو لاعطاء امر بتشغيل الصوت الذي تم تحديده بالخيار 1 او اطفاء صوت مشغل سابقاً .
3 – ارتفاع الصوت : وهو درجة الصوت ما اذا كانت مرتفعة ام لا فكلما زاد الرقم كلما ارتفع الصوت اكثر .
4 – كما ذكرت وهو لاختيار صوت محدد من الاصوات الموجودة واذا تم اختيار
Tone
فيظهر ان شاء الله علامة لبيانو ويتم اختيار زر من ازرار البيانو
ثالثا : اداة الكتابة على شاشة المعالج :
1 – نوع الكتابة على الشاشة : اما ان يكون هناك رسم على الشاشة او دائرة او نقطة ... في حالة كان الاختيار رسم فهناك رسوم جاهزة ومخزنة بالروبوت والتي هي يمكن اختيارها من الخيار 2 .
2 – الصورة : وهي الرسم الذي تريده ان يظهر على شاشة الروبوت .
3 – موقع الرسم : يمكن تحريك الصورة او الرسم الذي اخترته بتغيير ارقام النقاط والاحداثيات عن طريق التلاعب ب
X – Y
او يمكن عن طريق السحب للصورة بفأرة الكمبيوتر والتحريك .
رابعا : خيارات الانتظار : هذا الخيار هو لانتظار حساس الضوء مثلا الى ان يلتقط ضوء امامه ليقوم الروبوت بعمل حركة ما .
1 – انتظار لمدة زمنية : هذا الخيار الوحيد بين الخيارات الذي لا يستعمل فيه حساس بل يستعمل ساعة ، هذا الخيار يقوم بانتظار مدة انت تحددها ثم يقوم بعمل حركة ما ، فمثلا اضع هذه الاداة واحدد لها وقت 5 ثواني ثم اضع بعد هذه الاداة ، اداة تحريك الموتور ، سيقوم الروبوت باذن الله بالانتظار مدة 5 ثواني ثم يقوم بتحريك الموتور .
2 – انتظار الضغط لزر حساس اللمس : هذا الخيار يقوم بالانتظار الى ان يتم ضغط زر الحساس ، ثم ينتقل للحركة التالية .
3 – انتظار توجيه ضوء امام الحساس الضوئي : هذا الخيار يقوم بالانتظار الى ان يتم توجيه ضوء على حساس الضوء ويمكنك تحديد شدة الضوء التي يجب ان توجه الى هذا الحساس عن طريق خيارات الاداة .
4 – انتظار حساس الصوت لالتقاط صوت : تقوم هذه الاداة بتهيئة حساس الصوت لانتظار صوت ما يتم التقاطه من خلال هذا الحساس و يمكنك تحديد درجة الصوت التي تريدها ، مرتفعة – منخفضة – متوسطة ، من خلال الخيارات الخاصة بهذه الاداة .
5 – انتظار حساس الاستشعار عن بعد : هذه الاداة تقوم بتهيئة حساس الاستشعار بانتظار وجود جسم امامه ويمكنك تحديد بعد الجسم الذي تريده ، فمثلا تريده ان يلتقط اذا كان هناك جسم على بعد 5 بوصات ، يمكنك تحديد ذلك من خلال الخيارات .
خامسا : الحلقة التكرارية : الحلقة التكرارية هي تقوم بتكرار الكود الذي وضع بداخلها عدة مرات اي انه عند انتهاء الكود الذي بداخلها تقوم بالرجوع للنقطة الاولى .
1 – عدد مرات التكرار :
Forever = يعني انه يقوم بالتكرار للابد ولا يتوقف-
- time =يعني انه يقوم بالتكرار حتى ينتهي الوقت الذي حددته في خيار 2
- count = أي انه يقوم بالتكرار على كمية العدد الذي وضعته في الخانة 2 فاذا وضعت 3 فانه يكرر 3 مرات واذا وضعت 4 فانه يكرر 4 مرات ..الخ
سادساً : تحقق الشروط : هذه الاداة ترى ما اذا كان هناك تحقق ام لا فمثلا اذا اقترب حساس الاستشعار من جسم ما مسافة 50 بوصة .. فيقوم الروبوت بعمل ما واذا لم يقترب من جسم ما مسافة 50 بوصة فانه يقوم بعمل اخر .
هذه الاداة الاخيرة التي ساقوم بشرحها ان شاء الله هذه الاداة كما هو مبين بالصورة ، عندما يكون المستشعر امامه جسم مثلا بقرب 50 بوصة كما بالرقم 1 فانه سيقوم بتنفيذ ما يوضع في داخل المكان المشار اليه السهم ، اما اذا لم يحدث ذلك فانه سيقوم بما يوضع في المكان الذي تمت اشارة السهم له بعدم تحقق الشرط .
انتهيت والحمد لله من شرح البرمجة .
ربما انك لم تفهم جيداً طريقة البرمجة جيداً ، لكن بالممارسة ستستطيع ان شاء الله التعلم جيداً.
مثال بسيط : هذا المثال البسيط لبرنامج تم تصميمه يقوم هذا البرنامج بعد نقله الى الروبوت ان شاء الله ، يتقدم الروبوت الى الامام من دون توقف حتى يجد المستشعر جسم امامه فيرجع الروبوت بانحراف بسيط لمدة 3 ثواني ، ثم يعاود التقدم للامام بسبب الحلقة التكرارية .
ملاحظة : لم اقم بشرح جميع الخيارات ، حتى لا اطيل الشرح .
عموما الشرح كتابياً صعبا نوعا ما ، لكنه خير من لا شيء .
بعد ان قمت بكامل العمل وتصميم البرنامج الذي تريد من الروبوت ان يقوم به ، فيجب عليك اما نقله الى الروبوت وتشغيله بعد فصل السلك
USB
من الكمبيوتر وتشغيله او انك تقوم بتشغيله مباشرة من دون فصل سلك
USB
كما نرى هنا بالصورة .
1 – يقوم هذا الخيار بعرض معلومات الروبوت ، مع قابليتها للتغيير ، فيعرض هذا الخيار الروبوت المطلوب ، في حالة انك قمت بايصال اكثر من روبوت في جهاز الكمبيوتر ، ويمكنك ايضا معرفة اسم الروبوت مع القابلية للتغير وكذلك معرفة كمية الشحن بالبطارية وحالة الاتصال بالكمبيوتر والمساحة الموجودة على الذاكرة وايضا الملفات الموجودة في الذاكرة .
2 – يقوم هذا الخيار بتنزيل البرنامج على الروبوت اضافة الى تشغيله مباشرة .
3 – يقوم هذا الخيار بتشغيل البرنامج على الروبوت دون تنزيله .
4 – يقوم هذا الخيار بتنزيل البرنامج على الروبوت دون تشغيله .
5 - يقوم هذا الخيار بإيقاف تشغيل البرنامج على الروبوت ، في حالة ان كان يتم التنفيذ مباشرة من خلال الزر رقم 3 وربما الزر رقم 2 ايضا .
س : من اين يمكنني شراء روبوت جديد ؟
ج : يمكنك شراء الروبوت من خلال الموقع الالكتروني الخاص بالشركة
ورابط الروبوت
http://mindstorms.lego.com/en-us/products/9841.aspx
ورابط شراء الروبوت (كما هو مبين لي)
http://shop.lego.com/Product/?p=8547
للمزيد من المعلومات حول الروبوت
http://mindstorms.lego.com/en-us/default.aspx
أويمكنك مراجعة وكلاء شركة
Lego
في بلدك اذا توفر وكلاء .
---------------------------
س : هل هناك مراجع ومصادر اخرى للتعلم ؟
ج : بالتأكيد يوجد الكثير من المصادر الاجنبية ومن ضمنها موقع الروبوت نفسه واخرى ، واضل موقعين رأيتهما هما .
http://mindstorms.lego.com/en-us/default.aspx
http://www.ortop.org/NXT_Tutorial/html/essentials.html
ودروس متقدمة
http://www.ortop.org/NXT_Tutorial/html/advanced.html
---------------------------
س : لا استطيع ان افهم اللغة الانكليزية ، هل هناك شروحات فيديو عربية ؟
ج : وجدت شرح واحد فقط مقدما من الموقع فيديو تقني وهم 4 دروس فقط لكنها ممتازة ونتمنى زيادة عدد الدروس .
http://tech-video.net/?tag=nxt
---------------------------
س : هل يوجد هناك برامج تم برمجتها سابقا ، واستطيع تحميلها مباشرة وتشغيلها على روبوتي الخاص ؟
ج : نعم يوجد هناك من موقع الشركة المصنعة للروبوت .
http://mindstorms.lego.com/en-us/community/NXTLog/default.aspx
---------------------------
س : من اين يمكنني الحصول على اخر الاخبار ؟
ج : من خلال موقع الشركة المصنعة للروبوت .
http://mindstorms.lego.com/en-us/community/NXTLog/default.aspx
بهذا اكون والحمد لله شرحت الكثير من معلومات التعامل مع الروبوتات وبرمجتها واتمنى اني نفعت المجتمع العربي ولو قليلا ، كما اسأل الله تعالى توفيقي في مقالاتي الاخرى .
مع انني لا املك روبوتاً لكن اتيحت لي الفرصة والحمد لله بالتعلم لمدة قصيرة .
الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا ان هدانا الله
اسأل الله بان يفهم كل من يقرأ هذه المقالة واتمنى عدم النقل بدون ذكر المصدر .. ( حياة تك ) .
نلتقي في مقالات اخرى وشروحات اخرى ان شاء الله .
والسلام عليكم ورحمة الله وبركاته
وشكرا لتركي الجغيمان الي دلنا على الموضوع
---- منقول للفائده ---