Pages

Tuesday, April 20, 2010

مشروع تتبع حافة الخط باستخدام حساس ضوئي واحد

image

 

المشروع : كتابة برنامج NXT-G من شأنه أن يلزم الروبوت الخاص بك في في تتبع حافة الخط الأسود من خلال الأرضية (Mindstorms Test Pad Poster ) بحيث يتم وضع الروبوت الخاص بك في منطقة البداية (Start) بحيث أن يكمل دورة كاملة واحدة على الأقل .

الأهداف:

IMG_0592

· أستخدم محركات السيرفو

.أستخدم أرضية Mindstorms Test Pad Poster

· استخدم حساس ضوء واحد ومعايرة درجة الأرضية والخط

· استخدام المهارات البرمجية

1.    Turn Motors

2.    Switch

3.    Loop

فكرة المشروع :

هناك عدة طرق للتبع الخط  كما بالشكل التالي:

 

image

 

في هذا المشروع سوف يتم استخدام أبسطهم وهي تتبع حافة الخط من خلال خاصية التلوي بين اليمين واليسار (wiggling) وهي بسيطة حيث أن حساس الضوء يتتبع حافة الخط وليس الخط نفسه كما بالشكل الذي بالأسفل

 

 

clip_image001

 

 

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

 

clip_image002

image

 

طريقة تتبع حافة الخط  التلوي (wiggling) ليست المثلى وذلك لعدة نقاط :

·        البطيء

·        الحركة الإرتجياجية للنموذج

·        الخروج أحيانا عن الخط

·        صعوبة التصرف عند الزوايا خصوصا بتتبع الخطوط المتعرجة (ZigZag Line)

clip_image003

 

للعمل على خاصية التلوي لا بد من استخدام الأوامر الشرطية كما بالشكل التالي:

 

image

 

البرنامج :

 

 

Monday, April 5, 2010

وحدة أو مجمع البرمجة(My Block)

 

وحدة أو مجمع برمجياتي (My Block) عبارة عن تركيبة مكعب أو مجموعة مكعبات من البرمجيات في مكان واحد , الهدف من ذلك :

·        تقليص حجم المكعبات البرمجية في وحدة واحدة (Block)  

·        إعادة استخدام الوحدات المجمعة في برامج أخرى

·        تقليص حجم الذاكرة المستخدمة في حالة استخدام الوحدات المجمعة

·        يبعد التشويش على المبرمج  بحيث يحدد بسهولة المدخلات والمخرجات

 

في عرض الفيديو بالأسفل يعطي فكرة عن إستخدام وحدة البرمجة (Block)  بشكل فعال , ولكن يجب مراجعة الدرس السابق التعامل مع المتغيرات والثوابت ومركز البيانات 

 

 

 

 

 

 

Thursday, April 1, 2010

التعامل مع المتغيرات والثوابت ومركز البيانات

 

في هذا الموضوع سوف نتعامل مع المتغيرات (Variables)  والثوابت (Constant ) ومركز البيانات (Data Hub)

من خلال درس سابق  في مدونتي تحت عنوان  الهندسة والرياضيات في تطبيقات الروبوت  تم التعرف على حساب عدد دورات المحرك الذي يجب أن يعدها ضمن مسافة محددة سواء بعدد اللفات أو عدد الدرجات , وفي هذا الموضوع سيتم ادخال المتغيرات والثوابت واستخدام العمليات الحسابية والمراكز البيانية لتكون قيم ادخال عدد دورات المحرك بعدد الدرجات أو اللفات بناءا على نتائج المعادلات المعطاة ومن خلال الفيديو المبسط الذي بالأسفل يوضح أهمية الموضوع في البرمجة المتقدمة :