Mundarija:

Infraqizil detektorli Boe-Bot: 12 qadam (rasmlar bilan)
Infraqizil detektorli Boe-Bot: 12 qadam (rasmlar bilan)

Video: Infraqizil detektorli Boe-Bot: 12 qadam (rasmlar bilan)

Video: Infraqizil detektorli Boe-Bot: 12 qadam (rasmlar bilan)
Video: Инфракрасный детектор 2024, Iyul
Anonim
Infraqizil detektorli Boe-bot
Infraqizil detektorli Boe-bot

Bu ko'rsatma to'siqlardan qochish uchun infraqizil detektor yordamida labirintni boshqaradigan Boe-Botni qanday qurish va kodlashni ko'rsatib beradi. Bu sizning ehtiyojlaringizga mos keladigan o'zgartirishlarni osonlik bilan bajarishga imkon beradigan qo'llanma. Buning uchun sxemalar va dasturlash haqida asosiy tushuncha kerak. Ushbu loyiha uchun siz BASIC Stamp IDE dasturiga ega bo'lishingiz kerak bo'ladi. Bu erda bepul yuklab olish. Boe-Bot roboti kabi

1 -qadam: Resurslar

Elektron komponentlar

Boe -Bot ulagich kabeli bilan Parallax Store - BoeBot Kit

5 Infraqizil LEDning Parallax do'koni - IQ uzatuvchi yig'ish to'plami

5 ta infraqizil qalqonni yig'ish

5 ta infraqizil detektor Parallax do'koni - BoeBot IQ qabul qiluvchisi

Rezistorlar

  • (2) 4,7 kΩ ABRA Electronics - 4,7 kΩ
  • (5) 220 Ω ABRA Electronics - 220 Ω
  • (2) 1 kΩ ABRA Electronics - 1 kΩ
  • (5) 2 k ABRA Electronics - 2 kΩ

ABRA Electronics -ning turli xil simlari - 22 o'lchagichli sim

3 LEDli ABRA Electronics - 5 mm qizil LED

Qo'llab -quvvatlash

Kompyuter

BASIC muhri muharriri - (bepul dasturiy ta'minot)

Asboblar

Tel kesuvchi ABRA Electronics - sim kesuvchi (ixtiyoriy)

Tel -stripper ABRA Electronics - simlarni tortuvchi

Boshqa

Devorlar (labirint qurish uchun)

2 -qadam: Infraqizil algılamanın qanday ishlashini tushunish (ixtiyoriy)

Infraqizil algılamanın qanday ishlashini tushunish (ixtiyoriy)
Infraqizil algılamanın qanday ishlashini tushunish (ixtiyoriy)

Infraqizil faralar

Biz Boe-Botda quradigan infraqizil ob'ektlarni aniqlash tizimi ko'p jihatdan avtomobilning faralariga o'xshaydi. Agar mashina faralaridagi yorug'lik to'siqlarni aks ettirsa, sizning ko'zingiz to'siqlarni aniqlaydi va miyangiz ularni qayta ishlaydi va tanangizni mos ravishda mashinaga yo'naltiradi. Boe-Bot faralar uchun infraqizil LEDlardan foydalanadi. Ular infraqizil nurlar chiqaradi va ba'zi hollarda infraqizil ob'ektlarni aks ettiradi va Boe-Bot yo'nalishi bo'yicha orqaga qaytadi. Boe-Botning ko'zlari-infraqizil detektorlar. Infraqizil detektorlari ob'ektdan aks ettirilgan infraqizilni aniqlayaptimi yoki yo'qligini ko'rsatuvchi signallarni yuboradi. Boe-Botning miyasi, BASIC shtampi, sensorlar kiritgan ma'lumotlarga asoslanib, qaror qabul qiladi va servo dvigatellarni boshqaradi. 7-1-rasm IQ faralari yordamida ob'ektni aniqlash IQ detektorlari ichki fotodiod sensori yordamida aniqlamoqchi bo'lgan 980 nm infraqizil nurdan tashqari juda kam yorug'likka ruxsat beruvchi o'rnatilgan optik filtrlarga ega. Infraqizil detektorda elektron filtr ham mavjud bo'lib, u faqat 38,5 kHz atrofida signallarni o'tkazishga imkon beradi. Boshqacha aytganda, detektor faqat sekundiga 38,500 marta yonib -o'chadigan infraqizilni qidiradi. Bu quyosh nuri va ichki yoritish kabi umumiy manbalardan IQ aralashuvining oldini oladi. Quyosh nuri - bu DC aralashuvi (0 Gts) va ichki yoritish mintaqadagi asosiy quvvat manbaiga qarab 100 yoki 120 Gts chastotada yonadi va o'chadi. 120 Gts chastotali elektron filtrning 38,5 kHz chastotali chastotasi tashqarisida bo'lgani uchun, IQ detektorlari tomonidan umuman e'tiborga olinmaydi.

-Paralax talabalar uchun qo'llanma

3 -qadam: IQ LEDlarini yig'ish

IQ LEDlarni yig'ish
IQ LEDlarni yig'ish

IQ LEDini korpusning katta qismiga joylashtiring

LEDning aniq qismini korpusining kichikroq qismi bilan o'rab oling

4 -qadam: Infraqizil juftlarni sinab ko'rish - O'chirish

Infraqizil juftlarni sinovdan o'tkazish - davr
Infraqizil juftlarni sinovdan o'tkazish - davr
Infraqizil juftlarni sinovdan o'tkazish - davr
Infraqizil juftlarni sinovdan o'tkazish - davr

Biz hech narsaga chuqurroq kirishimizdan oldin, biz IQ juftligining ishlashini tekshiramiz (bitta infraqizil LED va bitta infraqizil detektor).

Yuqoridagi sxemani Boe-Botning tepasiga o'rnatilgan non panelida qurishdan boshlang

5 -qadam: Infraqizil juftlarni sinovdan o'tkazish - asosiy kod

Albatta, biz IR juftlarimiz ishlashi uchun kod yozishimiz kerak bo'ladi

Buning uchun FREQOUT buyrug'i ishlatiladi. Bu buyruq ovozli ohanglar uchun mo'ljallangan, biroq infraqizil diapazonda chastotalarni ishlab chiqarish uchun ishlatilishi mumkin. Ushbu test uchun biz buyruqni ishlatamiz:

FREQOUT 8, 1, 38500

bu 38,5 kHz chastotani 1 ms davom etadigan P8 ga yuboradi. P8 ga ulangan infraqizil LED sxemasi bu chastotani uzatadi. Agar infraqizil nur Boe-Botga o'z yo'lidagi ob'ekt tomonidan qaytarilsa, infraqizil detektori BASIC shtampiga signalni yuborib, aks ettirilgan infraqizil nur aniqlanganligini bildiradi.

IR juftligini ishlashning kaliti 38,5 kHz chastotali 1 msni yuborish va darhol IR detektorining chiqishini o'zgaruvchiga saqlashdir.

Bu misolda IR Detector qiymatining irDectectLeft nomli bit o'zgaruvchisida saqlanishi ko'rsatilgan

FREQOUT 8, 1, 38500

irDetectLeft = IN9

IQ signalining balandligi ko'rinmasa, IQ detektori chiqish holati. IQ detektori 38500 Gts chastotali harmonikani ob'ekt tomonidan aks ettirilganini ko'rganda, uning chiqishi past bo'ladi. IQ detektorining chiqishi FREQOUT buyrug'i harmonikani yuborganidan keyin millisekundning bir qismi uchun past darajada qoladi, shuning uchun FREQOUT buyrug'ini yuborganingizdan so'ng, IR detektorining chiqishini o'zgaruvchida saqlash juda muhimdir. O'zgaruvchi tomonidan saqlangan qiymat disk raskadrovka terminalida ko'rsatilishi yoki Boe-Bot tomonidan navigatsiya qarorlari uchun ishlatilishi mumkin.

6 -qadam: Infraqizil juftlarni sinovdan o'tkazish - Uskuna + dasturiy ta'minot

Infraqizil juftlarni sinovdan o'tkazish - Uskuna + dasturiy ta'minot
Infraqizil juftlarni sinovdan o'tkazish - Uskuna + dasturiy ta'minot

Endi siz asoslarni bilasiz, biz uskunani va dasturiy ta'minotni birlashtirib, bir juftni sinab ko'rishimiz va IR Pair aniqlagan narsadan real vaqtda fikr olishimiz mumkin.

Siz kodni o'zingiz sinab ko'rishingiz yoki quyidagi kodni ishlatishingiz mumkin

'{$ STAMP BS2}

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

  1. Boe-Botni ketma-ket kabelga ulangan holda qoldiring, chunki siz IR juftligini sinab ko'rish uchun DEBUG terminalidan foydalanasiz.
  2. Qo'lingiz yoki qog'oz varag'i kabi ob'ektni chap IR juftligidan bir dyuym masofada joylashtiring
  3. IQ juftligi oldiga ob'ekt qo'yganingizda, Debug Terminalida 0 ko'rsatiladi va ob'ektni IQ juftligidan olib tashlasangiz, u 1 ni ko'rsatadi.
  4. Agar disk raskadrovka terminali kutilgan qiymatlarni ko'rsatmasa, muammoni hal qilish bosqichidagi qadamlarni ko'ring.

7-qadam: Muammolarni bartaraf etish (oxirgi qadam bilan bog'liq muammolar uchun)

Debug terminali kutilmagan qiymatlarni ko'rsatadi

Qisqa kontaktlar, noto'g'ri joylashtirilgan yoki etishmayotgan ulagichlar, shikastlangan komponentlar, noto'g'ri rezistorlar yoki boshqa ko'rinadigan muammolarni tekshiring

Dasturni mantiqiy yoki sintaksik xatolardan tekshiring - Agar siz oxirgi bosqichda o'z kodingizdan foydalansangiz, berilgan kodni ishlatishni o'ylab ko'ring

Boe-Bot oldida hech qanday ob'ekt bo'lmasa ham, har doim 0 olinadi

Yaqin atrofda infraqizil signalni aks ettiruvchi ob'ektlar mavjudligini tekshiring. Boe-Bot oldidagi stol bunga sabab bo'lishi mumkin. Boe-Botni ochiq maydonga o'tkazing, shunda IQ LED va detektor yaqin atrofdagi ob'ektni aks ettira olmaydi.

O'qish ko'pincha Boe-Bot oldida hech qanday ob'ekt bo'lmaganida, lekin vaqti-vaqti bilan 0 ga miltillaydi.

Yaqin atrofdagi lyuminestsent nurdan shovqin bo'lishi mumkin; Yaqin atrofdagi lyuminestsent chiroqlarni o'chiring va testlarni takrorlang. Agar muammo davom etsa, 9 -qadam muammoni ochib berishi mumkin

8 -qadam: Ikkinchi IR juftligi

Ikkinchi IR juftligi
Ikkinchi IR juftligi

Endi sizda chap infraqizil uchun dastur bor, sizning davrangiz sxemani tuzish va to'g'ri IR juftligini dasturlash

  1. To'g'ri IR juftligiga murojaat qilish uchun DEBUG bayonotini, sarlavhasini va sharhlarini o'zgartiring.
  2. IrDetectLeft -dan irDetectRight -ga o'zgaruvchining nomini o'zgartiring. Siz buni dasturning to'rtta joyida qilishingiz kerak bo'ladi.
  3. FREQOUT buyrug'ining Pin argumentini 8 dan 2 gacha o'zgartiring.
  4. IrDetectRight o'zgaruvchisi tomonidan nazorat qilinadigan kirish registrini IN9 dan IN0 ga o'zgartiring.
  5. To'g'ri IR juftligi uchun ushbu faoliyatda test bosqichlarini takrorlang; P2 ga ulangan IR LED sxemasi va P0 ga ulangan detektor bilan.

9 -qadam: Infraqizil shovqinlarni aniqlash (ixtiyoriy)

Infraqizil shovqinlarni aniqlash (ixtiyoriy)
Infraqizil shovqinlarni aniqlash (ixtiyoriy)

Siz aniqlanmasligi kerak bo'lgan signallarni aniqlash bilan bog'liq muammolarga duch keldingizmi yoki siz IR -ni boshqa joyda ko'rsatishni rejalashtirdingizmi, shovqinni tekshirib ko'rishingiz mumkin.

Ushbu test dasturining kontseptsiyasi juda oddiy, siz infraqizil signallarni hech qanday uzatmasdan aniqlaysiz.

Siz aynan bir xil sxemadan foydalanishingiz mumkin, lekin siz kodni o'zgartirishingiz kerak bo'ladi. Siz o'z kodingizni yozishni tanlashingiz mumkin, lekin quyida keltirilgan koddan foydalanishingiz mumkin:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IN9 = 0 YOKI IN0 = 0 BOSHLANISHI "Shovqin aniqlandi" 100 LOOP PAUSE.

Agar siz shovqinlarga duch kelsangiz, ehtimol manbani aniqlang, uni o'chiring/o'chiring yoki Boe-Bot ishlaydigan joyingizni o'zgartiring.

10 -qadam: Ko'proq IR juftlarini qo'shish

Ko'proq IR juftlarini qo'shish
Ko'proq IR juftlarini qo'shish

Agar siz Boe-Botingizning harakatini aniqroq qilishni xohlasangiz, ko'proq IR-juftlarni qo'shishingiz mumkin. 3 ikkiga nisbatan ishlashni sezilarli darajada yaxshilaydi; siz to'g'ridan -to'g'ri to'siqni qidirish uchun markaziy juftlikdan foydalanishingiz mumkin va qancha burilish kerakligini aniqlash uchun ikkita yon IR -dan foydalanishingiz mumkin. Biroq, 3 ta IQ juftlik dizaynining qulashi shundaki, siz devorga siljiyotganingizda bilishingiz mumkin, chunki markaziy IR juftligi to'siqlarni aniqlash uchun ishlatiladi. Ushbu muammoni hal qilish uchun siz har bir tomonga yuqori qarshilik qiymatiga ega bo'lgan IQ juftini qo'shishingiz mumkin va shuning uchun infraqizil signal faqat Boe-Bot yon tomonga yoki devorga yumshoq burchak ostida joylashganida aniqlanadi.

11 -qadam: beshta IR juftligi - davr

IR beshta juftlik - elektron
IR beshta juftlik - elektron

Ikkita IQ LEDni yon tomonga yo'naltirishda ehtiyot bo'ling, chunki ularni burish simlarning tegishiga va qisqa tutashuvga olib kelishi mumkin.

12 -qadam: beshta IR juftligi - kod

IR beshta juftlik - kod
IR beshta juftlik - kod

Siz ushbu kodni ishlatishdan oldin Boe-Bot dasturlashni sinab ko'rishingiz mumkin:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Beshta IR -juftlikni ajratish kodi' Metyu Shou '2019 yil 8 -may (7 -versiya)' Ob'ektlarni aniqlash va labirintlarni echish uchun asosiy mantiqiy ishlov berish.

irDetectLeft VAR bitining chap tomonidagi o'zgaruvchisi

irDetectCentre VAR biti markaz uchun o'zgaruvchidir irDetectRight VAR biti o'ng uchun o'zgaruvchan irDetectLSide VAR biti chap tomoni uchun o'zgaruvchan irDetectRSide VAR bit

mLoop VAR Word

Lmotor PIN 15 'Chap dvigatel 14 -pinga ulangan, bu erda impulslar o'tadi

Rmotor PIN 14 'o'ng = 15

tezligi-> 650-750-850

LFast CON 850 'To'liq tezlikda chap dvigatel uchun konstanta RFast CON 650' O'ng dvigatel uchun to'liq tezlikda konstant

LStop CON 750 'Chap dvigatel uchun to'liq tezlikda doimiy

RStop CON 650 'O'ng dvigatel uchun to'liq tezlikda doimiy

LMid CON 830 'O'rta tezlikda chap dvigatel uchun doimiy

RMid CON 700 'O'rtacha tezlikda o'ng dvigatel uchun doimiy

LSlow CON 770 'Chap dvigatel uchun minimal tezlikda doimiy

RSlow CON 730 'Minimal tezlikda o'ng dvigatel uchun doimiy

LRev CON 650 'Chap dvigatel uchun teskari to'liq tezlikda

RRev CON 850 'Chap dvigatel uchun teskari yo'nalishda to'liq tezlikda

FREQOUT 7, 1, 38500 'chap tomonda

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'markazi

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'o'ng tomonda

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Chap yopish

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'o'ng Yopish

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'o'ng tomonda

irDetectRSideFar = IN0

Agar irDetectLSide = 0 VA irDetectRSide = 0 BOShQA asosiy "STARTING COMMAND" dasturini ishga tushirish uchun qo'llaringizni ikki yon detektor yonidan siljiting.

Asosiy:

PAUSE 1000 DO

PULSOUT Lmotor, LFastning chap dvigateli to'liq tezlikda ishlaydi

PULSOUT Rmotor, RFast o'ng mexanizmi to'liq tezlikda ishlaydi

FREQOUT 6, 1, 38500 'markazi

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Chap yopish

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'o'ng tomonda

irDetectRSide = IN0

IF irDetectLSide = 0 VA irDetectRSide = 1 KEYIN

Lmotor, LFast -ni tortib oling

FREQOUT 6, 1, 38500 'markazi

irDetectCentre = IN5 IF irDetectCentre = 0 SON foiz

FREQOUT 10, 1, 38500 'Chap yopish

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'o'ng tomonda

irDetectRight = IN2

IrDetectLSide = 1 OR irDetectRSide = 0 gacha bo'lgan davr

ELSEIF irDetectLSide = 1 VA irDetectRSide = 0 KEYIN

Rmotor, RFast -ni tortib oling

FREQOUT 6, 1, 38500 'markazi

irDetectCentre = IN5 IF irDetectCentre = 0 SON foiz

FREQOUT 10, 1, 38500 'Chap yopish

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'o'ng tomonda

irDetectRight = IN2

IrDetectLSide = 0 yoki irDetectRSide = 1 gacha bo'lgan davr

ENDIF

Agar irDetectCentre = 0 BOSHLASH

FREQOUT 7, 1, 38500 'chap tomoni irDetectLeft = IN8

FREQOUT 6, 1, 38500 'markazi

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

Aniqlangan signalni ko'rsatish uchun PAUSE 1000 'pauzasi

IF (irDetectLeft = 1 VA irDetectRight = 0) SONRA vaqtni baholang

GOSUB chapga burilish

ELSEIF (irDetectLeft = 0 VA irDetectRight = 1) Keyin

GOSUB turnRight

ELSEIF (irDetectLeft = 1 VA irDetectRight = 1) Keyin

GOSUB turnDecide qaror qabul qiling

BOShQA

GOSUB -ni teskari aylantirish

ENDIF

ENDIF 'END

Loop

OXIRI

Chapga buriling:

LMotor PULSOUT, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 INO = 1 QAYTISH.

O'ng tomonga buriling:

Rmotorni tortib oling, RRevni takrorlang 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 IN9 = 1 gacha.

Qaytish

teskari aylantirish:

MLoop uchun = 0 dan 50 gacha Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 1, 38 FREQO 5, 38500 irDetectRight = IN0 IN9 = 1 gacha

Qaytish

turnDecide: 'yanada ko'rish uchun pastroq qarshilikdan foydalanadi

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'o'ng tomonda

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 VA irDetectRSideFar = 0) SONRA vaqtni baholang

GOSUB chapga burilish

ELSEIF (irDetectLSideFar = 0 VA irDetectRSideFar = 1) Keyin

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 VA irDetectRSideFar = 1) Keyin

GOSUB chapga burilish

BOShQA

GOSUB -ni teskari aylantirish

ENDIF

Qaytish

Tavsiya: