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)

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

Monday, March 1, 2010

برمجة ومعايرة حساس الضوء

 

حساس الضوء

كما فهمنا من خلال موضوع حساس الضوء الذي نشرته من قبل أن حساس الضوء يصدر اشعاع ضوئي على الأجسام ويعكس مقدار ارتداد الضوء  , فكلما كان أفتح كان الإرتداد أعلى من الأجسام الأغمق والقراءة أعلى , فهو لا يميز الألوان لكن يقرأ درجة الإضاءة التي تتراوح قيمتها بين 0 إلى 100 % بين درجة هذه الألوان .

 

·        في المناطق الفاتحة كالبيضاء , تكون درجة حساسية الألوان من 50 % .فما فوق .

·        في المناطق الغامقة كالالوان الأزرق الغامق والأسود والأخضرالغامق تكون القيم من 50 % فما دون .

image

ملاحظة :لتكون قراءة حساس الضوء أدق يفضل أن يكون بعده عن الأجسام الذي يريد قراءتها ½ إنش أو 2  ½ سم .

معايرة حساس الضوء

أولا يجب أن تتأكد من وجود برنامج معايرة الضوء نازل في اللبنة الذكية ,أولا يجب أن تكون متصل باللبنة الذكية ثم يمكنك متابعة الفيديو الذي بالأسفل لمعرفة طريقة تركيبه .

 

تستخدم هذه الطريقة أكثر في البرامج المتقدمة لقراءة حساسية الضوء للألوان من خلال ادخال القيمة الصغرى أو الكبري ضمن Data Block

ثانيا :قياس حساسية الضوء  للأجسام أو السطوح

الطريقة الأولى :

من خلال اللبنة الذكية نذهي إلى القوائم كالتالي :

1. Select My Files, then Software Files

2. Navigate back and forth using the left or right arrows until you encounter the Calibrate program

3. Select the Calibrate program by pressing the orange button

4. Run the Calibrate program by pressing the orange button and follow the instructions.

 

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

image

نذهب إلى الأسطح الفاتحة , كأرضية البلاط وأيضا ونقرأ أقل قيمة يظهرها الجهاز ونسجلها في دفتر الملاحظات كما بالشكل التالي :

image

الطريقة الثانية:

من خلال اللبنة الذكية نذهي إلى القوائم كالتالي :

1. Select View

2. Navigate to light Reflected

3:choose port you are connected light sensor

 

image image

 

 

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

image

clip_image001   

  •    المنطقة  (A)   يري اللون الأسود
  • المنطقة  (B)   يري بقية الألوان وذلك بدرجة تركيز اللون الرمادي
  • المنطقة  (C)   يري اللون الأبيض

 

 

 

لتحويل قراءة المعيار الضوئي لنسبة مئوية

مثال القراءة في الصور التي بالأعلى للقراءة المعيارية

((490)/1023)*100=60.07=47%

((225)/1023)*100=6.35=21%

الآن حساب المعدل المعياري

 

image

المعدل المعياري= / 2(47+21)

المعدل المعياري=34 %

 

Saturday, February 27, 2010

قياس المسافة المقطوعة في حالة الدوران –مزيد من التطبيقات الهندسية

 

عند دوران الروبوت من خلال تحريك محرك واحد فقط , سوف يعمل دائرة حيث أن نصف قطرها هو عبارة عن المسافة بين العجلين أو الإطارين المثبتان بالنموذج

clip_image001

clip_image002

clip_image004

محيط الدائرة =2* π* نصف قطر الدائرة(Radius)

أو

 محيط الدائرة = π* قطر الدائرة(Diameter)

 

مثال:نموذجي طول البعد بين مركز العجلات =15 سم , لذلك محيط دوران الروبوت سوف يكون:

محيط دائرة دوران النموذج =2* π* نصف قطر الدائرة(Radius)

محيط دائرة دوران النموذج =2* 3.14* 15 سم

محيط دائرة دوران النموذج =94.2 سم

 

أو

محيط دائرة دوران النموذج= π* قطر الدائرة(Diameter)

محيط دائرة دوران النموذج =3.14* 30 سم

محيط دائرة دوران النموذج =94.2 سم

إذا كان عندنا نموذج مثبت به عجلان  كما بالشكل الذي بالأسفل

clip_image005

clip_image007

 

حيث قطر العجل=8.12 سم

محيط دائرة العجل = π* قطر الدائرة(Diameter)

محيط دائرة العجل = 3.14* 8.12

محيط دائرة العجل = 25.4  سم

لذلك أن أعرف عدد دورات المحرك , كي يدور نموذجي بالكامل أي 360 درجة دائرية قاطعا المسافة 94.2  سم علما أن محيط دائرة عجلاته هي 25.4  سم

 

لذلك

عدد دورات العجلات =محيط دائرة دوران النموذج (تقسم على ) محيط دائرة العجل

عدد دورات العجلات =94.2  (تقسم على ) 25.4

عدد دورات العجلات =3.7

 

أو

clip_image008

الأن أذا أردنا أن نحسب درجة دوران محرك العجلات للروبوت إذا أردنا أن نقوم بالإلتفاف بمقدار 90 درجة دائرية

 

درجة دوران محرك العجلات =عدد دورات العجلات * درجة الدوران الدائرية

درجة دوران محرك العجلات =3.7 * 90

درجة دوران محرك العجلات=333

image