فهرست مطالب:

Boe-Bot با آشکارسازهای مادون قرمز: 12 مرحله (همراه با تصاویر)
Boe-Bot با آشکارسازهای مادون قرمز: 12 مرحله (همراه با تصاویر)

تصویری: Boe-Bot با آشکارسازهای مادون قرمز: 12 مرحله (همراه با تصاویر)

تصویری: Boe-Bot با آشکارسازهای مادون قرمز: 12 مرحله (همراه با تصاویر)
تصویری: Chapter 17 - Triplanetary by E. E. Smith - Roger Carries On 2024, جولای
Anonim
Boe-Bot با آشکارسازهای مادون قرمز
Boe-Bot با آشکارسازهای مادون قرمز

این دستورالعمل نحوه ساخت و کدگذاری Boe-Bot را نشان می دهد که می تواند با استفاده از آشکارسازهای مادون قرمز در پیچ و خم حرکت کند تا از موانع جلوگیری کند. این یک راهنمای آسان برای دنبال کردن است که اجازه می دهد تا تغییرات آسان را با توجه به نیازهای شما انجام دهد. این مستلزم درک اولیه از مدار و برنامه نویسی است. برای این پروژه باید نرم افزار BASIC Stamp IDE داشته باشید. برای بارگیری رایگان در اینجا و همچنین ربات Boe-Bot

مرحله 1: منابع

قطعات الکترونیکی

Boe -Bot با کابل اتصال Parallax Store - BoeBot Kit

5 فروشگاه منظره LED مادون قرمز - کیت مونتاژ فرستنده IR

5 مجمع سپر مادون قرمز

5 آشکارساز مادون قرمز فروشگاه اختلاف منظر - گیرنده IR BoeBot

مقاومت ها

  • (2) 4.7 کیلووات ABRA Electronics - 4.7 کیلووات
  • (5) 220 Ω ABRA Electronics - 220 Ω
  • (2) 1 کیلووات ABRA Electronics - 1 کیلو اهم
  • (5) 2 k ABRA Electronics - 2 kΩ

سیم کشی های مختلف ABRA Electronics - 22 Gauge Wire

3 LED's ABRA Electronics - 5 میلی متر LED قرمز

پشتیبانی

کامپیوتر

BASIC Stamp Editor - (نرم افزار رایگان)

ابزارها

Wire Cutter ABRA Electronics - Wire Cutter (اختیاری)

Wire Stripper ABRA Electronics - Wire Stripper

متفرقه

دیوارها (برای ساختن پیچ و خم)

مرحله 2: درک نحوه عملکرد تشخیص مادون قرمز (اختیاری)

درک نحوه عملکرد تشخیص مادون قرمز (اختیاری)
درک نحوه عملکرد تشخیص مادون قرمز (اختیاری)

چراغهای مادون قرمز

سیستم تشخیص اشیاء مادون قرمز که ما بر روی Boe-Bot ایجاد خواهیم کرد از چند جهت مانند چراغهای جلو خودرو است. هنگامی که نور چراغهای جلو اتومبیل از موانع بازتاب می کند ، چشم شما موانع را تشخیص می دهد و مغز آنها را پردازش می کند و بدن شما را بر این اساس راهنمایی می کند. Boe-Bot از چراغ های مادون قرمز برای چراغ های جلو استفاده می کند. آنها مادون قرمز ساطع می کنند و در برخی موارد ، مادون قرمز اجسام را منعکس می کند و در جهت Boe-Bot باز می گردد. چشم Boe-Bot آشکارسازهای مادون قرمز هستند. آشکارسازهای مادون قرمز سیگنال هایی را ارسال می کنند که نشان می دهد مادون قرمز منعکس شده از یک جسم را تشخیص می دهد یا خیر. مغز Boe-Bot ، BASIC Stamp ، بر اساس این ورودی سنسور تصمیم می گیرد و سرو موتورها را کار می کند. شکل 7-1 تشخیص شی با چراغهای جلو IR آشکارسازهای IR دارای فیلترهای نوری داخلی هستند که نور بسیار کمی را به جز مادون قرمز 980 نانومتری که می خواهیم با سنسور نوری داخلی آن تشخیص دهیم ، اجازه می دهد. آشکارساز مادون قرمز همچنین دارای یک فیلتر الکترونیکی است که فقط به سیگنالهای 38.5 کیلوهرتز اجازه عبور می دهد. به عبارت دیگر ، آشکارساز فقط به دنبال مادون قرمز است که 38 ، 500 بار در ثانیه چشمک می زند و خاموش می شود. این مانع از تداخل IR از منابع متداول مانند نور خورشید و روشنایی داخلی می شود. نور خورشید تداخل DC (0 هرتز) است و روشنایی داخلی بسته به منبع تغذیه اصلی در منطقه ، در 100 یا 120 هرتز روشن و خاموش می شود. از آنجا که 120 هرتز خارج از فرکانس عبور باند 38.5 کیلوهرتز فیلتر الکترونیکی است ، توسط آشکارسازهای IR کاملاً نادیده گرفته می شود.

-راهنمای دانشجویی پارالاکس

مرحله 3: مونتاژ LED های IR

مونتاژ LED های IR
مونتاژ LED های IR

LED IR را در قسمت بزرگتر پوشش قرار دهید

قسمت روشن LED را با قسمت کوچکتر بدنه محصور کنید

مرحله 4: آزمایش جفت های مادون قرمز - مدار

آزمایش جفت های مادون قرمز - مدار
آزمایش جفت های مادون قرمز - مدار
آزمایش جفت های مادون قرمز - مدار
آزمایش جفت های مادون قرمز - مدار

قبل از اینکه به چیزی عمیق بپردازیم ، آزمایش می کنیم تا مطمئن شویم که جفت IR کار می کند (یک LED مادون قرمز و یک آشکارساز مادون قرمز).

با ایجاد مدار بالا روی تخته ناندی که در بالای Boe-Bot خود نصب کرده اید ، شروع کنید

مرحله 5: آزمایش جفت های مادون قرمز - کد اصلی

البته ، ما باید کد را بنویسیم تا جفت های IR ما کار کنند

برای انجام این کار ، از دستور FREQOUT استفاده می کند. این دستور برای آهنگ های صوتی طراحی شده است ، اما می توان از آن برای تولید فرکانس در محدوده مادون قرمز استفاده کرد. برای این آزمایش از دستور زیر استفاده می کنیم:

FREQOUT 8 ، 1 ، 38500

این فرکانس 38.5 کیلوهرتز را که 1 میلی ثانیه طول می کشد به P8 ارسال می کند. مدار LED مادون قرمز متصل به P8 این فرکانس را پخش می کند. اگر نور مادون قرمز توسط جسمی در مسیر خود به Boe-Bot بازتاب شود ، آشکارساز مادون قرمز یک سیگنال به BASIC Stamp ارسال می کند تا به او اطلاع دهد که نور مادون قرمز منعکس شده تشخیص داده شده است.

کلید کار یک جفت IR ارسال 1 میلی ثانیه فرکانس 38.5 کیلوهرتز و ذخیره فوری خروجی آشکارساز IR در یک متغیر است.

این مثال ذخیره مقدار آشکارساز IR را در متغیری به نام irDectectLeft نشان می دهد

FREQOUT 8 ، 1 ، 38500

irDetectLeft = IN9

حالت خروجی آشکارساز IR هنگامی که سیگنال IR زیاد نمی بیند. هنگامی که آشکارساز IR می بیند که هارمونیک 38500 هرتز توسط یک جسم منعکس می شود ، خروجی آن کم است. خروجی آشکارساز IR تنها پس از انجام فرمان FREQOUT برای ارسال هارمونیک ، برای کسری از میلی ثانیه پایین می ماند ، بنابراین ذخیره خروجی آشکارساز IR بلافاصله پس از ارسال دستور FREQOUT ضروری است. مقدار ذخیره شده توسط متغیر سپس می تواند در ترمینال اشکال زدایی نمایش داده شود یا برای تصمیم گیری های ناوبری توسط Boe-Bot استفاده شود.

مرحله 6: آزمایش جفت های مادون قرمز - سخت افزار + نرم افزار

آزمایش جفت های مادون قرمز - سخت افزار + نرم افزار
آزمایش جفت های مادون قرمز - سخت افزار + نرم افزار

اکنون که اصول اولیه را می دانید ، می توانیم سخت افزار و نرم افزار را کنار هم قرار دهیم تا یک جفت را با هم آزمایش کرده و از آنچه IR IR تشخیص می دهد بازخورد بلادرنگ دریافت کنیم

می توانید سعی کنید کد را خودتان بسازید یا از کد زیر استفاده کنید

'{$ 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 برای آزمایش جفت IR خود استفاده خواهید کرد.
  2. یک شیء مانند دست خود یا یک ورق کاغذ را در فاصله یک اینچی از جفت IR سمت چپ قرار دهید
  3. تأیید کنید که وقتی یک شیء را در مقابل جفت IR قرار می دهید ، Debug Terminal یک 0 را نشان می دهد ، و هنگامی که شی را از مقابل جفت IR حذف می کنید ، 1 را نمایش می دهد.
  4. اگر ترمینال اشکال زدایی مقادیر مورد انتظار را نشان نمی دهد ، مراحل Trouble-Shooting Step را امتحان کنید.

مرحله 7: عیب یابی (برای مشکلات مربوط به مرحله آخر)

ترمینال DEBUG مقادیر غیر منتظره را نمایش می دهد

مدار را برای اتصال کوتاه ، اتصالات نامناسب یا از دست رفته ، قطعات آسیب دیده ، مقاومت های نادرست یا هر مشکل قابل مشاهده دیگری بررسی کنید

برنامه را از خطاهای منطقی یا نحوی بررسی کنید - اگر در آخرین مرحله از کد خود استفاده کرده اید ، از کد ارائه شده استفاده کنید

همیشه 0 را دریافت می کنید ، حتی وقتی هیچ شیئی در مقابل Boe-Bot قرار ندارد

بررسی کنید آیا اجسامی در نزدیکی منعکس کننده سیگنال مادون قرمز هستند یا خیر. میز جلوی Boe-Bot می تواند علت باشد. Boe-Bot را به فضای باز منتقل کنید تا LED IR و آشکارساز نتوانند هیچ جسم مجاور را منعکس کنند.

خواندن بیشتر اوقات 1 زمانی است که هیچ شیئی در مقابل Boe-Bot وجود نداشته باشد ، اما گاهی اوقات 0 عدد چشمک می زند

ممکن است تداخل نور فلورسنت مجاور ایجاد شود. چراغ های فلورسنت مجاور را خاموش کرده و آزمایش های خود را تکرار کنید. اگر مشکل همچنان ادامه داشت ، مرحله 9 ممکن است مشکل را آشکار کند

مرحله 8: جفت IR دوم

جفت IR دوم
جفت IR دوم

حالا که برنامه IR سمت چپ را دارید ، نوبت شماست که مدار را ایجاد کرده و جفت IR راست را برنامه ریزی کنید

  1. عبارت DEBUG ، عنوان و نظرات را برای اشاره به جفت IR مناسب تغییر دهید.
  2. نام متغیر را از irDetectLeft به irDetectRight تغییر دهید. شما باید این کار را در چهار مکان برنامه انجام دهید.
  3. آرگومان Pin فرمان FREQOUT را از 8 به 2 تغییر دهید.
  4. رجیستر ورودی تحت نظارت متغیر irDetectRight را از IN9 به IN0 تغییر دهید.
  5. مراحل آزمایش را در این فعالیت برای جفت IR مناسب تکرار کنید. با مدار LED IR متصل به 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: اضافه کردن جفت های IR بیشتر

اضافه کردن جفت های IR بیشتر
اضافه کردن جفت های IR بیشتر

اگر می خواهید دقت بیشتری در حرکت Boe-Bot خود داشته باشید ، ممکن است بخواهید جفت IR بیشتری اضافه کنید. 3 عملکرد را در مقایسه با دو بسیار بهبود می بخشد. می توانید از یک جفت مرکزی برای اسکن یک مانع مستقیم استفاده کنید و از دو IR IR جانبی برای تعیین میزان چرخش استفاده کنید. با این حال ، نقص طراحی جفت 3 IR این است که ممکن است هنگام کشیدن به دیوار بدانید ، زیرا جفت IR مرکزی برای تشخیص موانع استفاده می شود. برای حل این مشکل ، می توانید یک جفت IR به هر طرف با مقدار مقاومت بالا اضافه کنید-بنابراین سیگنال مادون قرمز تنها در صورتی تشخیص داده می شود که Boe-Bot نزدیک به یک طرف یا یک دیوار با زاویه ملایم باشد.

مرحله 11: پنج جفت IR - مدار

پنج جفت IR - مدار
پنج جفت IR - مدار

هنگام هدایت دو LED IR به پهلو دقت کنید زیرا چرخاندن آنها ممکن است باعث لمس سیم ها و ایجاد اتصال کوتاه شود.

مرحله 12: پنج جفت IR - کد

پنج جفت IR - کد
پنج جفت IR - کد

ممکن است بخواهید قبل از استفاده از این کد برنامه نویسی Boe-Bot خود را امتحان کنید:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'پنج IR IR Paate Deatection Code' Matthew Shaw 'May 8 2019 (نسخه 7)' تشخیص اشیاء و پردازش منطقی اساسی برای حل پیچ و خم

irDetectLeft VAR Bit 'متغیر برای سمت چپ

متغیر irDetectCentre VAR 'متغیر برای مرکز irDetectRight VAR Bit' متغیر برای سمت راست irDetectLSide VAR Bit 'متغیر برای سمت چپ irDetectRSide VAR Bit' متغیر برای سمت راست irDetectLSideFar VAR 'متغیر برای مقاومت کم در سمت چپ irDetectRSideFar کم VAR سمت راست'

mLoop VAR Word

پین Lmotor 15 'موتور چپ به پین 14 متصل است ، پالس ها از اینجا عبور می کنند

پین Rmotor 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

FREQOUT 6 ، 1 ، 38500 'مرکز

irDetectCentre = IN5

FREQOUT 3 ، 1 ، 38500 'سمت راست

irDetectRight = IN2

FREQOUT 10 ، 1 ، 38500 'چپ بستن

irDetectLSide = IN11

FREQOUT 1، 1، 38500 'right بستن

irDetectRSide = IN0

FREQOUT 9 ، 1 ، 38500

irDetectLSideFar = IN11

FREQOUT 4 ، 1 ، 38500 'سمت راست

irDetectRSideFar = IN0

IR irDetectLSide = 0 AND irDetectRSide = 0 سپس "شروع فرمان" دستان خود را از دو آشکارساز جانبی عبور دهید تا برنامه شروع شود

اصلی:

مکث 1000 انجام دهید

PULSOUT Lmotor ، LFast 'موتور چپ با سرعت کامل کار می کند

PULSOUT موتور Rmotor ، RFast 'Right با سرعت کامل کار می کند

FREQOUT 6 ، 1 ، 38500 'مرکز

irDetectCentre = IN5

FREQOUT 10 ، 1 ، 38500 'چپ بستن

irDetectLSide = IN11

FREQOUT 1 ، 1 ، 38500 'سمت راست

irDetectRSide = IN0

IF irDetectLSide = 0 AND irDetectRSide = 1 THEN

PULSOUT Lmotor، LFast انجام دهید

FREQOUT 6 ، 1 ، 38500 'مرکز

irDetectCentre = IN5 IF irDetectCentre = 0 THEN سنت

FREQOUT 10 ، 1 ، 38500 'چپ بستن

irDetectLSide = IN11

FREQOUT 3 ، 1 ، 38500 'سمت راست

irDetectRight = IN2

LOOP UNTIL irDetectLSide = 1 OR irDetectRSide = 0

ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 THEN

Rmotor ، RFast را انجام دهید

FREQOUT 6 ، 1 ، 38500 'مرکز

irDetectCentre = IN5 IF irDetectCentre = 0 THEN سنت

FREQOUT 10 ، 1 ، 38500 'چپ بستن

irDetectLSide = IN11

FREQOUT 3 ، 1 ، 38500 'سمت راست

irDetectRight = IN2

LOOP UNTIL irDetectLSide = 0 OR irDetectRSide = 1

'ENDIF

IF irDetectCentre = 0 THEN 'START

FREQOUT 7 ، 1 ، 38500 'سمت چپ irDetectLeft = IN8

FREQOUT 6 ، 1 ، 38500 'مرکز

irDetectCentre = IN5

FREQOUT 3 ، 1 ، 38500

irDetectRight = IN2

مکث 1000 مکث برای نشان دادن سیگنال تشخیص داده شده

IF (irDetectLeft = 1 AND irDetectRight = 0) سپس مدت زمان را ارزیابی کنید

GOSUB turnLeft

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) THEN

GOSUB turnRight

ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) سپس

GOSUB turnDecide

دیگر

GOSUB turnReverse

ENDIF

ENDIF 'END

LOOP

پایان

به سمت چپ برو، به سمت چپ برگرد:

DM PULSOUT Lmotor، LRev FREQOUT 8، 1، 38500 irDetectLeft = IN9 FREQOUT 5، 1، 38500 irDetectCentre = IN4 FREQOUT 2، 1، 38500 irDetectRight = IN0 LOOP INTIL IN0 = 1 RETURN

بپیچ به راست:

DM PULSOUT Rmotor، RRev FREQOUT 8، 1، 38500 irDetectLeft = IN9 FREQOUT 5، 1، 38500 irDetectCentre = IN4 FREQOUT 2، 1، 38500 irDetectRight = IN0 LOOP INTIL IN9 = 1

برگشت

turnReverse:

FOR mLoop = 0 TO 50 PULSOUT Rmotor، RRev PULSOUT Lmotor، LRev PAUSE 20 PULSOUT Lmotor، LRev PAUSE 20 NEXT DO PULSOUT Rmotor، RRev FREQOUT 8، 1، 38500 irDetectLeft = IN، 1 ، 38500 irDetectRight = IN0 LOOP تا IN9 = 1

برگشت

turnDecide: از مقاومت کمتری برای مشاهده بیشتر استفاده می کند

FREQOUT 9 ، 1 ، 38500

irDetectLSideFar = IN11

FREQOUT 4 ، 1 ، 38500 'سمت راست

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) سپس ارزیابی مدت زمان

GOSUB turnLeft

ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) THEN

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) THEN

GOSUB turnLeft

دیگر

GOSUB turnReverse

ENDIF

برگشت

توصیه شده: