المدونة السادسة عشر / حساس البوصلة / Compass Sensor

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

في البداية لابد من توفير حساس البوصلة حيث أنه غير مدرج ضمن الحساسات التي تأتي من الحقيبة ولكن يمكن شراؤه من أحد الشركات المصنعة للحساسات على سبيل المثال شركة Hitechnic المتخصصه في صناعة حساسات تتماشى مع الروبوتات المصنعة من شركة  LEGO® MINDSTORMS® .
رابط حساس البوصلة
https://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NMC1034

ولابد أيضاً من إضافة الأمر أو البلوك البرمجي الخاص به في برنامج Lego Mindstorm EV3 ولعمل ذلك نقوم بتنزيل البلوك الخاص به عبر الرابط .
https://www.hitechnic.com/file.php?f=841-HiTechnicEV3Blocks.zip
ملاحظه: هذا الرابط يقوم بتحميل عدة أوامر من ضمنها حساس البوصله (Angle, Compass, Accelerometer, and IRSeekerV2)

بعد التنزيل ننتقل إلى برنامج EV3 ومن القائمة Tools نقوم باختيارBlock Import Wizard
ومن ثم نقوم باختيار الملف وعمل Import كما بالصورة .

نلاحظ أنه تمت إضافة الأوامر.

– عند تركيب حساس البوصلة لابد أن يكون بعيدا عن أي مجال مغناطيسي بمسافة لاتقل عن 10 سم إلى 15 سم وذلك لأنه يتأثر بأي مجال مغناطيسي مثل المحركات والبطاريات وعقل الروبوت .

– يستخدم حساس البوصلة في العديد من المسابقات مثل مسابقة WRO ومسابقة Robocub وذلك لتحديد اتجاه الهدف .

– نقوم بسحب أمر حساس البوصلة للتعرف على خصائصه

– Absolute Heading  وهنا يتم تحديد الإتجاهات الفعلية للشمال والجنوب والشرق والغرب كما بالصورة ونلاحظ أنها Absolute أي أن هذه القيم  تكون مطلقة = موجبه .

نلاحظ هنا أن لكل اتجاه قيمه معينه على سبيل المثال الشمال 0 والجنوب 180 والشرق 90 والغرب 270 وهي قيم الدرجات في الدائرة ، نستنتج أن الحساس يأخذ قيم من 0 ل 359 درجة . ولعمل برنامج لعرض قيم الحساس على شاشة المعالج الخاص بروبوت EV3 نقوم بعمل الأوامر التالية :

التحدى 1 : قم بعمل روبوت يتحرك في اتجاه الشمال :

(اضغط على الصوره لتكبير حجمها)

 

الأمر الأول : أمر متغير من نوع كتابة حيث خزنا فيه القيمة 0

الأمر الثاني : أمر التكرار للأوامر التالية

الأمر الثالث : أمر تشغيل حساس البوصلة في وضع القراءة في حالة الـ Absolute Heading

الأمر الرابع : أمر متغير من نوع كتابة لتخزين القيمة التي يقرؤها حساس البوصلة

الأمر الخامس : أمر متغير من نوع قراءة لقراءة القيمة التي تم تخزينها من حساس البوصلة

الأمر السادس : أمر Range بحيث إذا كانت القيمة المخزنة في المتغير بين 0 و5 درجات  يتحرك الروبوت إلة الأمام

الأمر السابع : أمر تفرع Switch من نوع Logic أي نعم أم لا

الأمر الثامن : أمر التحرك للأمام ON إذا كان الشرط نعم أي أن القيمة التي يقرؤها الحساس بين 0 و5 درجات أي الشمال.

الأمر التاسع : أمر متغير من نوع قراءة بحيث إذا كان الشرط لا أي أن القيمة التي يقرؤها الحساس لاتقع في الشمال 0 و5 يتم قراءة القيم داخل المتغير مرة اخرى وتوصيلها بأمر Range

الأمر العاشر : أمرRange حيث قمنا بتوصيل القيمة المخزنة في المتغيربالأمر Range بحيث إذا كانت القيمة بين 11 و 180 درجة
الأمر الحادي عشر : أمر Switch من نوع Logic أي نعم أم لا

الأمر الثاني عشر : أمر الإلتفاف يساراً إذا تحقق الشرط وكانت القيمة بين 11 و 180 درجة ، حيث نقوم بإيقاف المحرك C بإعطائه مقدار قوة = 0  وتحريك المحرك B بإعطائه مقدار قوة = 30  فيتحرك الروبوت لليسار (على اعتبار أنه أثناء تصميم الروبوت تم وضع المحرك B يميناً والمحرك C يساراً)

الأمر الثالث عشر : :أمر متغير من نوع قراءة بحيث إذا كان الشرط لا أي أن القيمة التي يقرؤها الحساس لافي النطاق 11 و180 يتم قراءة القيم داخل المتغير مرة اخرى وتوصيلها بأمر Range
الأمر الرابع عشر : مرRange حيث قمنا بتوصيل القيمة المخزنة في المتغيربالأمر Range بحيث إذا كانت القيمة بين 181 و 359 درجة.

الأمر الخامس عشر : أمر Switch من نوع Logic أي نعم أم لا

الأمر السادس عشر : مر الإلتفاف يميناً إذا تحقق الشرط وكانت القيمة بين 181 و 359 درجة ، حيث نقوم بتحريك المحرك C بإعطائه مقدار قوة = 30  وإيقاف المحرك B بإعطائه مقدار قوة = 0  فيتحرك الروبوت لليسار (على اعتبار أنه أثناء تصميم الروبوت تم وضع المحرك B يميناً والمحرك C يساراً) .

التحدي 2 : قم بعمل روبوت ليدلك على اتجاه القبلة ؟

الإجابة متروكة لك/لكِ .

-Relative Heading تستخدم لتحديد الشمال الجديد الخاص بك أو اتجاه الهدف المطلوب التوجه إليه على سبيل المثال إذا كان الهدف المطلوب التوجه إليه يقع في الدرجة 175 فنقوم بكتابة 175 في خانة Target في الوضع Relative Heading .

 

k

نلاحظ اتجاه الهدف المطلوب Target = 0 والجنوب أصبح 5 درجات (180-175=5) ويتم إضافة 90 درجه على كل اتجاه لتصبح الإتجلهات الجديده الجنوب 5 درجات والغرب 95 والشمال 185 والشرق 275.

وبهذا أكون قد انتهيت من المدونة السادسة عشر بفضل الله ، تمنياتي لكم بالتوفيق ولاتنسوني من صالح دعائكم .