جدول المحتويات:

بو بوت مع كاشفات الأشعة تحت الحمراء: 12 خطوة (بالصور)
بو بوت مع كاشفات الأشعة تحت الحمراء: 12 خطوة (بالصور)

فيديو: بو بوت مع كاشفات الأشعة تحت الحمراء: 12 خطوة (بالصور)

فيديو: بو بوت مع كاشفات الأشعة تحت الحمراء: 12 خطوة (بالصور)
فيديو: تشريح جثة واقفة 2024, يوليو
Anonim
بو بوت مع كاشفات الأشعة تحت الحمراء
بو بوت مع كاشفات الأشعة تحت الحمراء

سيوضح هذا الدليل كيفية إنشاء Boe-Bot وترميزه يمكنه التنقل في متاهة باستخدام كاشفات الأشعة تحت الحمراء لتجنب العوائق. هذا دليل سهل المتابعة يسمح بإجراء تعديلات سهلة لتناسب احتياجاتك. هذا يتطلب فهماً أساسياً للدوائر والبرمجة. ستحتاج إلى برنامج BASIC Stamp IDE لهذا المشروع. مجاني للتحميل هنا. بالإضافة إلى Boe-Bot Robot

الخطوة 1: الموارد

مكونات الكترونية

Boe-Bot مع كابل الموصل Parallax Store - BoeBot Kit

5 متجر Parallax LED للأشعة تحت الحمراء - طقم تجميع جهاز إرسال الأشعة تحت الحمراء

5 جمعيات درع الأشعة تحت الحمراء

5 كاشفات بالأشعة تحت الحمراء متجر Parallax - BoeBot IR Receiver

المقاومات

  • (2) 4.7 كيلو أوم أبرا للإلكترونيات - 4.7 كيلو أوم
  • (5) 220 أبرا للإلكترونيات - 220
  • (2) 1 كيلو أوم أبرا للإلكترونيات - 1 كيلو أوم
  • (5) 2 كيلو أبرا للإلكترونيات - 2 كيلو أوم

مجموعة متنوعة من الأسلاك ABRA Electronics - 22 Gauge Wire

3 ABRA إلكترونيات LED - 5mm Red LED

الدعم

الحاسوب

محرر الطوابع الأساسي - (مجانية)

أدوات

قاطع الأسلاك ABRA Electronics - قاطع الأسلاك (اختياري)

قشارة اسلاك ابرا للالكترونيات - قشارة اسلاك

متفرقات

الجدران (لبناء متاهة)

الخطوة الثانية: فهم كيفية عمل الكشف عن الأشعة تحت الحمراء (اختياري)

فهم كيفية عمل الكشف عن الأشعة تحت الحمراء (اختياري)
فهم كيفية عمل الكشف عن الأشعة تحت الحمراء (اختياري)

المصابيح الأمامية بالأشعة تحت الحمراء

نظام اكتشاف الأجسام بالأشعة تحت الحمراء الذي سنبنيه على Boe-Bot يشبه المصابيح الأمامية للسيارة من عدة نواحٍ. عندما ينعكس الضوء الصادر من المصابيح الأمامية للسيارة عن العوائق ، تكتشف عيناك العقبات ويعالجها دماغك ويجعل جسمك يوجه السيارة وفقًا لذلك. سوف يستخدم Boe-Bot مصابيح LED بالأشعة تحت الحمراء للمصابيح الأمامية. تنبعث منها الأشعة تحت الحمراء ، وفي بعض الحالات ، تنعكس الأشعة تحت الحمراء عن الأجسام وترتد مرة أخرى في اتجاه Boe-Bot. عيون Boe-Bot هي كاشفات الأشعة تحت الحمراء. ترسل أجهزة الكشف بالأشعة تحت الحمراء إشارات تشير إلى ما إذا كانت تكتشف الأشعة تحت الحمراء المنعكسة عن الجسم أم لا. يتخذ عقل Boe-Bot ، BASIC Stamp ، القرارات ويقوم بتشغيل محركات المؤازرة بناءً على إدخال المستشعر هذا. الشكل 7-1 اكتشاف الأجسام باستخدام المصابيح الأمامية بالأشعة تحت الحمراء تحتوي أجهزة الكشف عن الأشعة تحت الحمراء على مرشحات ضوئية مدمجة تسمح بقليل جدًا من الضوء باستثناء الأشعة تحت الحمراء 980 نانومتر التي نريد اكتشافها باستخدام مستشعر الثنائي الضوئي الداخلي. يحتوي كاشف الأشعة تحت الحمراء أيضًا على مرشح إلكتروني يسمح فقط للإشارات التي تبلغ حوالي 38.5 كيلو هرتز بالمرور. بعبارة أخرى ، لا يبحث الكاشف إلا عن الأشعة تحت الحمراء التي تومض وتغلق 38.500 مرة في الثانية. هذا يمنع تداخل الأشعة تحت الحمراء من المصادر الشائعة مثل ضوء الشمس والإضاءة الداخلية. ضوء الشمس هو تداخل التيار المستمر (0 هرتز) ، وتميل الإضاءة الداخلية إلى التشغيل والإيقاف عند 100 أو 120 هرتز ، اعتمادًا على مصدر الطاقة الرئيسي في المنطقة. نظرًا لأن 120 هرتز خارج نطاق تردد تمرير النطاق 38.5 كيلو هرتز للمرشح الإلكتروني ، يتم تجاهله تمامًا بواسطة أجهزة الكشف عن الأشعة تحت الحمراء.

-دليل الطالب بارالاكس

الخطوة 3: تجميع IR LED

تجميع IR LED
تجميع IR LED

أدخل IR LED في الجزء الأكبر من الغلاف

أرفق الجزء الواضح من LED بالجزء الأصغر من الغلاف

الخطوة 4: اختبار أزواج الأشعة تحت الحمراء - الدائرة

اختبار أزواج الأشعة تحت الحمراء - الدائرة
اختبار أزواج الأشعة تحت الحمراء - الدائرة
اختبار أزواج الأشعة تحت الحمراء - الدائرة
اختبار أزواج الأشعة تحت الحمراء - الدائرة

قبل أن نتعمق في أي شيء ، سنختبر للتأكد من أن زوج الأشعة تحت الحمراء يعمل (مؤشر LED واحد يعمل بالأشعة تحت الحمراء وكاشف واحد بالأشعة تحت الحمراء).

ابدأ ببناء الدائرة أعلاه على لوحة التجارب المثبتة أعلى Boe-Bot

الخطوة 5: اختبار أزواج الأشعة تحت الحمراء - الكود الأساسي

بالطبع ، سنحتاج إلى كتابة رمز لكي تعمل أزواج IR الخاصة بنا

للقيام بذلك ، سوف تستخدم الأمر FREQOUT. تم تصميم هذا الأمر لنغمات الصوت ، ومع ذلك يمكن استخدامه لإنتاج ترددات في نطاق الأشعة تحت الحمراء. في هذا الاختبار ، سنستخدم الأمر:

فريكوت 8، 1، 38500

سيؤدي هذا إلى إرسال تردد 38.5 كيلو هرتز يستمر 1 مللي ثانية إلى P8. ستبث دائرة الأشعة تحت الحمراء LED المتصلة بـ P8 هذا التردد. إذا انعكس ضوء الأشعة تحت الحمراء مرة أخرى إلى Boe-Bot بواسطة كائن في مساره ، فسيرسل كاشف الأشعة تحت الحمراء إشارة BASIC Stamp لإعلامه بأنه تم اكتشاف ضوء الأشعة تحت الحمراء المنعكس.

المفتاح لعمل زوج الأشعة تحت الحمراء هو إرسال 1 مللي ثانية من 38.5 كيلو هرتز FREQOUT وتخزين خرج كاشف الأشعة تحت الحمراء على الفور في متغير.

يوضح هذا المثال تخزين قيمة كاشف الأشعة تحت الحمراء في متغير بت يسمى irDectectLeft

فريكوت 8، 1، 38500

irDetectLeft = IN9

حالة خرج كاشف الأشعة تحت الحمراء عندما لا يرى إشارة IR عالية. عندما يرى كاشف الأشعة تحت الحمراء انعكاس التوافقي 38500 هرتز بواسطة كائن ، يكون ناتجه منخفضًا. يبقى ناتج كاشف الأشعة تحت الحمراء منخفضًا فقط لجزء من الميلي ثانية بعد أن يتم إرسال أمر FREQOUT التوافقي ، لذلك من الضروري تخزين مخرجات كاشف الأشعة تحت الحمراء في متغير فور إرسال الأمر FREQOUT. يمكن بعد ذلك عرض القيمة المخزنة بواسطة المتغير في Debug Terminal أو استخدامها لقرارات التنقل بواسطة Boe-Bot.

الخطوة 6: اختبار أزواج الأشعة تحت الحمراء - الأجهزة + البرامج

اختبار أزواج الأشعة تحت الحمراء - الأجهزة + البرامج
اختبار أزواج الأشعة تحت الحمراء - الأجهزة + البرامج

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

يمكنك محاولة عمل الكود بنفسك ، أو استخدام الكود أدناه

{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8، 1، 38500 irDetectLeft = IN9 DEBUG HOME، "irDetectLeft ="، BIN1 irDetectLeft PAUSE 100 LOOP

  1. اترك Boe-Bot متصلاً بالكابل التسلسلي ، لأنك ستستخدم DEBUG Terminal لاختبار زوج IR الخاص بك.
  2. ضع شيئًا ، مثل يدك أو ورقة ، على بعد بوصة واحدة من زوج الأشعة تحت الحمراء الأيسر
  3. تحقق من أنه عند وضع كائن أمام زوج الأشعة تحت الحمراء ، فإن محطة التصحيح تعرض 0 ، وعندما تزيل الكائن من أمام زوج الأشعة تحت الحمراء ، فإنه يعرض 1.
  4. إذا لم تعرض محطة التصحيح القيم المتوقعة ، فجرّب الخطوات الموجودة في خطوة استكشاف الأخطاء وإصلاحها.

الخطوة 7: حل المشكلات (للمشكلات ذات الخطوة الأخيرة)

محطة DEBUG تعرض قيمًا غير متوقعة

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

تحقق من البرنامج من الأخطاء المنطقية أو النحوية - إذا استخدمت التعليمات البرمجية الخاصة بك للخطوة الأخيرة ، ففكر في استخدام الكود المقدم

يتم وضع الحصول دائمًا على 0 ، حتى في حالة عدم وجود أشياء أمام Boe-Bot

تحقق مما إذا كانت هناك أي أجسام قريبة تعكس إشارة الأشعة تحت الحمراء. قد تكون الطاولة أمام Boe-Bot هي السبب. انقل Boe-Bot إلى مساحة مفتوحة بحيث لا يمكن أن ينعكس مصباح الأشعة تحت الحمراء والكاشف عن أي كائن قريب.

القراءة هي 1 في معظم الأوقات عندما لا يكون هناك كائن أمام Boe-Bot ، ولكن تومض إلى الصفر في بعض الأحيان

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

الخطوة 8: زوج IR الثاني

زوج IR الثاني
زوج IR الثاني

الآن بعد أن أصبح لديك برنامج IR الأيسر ، حان دورك لإنشاء الدائرة وبرمجة زوج الأشعة تحت الحمراء الأيمن

  1. قم بتغيير بيان DEBUG والعنوان والتعليقات للإشارة إلى زوج IR الصحيح.
  2. قم بتغيير اسم المتغير من irDetectLeft إلى irDetectRight. ستحتاج إلى القيام بذلك في أربعة أماكن في البرنامج.
  3. قم بتغيير وسيطة Pin لأمر FREQOUT من 8 إلى 2.
  4. قم بتغيير سجل الإدخال الذي تتم مراقبته بواسطة متغير irDetectRight من IN9 إلى IN0.
  5. كرر خطوات الاختبار في هذا النشاط لزوج الأشعة تحت الحمراء المناسب ؛ مع دائرة IR LED المتصلة بـ P2 والكاشف متصل بـ P0.

الخطوة 9: الكشف عن تداخل الأشعة تحت الحمراء (اختياري)

الكشف عن تداخل الأشعة تحت الحمراء (اختياري)
الكشف عن تداخل الأشعة تحت الحمراء (اختياري)

سواء كنت تواجه مشكلات في اكتشاف الإشارات التي لا ينبغي اكتشافها أو كنت تخطط لإظهار اكتشاف الأشعة تحت الحمراء في موقع بديل ، فقد ترغب في اختبار التداخل.

مفهوم برنامج الاختبار هذا بسيط للغاية ، حيث يمكنك اكتشاف إشارات الأشعة تحت الحمراء دون إرسال أي منها.

يمكنك استخدام نفس الدائرة بالضبط ولكن سيكون عليك تغيير الكود. يمكنك اختيار كتابة الرمز الخاص بك ، ولكن يمكنك استخدام الرمز المقدم أدناه:

{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OR IN0 = 0 ثم DEBUG "تم اكتشاف التداخل" PAUSE 100 LOOP

إذا واجهت تداخلًا ، فحدد المصدر المحتمل وأوقف تشغيله / قم بإزالته أو انقل مكان تشغيل Boe-Bot الخاص بك.

الخطوة 10: إضافة المزيد من أزواج الأشعة تحت الحمراء

إضافة المزيد من أزواج الأشعة تحت الحمراء
إضافة المزيد من أزواج الأشعة تحت الحمراء

إذا كنت ترغب في مزيد من الدقة في حركة Boe-Bot ، فقد ترغب في إضافة المزيد من أزواج IR. 3 يحسن الأداء بشكل كبير مقارنةً باثنين ؛ يمكنك استخدام زوج مركزي للبحث عن عائق مباشر ، واستخدام اثنين من الأشعة تحت الحمراء الجانبية لتحديد مقدار الدوران. ومع ذلك ، فإن السقوط في تصميم 3 أزواج IR هو أنك قد تعرف متى تنزلق مقابل الحائط ، لأن زوج IR المركزي يستخدم لاكتشاف العوائق. لحل هذه المشكلة ، يمكنك إضافة زوج الأشعة تحت الحمراء إلى كل جانب بقيمة مقاومة عالية - وبالتالي لن يتم اكتشاف إشارة الأشعة تحت الحمراء إلا إذا كان Boe-Bot قريبًا من الجانب أو الجدار بزاوية لطيفة.

الخطوة 11: خمسة أزواج من الأشعة تحت الحمراء - الدائرة

خمسة أزواج من الأشعة تحت الحمراء - الدائرة
خمسة أزواج من الأشعة تحت الحمراء - الدائرة

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

الخطوة 12: خمسة أزواج IR - كود

خمسة أزواج IR - كود
خمسة أزواج IR - كود

قد ترغب في تجربة برمجة Boe-Bot قبل استخدام هذا الرمز:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'رمز الكشف عن أزواج IR الخمسة' Matthew Shaw '8 مايو 2019 (الإصدار 7)' اكتشاف الكائنات والمعالجة المنطقية الأساسية لحل المتاهات

irDetectLeft VAR Bit 'متغير لليسار

irDetectCentre VAR Bit 'متغير لمركز irDetectRight VAR Bit' متغير لـ irDetect الأيمن LSide VAR Bit 'متغير لـ irDetectRSide VAR Bit' متغير لـ irDetectLSideFar VAR Bit 'متغير لمقاومة منخفضة الجانب الأيسر لكشف الأشعة الجانب الأيمن متغير

mLoop VAR Word

Lmotor PIN 15 'المحرك الأيسر متصل بالدبوس 14 ، النبضات تمر من هنا

Rmotor PIN 14 'يمين = 15

سرعات -> 650-750-850

LFast CON 850 'Conastant للمحرك الأيسر بأقصى سرعة RFast CON 650' Conastant للمحرك الأيمن بأقصى سرعة

LStop CON 750 'Conastant للمحرك الأيسر بأقصى سرعة

RStop CON 650 'Conastant للمحرك الصحيح بأقصى سرعة

LMid CON 830 'Conastant للمحرك الأيسر بسرعة متوسطة

RMid CON 700 'Conastant للمحرك الصحيح بسرعة متوسطة

LSlow CON 770 'Conastant للمحرك الأيسر بأدنى سرعة

RSlow CON 730 'Conastant للمحرك الصحيح بأدنى سرعة

LRev CON 650 'Conastant للمحرك الأيسر بأقصى سرعة في الاتجاه المعاكس

RRev CON 850 'Conastant للمحرك الأيسر بأقصى سرعة في الاتجاه المعاكس

FREQOUT 7، 1، 38500 'الجانب الأيسر

irDetectLeft = IN8

مركز فريكوت 6، 1، 38500 '

irDetectCentre = IN5

FREQOUT 3 ، 1 ، 38500 'الجانب الأيمن

irDetectRight = IN2

FREQOUT 10، 1، 38500 'إغلاق يسار

irDetectLSide = IN11

FREQOUT 1، 1، 38500 'إغلاق يمين

irDetectRSide = IN0

فريكوت 9 ، 1 ، 38500

irDetectLSideFar = IN11

FREQOUT 4، 1، 38500 'الجانب الأيمن

irDetectRSideFar = IN0

إذا كانت irDetectLSide = 0 AND irDetectRSide = 0 ثم قم بتلويح يديك بعد الكاشفين الجانبيين لبدء البرنامج

الأساسية:

وقفة 1000 DO

PULSOUT Lmotor ، محرك LFast الأيسر يعمل بأقصى سرعة

PULSOUT Rmotor ، محرك RFast الأيمن يعمل بأقصى سرعة

مركز فريكوت 6، 1، 38500 '

irDetectCentre = IN5

FREQOUT 10، 1، 38500 'إغلاق يسار

irDetectLSide = IN11

FREQOUT 1، 1، 38500 'الجانب الأيمن

irDetectRSide = IN0

إذا irDetectLSide = 0 و irDetectRSide = 1 ثم

هل بولسوت Lmotor ، LFast

مركز فريكوت 6، 1، 38500 '

irDetectCentre = IN5 IF irDetectCentre = 0 ثم سنت

FREQOUT 10، 1، 38500 'إغلاق يسار

irDetectLSide = IN11

FREQOUT 3، 1، 38500 'الجانب الأيمن

irDetectRight = IN2

LOOP حتى irDetectLSide = 1 أو irDetectRSide = 0

ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 ثم

هل بولسوت الدوار ، RFast

مركز فريكوت 6، 1، 38500 '

irDetectCentre = IN5 IF irDetectCentre = 0 ثم سنت

FREQOUT 10، 1، 38500 'إغلاق يسار

irDetectLSide = IN11

FREQOUT 3 ، 1 ، 38500 'الجانب الأيمن

irDetectRight = IN2

LOOP حتى irDetectLSide = 0 أو irDetectRSide = 1

'إنهاء إذا

إذا irDetectCentre = 0 ثم ابدأ

FREQOUT 7 ، 1 ، 38500 'الجانب الأيسر irDetectLeft = IN8

مركز فريكوت 6، 1، 38500 '

irDetectCentre = IN5

فريكوت 3 ، 1 ، 38500

irDetectRight = IN2

وقفة وقفة 1000 'لإظهار الإشارة المكتشفة

إذا كانت (irDetectLeft = 1 AND irDetectRight = 0) فقم بتقييم المدة

GOSUB يستدير لليسار

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) ثم

GOSUB دوران لليمين

ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) ثم

GOSUB بدوره

آخر

GOSUB يستدير للخلف

إنهاء إذا

ENDIF 'END

حلقة

نهاية

انعطف لليسار:

DO PULSOUT Lmotor، LRev FREQOUT 8، 1، 38500 irDetectLeft = IN9 FREQOUT 5، 1، 38500 irDetectCentre = IN4 FREQOUT 2، 1، 38500 irDetectRight = IN0 LOOP حتى IN0 = 1 RETURN

انعطف يمينا:

DO PULSOUT Rmotor، RRev FREQOUT 8، 1، 38500 irDetectLeft = IN9 FREQOUT 5، 1، 38500 irDetectCentre = IN4 FREQOUT 2، 1، 38500 irDetectRight = IN0 LOOP حتى IN 9 = 1

إرجاع

عكس:

بالنسبة إلى mLoop = 0 إلى 50 PULSOUT Rmotor ، RRev PULSOUT Lmotor ، LRev PAUSE 20 PULSOUT Lmotor ، LRev PAUSE 20 NEXT DO PULSOUT Rmotor ، RRev FREQOUT 8، 1، 38500 irDetectLeft = IN9 FREQOUT IRT 5، 1، 38500 ، 38500 irDetectRight = IN0 LOOP حتى IN 9 = 1

إرجاع

turnDecide: يستخدم مقاومة أقل لرؤية المزيد

فريكوت 9 ، 1 ، 38500

irDetectLSideFar = IN11

FREQOUT 4، 1، 38500 'الجانب الأيمن

irDetectRSideFar = IN0

إذا (irDetectLSideFar = 1 AND irDetectRSideFar = 0) ثم تقييم المدة

GOSUB يستدير لليسار

ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) ثم

GOSUB بدوره لليمين

ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) ثم

GOSUB يستدير لليسار

آخر

GOSUB يستدير للخلف

إنهاء إذا

إرجاع

موصى به: