Мазмуну:

Бое-бот инфракызыл детекторлор менен: 12 кадам (сүрөттөр менен)
Бое-бот инфракызыл детекторлор менен: 12 кадам (сүрөттөр менен)

Video: Бое-бот инфракызыл детекторлор менен: 12 кадам (сүрөттөр менен)

Video: Бое-бот инфракызыл детекторлор менен: 12 кадам (сүрөттөр менен)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Декабрь
Anonim
Бое-бот инфракызыл детекторлор менен
Бое-бот инфракызыл детекторлор менен

Бул көрсөтмө тоскоолдуктарды болтурбоо үчүн инфракызыл детекторлордун жардамы менен лабиринтте чуркай турган Бое-Ботту кантип курууну жана коддоону көрсөтөт. Бул сиздин муктаждыктарыңызга ылайыктуу оңой өзгөртүүгө мүмкүндүк берүүчү ээрчүү оңой. Бул схема жана программалоо боюнча негизги түшүнүктү талап кылат. Бул долбоор үчүн BASIC Stamp IDE программасына ээ болушуңуз керек. Бул жерден жүктөп алуу үчүн бекер. Ошондой эле Boe-Bot роботу

1 -кадам: Ресурстар

Электрондук компоненттер

Boe -Bot туташтыргычы кабели бар Parallax Store - BoeBot Kit

5 Infrared LEDдин Параллакс дүкөнү - IR өткөргүчтөрүн жыйноочу комплект

5 Infrared Shield Assemblies

5 инфракызыл детекторлор Parallax Store - BoeBot IR Receiver

Резисторлор

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

Ассорти зым ABRA Electronics - 22 Gauge Wire

3 LED'дин ABRA Electronics - 5мм Кызыл LED

Колдоо

Компьютер

Негизги штамп редактору - (Freeware)

Куралдар

Wire Cutter ABRA Electronics - Wire Cutter (Милдеттүү эмес)

Wire Stripper ABRA Electronics - Зымдарды чечүүчү

Башка

Дубалдар (лабиринт куруу үчүн)

2 -кадам: Инфракызыл аныктоо кантип иштээрин түшүнүү (Милдеттүү эмес)

Infrared Detection кантип иштээрин түшүнүү (Милдеттүү эмес)
Infrared Detection кантип иштээрин түшүнүү (Милдеттүү эмес)

Инфракызыл фаралар

Бое-Ботко кура турган инфракызыл объекттерди аныктоо системасы бир нече жагынан машинанын фараларына окшош. Машинанын фарасынын жарыгы тоскоолдуктарды чагылдырганда, сиздин көзүңүз тоскоолдуктарды аныктайт жана мээңиз аларды иштетип, денеңизди ошого жараша жетектейт. Бое-Бот фаралар үчүн инфракызыл диоддорду колдонот. Алар инфракызыл нурларды чыгарышат, кээ бир учурларда инфракызыл объектилерди чагылдырат жана Бое-Бот багытында кайра секирет. Бое-Боттун көзү-инфракызыл детекторлор. Инфракызыл детекторлор объекттен чагылган инфракызылдын табылганын же жок экенин көрсөткөн сигналдарды жөнөтүшөт. Бое-Боттун мээси, BASIC Stamp, бул сенсордун киришинин негизинде чечим чыгарат жана servo моторлорду иштетет. Сүрөт 7-1 ИР фаралары менен объекттерди аныктоо IR детекторлорунда ички фотодиод сенсору менен аныктагыбыз келген 980 нм инфракызылдан башка өтө аз жарыкка жол берген камтылган оптикалык чыпкалар бар. Инфракызыл детектордо ошондой эле 38,5 кГц тегерегиндеги сигналдарды өткөрүүгө мүмкүндүк берген электрондук чыпкасы бар. Башкача айтканда, детектор секундасына 38, 500 жолу өчүп -күйгөн инфракызылды гана издейт. Бул күн нуру жана ички жарык сыяктуу жалпы булактардан IR кийлигишүүсүн алдын алат. Күндүн нуру DC кийлигишүүсү (0 Гц), ал эми ички жарыктандыруу региондогу негизги энергия булагына жараша 100 же 120 Гцте күйүп -өчөт. 120 Гц электрондук чыпканын 38.5 кГц жыштыктагы чегинен тышкары болгондуктан, аны IR детекторлору толугу менен этибарга албайт.

-Paralax Student Guide

3 -кадам: IR LEDлерин чогултуу

IR LEDлерин чогултуу
IR LEDлерин чогултуу

IR LEDди корпустун чоң бөлүгүнө салыңыз

LEDдин ачык бөлүгүн корпустун кичирээк бөлүгү менен жабыңыз

4 -кадам: Инфракызыл жуптарды тестирлөө - Район

Инфракызыл жуптарды тестирлөө - Район
Инфракызыл жуптарды тестирлөө - Район
Инфракызыл жуптарды тестирлөө - Район
Инфракызыл жуптарды тестирлөө - Район

Биз эч нерсеге өтө терең киришүүдөн мурун, биз IR түгөйүнүн иштешин текшерүү үчүн сынайбыз (Бир инфракызыл LED жана бир инфракызыл детектор).

Бое-Ботуңуздун үстүнө орнотулган нан тактасында жогорудагы схеманы куруудан баштаңыз

5 -кадам: Инфракызыл жуптарды тестирлөө - Негизги код

Албетте, биз IR түгөйлөрүбүздүн иштеши үчүн код жазышыбыз керек

Бул үчүн FREQOUT буйругун колдонот. Бул буйрук аудио обондор үчүн иштелип чыккан, бирок аны инфракызыл диапазондо жыштыктарды чыгаруу үчүн колдонсо болот. Бул сыноо үчүн биз буйрукту колдонобуз:

FREQOUT 8, 1, 38500

бул P8ге 1 мс созулган 38,5 кГц жыштыгын жөнөтөт. P8ге туташкан инфракызыл LED схемасы бул жыштыкты таратат. Эгерде инфракызыл нур Бое-Ботко жолундагы объект тарабынан кайра чагылдырылса, инфракызыл детектор BASIC маркасына сигналды жиберип, чагылдырылган инфракызыл жарыктын табылганын билдирет.

IR жуп иштешинин ачкычы 38,5 кГц FREQOUT 1 мс жөнөтүү жана IR детекторунун өндүрүшүн дароо өзгөрмөлүү сактоо.

Бул мисал IR Detector маанисин irDectectLeft деп аталган бир аз өзгөрмөсүндө сактоону көрсөтөт

FREQOUT 8, 1, 38500

irDetectLeft = IN9

IR детекторунун чыгуу абалы, ал эч кандай IR сигналын көргөндө. IR детектору объект тарабынан чагылдырылган 38500 Гц гармоникти көргөндө, анын өндүрүмдүүлүгү төмөн. IR детекторунун өндүрүшү FREQOUT командасы гармоникти жөнөткөндөн кийин миллисекундка чейин гана төмөн бойдон калат, андыктан IR детекторунун өндүрүшүн FREQOUT командасын жөнөткөндөн кийин дароо өзгөрмөгө сактоо керек. Өзгөрмө сакталган маани анда мүчүлүштүктөрдү оңдоо терминалында көрсөтүлүшү же Бое-Боттун навигациялык чечимдери үчүн колдонулушу мүмкүн.

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. Бое-Ботту сериялык кабелге туташтырыңыз, анткени сиз IR түгөйүңүздү текшерүү үчүн DEBUG терминалын колдоносуз.
  2. Колуңуз же кагаз баракчаңыз сыяктуу объектти сол IR жуптан бир дюймдай аралыкта коюңуз
  3. IR жуптун алдына объектти койгондо, Debug Terminal 0ди көрсөтөөрүн текшериңиз, жана объектти IR түгөйүнүн алдынан алып салсаңыз, ал 1 көрсөтөт.
  4. Эгерде мүчүлүштүктөрдү оңдоо терминалы күтүлгөн баалуулуктарды көрсөтпөсө, Кыйынчылыктарды чечүү кадамындагы кадамдарды байкап көрүңүз.

7-кадам: Кыйынчылыктарды жоюу (Акыркы кадамдагы көйгөйлөр үчүн)

DEBUG Терминалы күтүлбөгөн баалуулуктарды көрсөтүүдө

Шор, кыска же туура эмес туташтыргычтар, бузулган компоненттер, туура эмес резисторлор же башка көрүнгөн маселе боюнча схеманы текшериңиз

Программаны логикалык же синтаксистик каталардан текшериңиз - Эгерде сиз акыркы кадам үчүн өз кодуңузду колдонгон болсоңуз, анда берилген кодду колдонууну карап көрүңүз

Дайыма 0 алуу, Бое-Боттун алдына эч кандай объекттер жок болсо дагы

Инфракызыл сигналды чагылдырган жакын жердеги объекттердин бар -жогун текшериңиз. Бое-Боттун алдындагы стол себеп болушу мүмкүн. Бое-Ботту ачык мейкиндикке жылдырыңыз, ошондо IR LED жана детектор жакынкы объектилерди чагылдыра албайт.

Бое-Боттун алдында эч нерсе жок болгон учурда окуу көбүнчө 1, бирок анда-санда 0 чейин жылып турат.

Жакын жердеги флюоресценттик жарыктан тоскоолдук болушу мүмкүн; Жакын жердеги люминесценттик жарыкты өчүрүп, сыноолорду кайталаңыз. Эгерде көйгөй чечилбесе, 9 -кадам көйгөйдү ачышы мүмкүн

8 -кадам: Экинчи IR жуп

Экинчи IR жуп
Экинчи IR жуп

Эми сизде IRдин сол программасы бар, бул сиздин схемаңызды жасоо жана туура IR Pair программасын түзүү

  1. Оң IR түгөйүнө кайрылуу үчүн DEBUG билдирүүсүн, аталышын жана комментарийлерин өзгөртүңүз.
  2. IrDetectLeftтен irDetectRightке өзгөрмөнүн атын өзгөртүү. Сиз муну программанын төрт жеринде жасашыңыз керек.
  3. FREQOUT командасынын Pin аргументин 8ден 2ге өзгөртүңүз.
  4. IrDetectRight өзгөрмөсү көзөмөлдөгөн киргизүү регистрин IN9дан IN0га өзгөртүңүз.
  5. Туура IR жуп үчүн бул ишмердүүлүктө тестирлөө кадамдарын кайталаңыз; IR LED схемасы P2ге жана детектор P0го туташкан.

9 -кадам: Инфракызыл кийлигишүүнү аныктоо (Милдеттүү эмес)

Infrared кийлигишүүнү аныктоо (милдеттүү эмес)
Infrared кийлигишүүнү аныктоо (милдеттүү эмес)

Сиз табылбашы керек болгон сигналдарды аныктоодо көйгөйлөргө туш болуп жатасызбы же башка жерде IR аныктооңузду көрсөтүүнү пландап жатасызбы, сиз кийлигишүүнү текшерип көрүшүңүз мүмкүн.

Бул тестирлөө программасынын концепциясы абдан жөнөкөй, сиз инфракызыл сигналдарды эч нерсени жөнөтпөстөн аныктайсыз.

Сиз так эле схеманы колдоно аласыз, бирок кодду өзгөртүүгө туура келет. сиз өзүңүздүн кодуңузду жазууну тандасаңыз болот, бирок төмөндө берилген кодду колдонсоңуз болот:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 ЖЕ IN0 = 0 ОНДО МЕБУГАТ "Тоскоолдуктар аныкталды" ТОКТОТУУ 100 ЛУП

Эгерде сиз тоскоолдуктарга дуушар болсоңуз, ыктымалдуу булакты аныктап, аны өчүрүп/алып салыңыз же Бое-Ботуңузду иштеткен жерге көчүрүңүз.

10 -кадам: Көбүрөөк IR жуптарын кошуу

Дагы IR жуптарын кошуу
Дагы IR жуптарын кошуу

Эгерде сиз Бое-Ботуңуздун кыймылынын тактыгын кааласаңыз, анда дагы IR жуптарын кошууну каалашыңыз мүмкүн. 3 Абдан жакшыртат эки караганда салыштырмалуу; түз тоскоолдукту издөө үчүн борбордук жупту колдонсоңуз болот жана канча бурулуш керек экендигин аныктоо үчүн эки капталдагы ИРди колдоно аласыз. Бирок, 3 IR жуп дизайнынын кыйрашы, дубалга сүзүлүп баратканыңызды билишиңиз мүмкүн, анткени борбордук IR жуп тоскоолдуктарды аныктоо үчүн колдонулат. Бул маселени чечүү үчүн, ар бир тарапка IR каршылыгын жогорку каршылык мааниси менен кошсоңуз болот, андыктан Бое-Бот капталга же жумшак бурчта дубалга жакын болгондо гана инфракызыл сигнал байкалат.

11 -кадам: Беш IR Pair - Circuit

Беш IR Pair - Circuit
Беш IR Pair - Circuit

Эки IR LEDди капталга багыттап жатканда этият болуңуз, анткени аларды буроо учтардын тийүүсүнө жана кыска туташууга алып келиши мүмкүн.

12 -кадам: Беш IR Pair - Code

Беш IR жуптары - Code
Беш IR жуптары - Code

Бул кодду колдонуудан мурун Бое-Ботуңузду программалап көргүңүз келиши мүмкүн:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Беш IR жупту ажыратуу коду' Мэттью Шоу 'Май 8 2019 (7 -версия)' Лабиринттерди чечүү үчүн объекттерди аныктоо жана негизги логикалык иштетүү

irDetectLeft VAR Bit 'Сол үчүн өзгөрмө

irDetectCentre VAR Bit 'борбор үчүн өзгөрмө irDetectRight VAR Bit' оңго өзгөрмө irDetectLSide VAR Bit 'солго өзгөрмө irDetectRSide VAR Bit' оң тарапка өзгөрмө

mLoop VAR Word

Lmotor PIN 15 'Сол мотор пин 14кө туташкан, импульстар бул жерден өтөт

Rmotor PIN 14 'оң = 15

ылдамдыгы-> 650-750-850

LFast CON 850 'Толук ылдамдыкта сол мотор үчүн констант RFast CON 650' Оң мотор үчүн толук ылдамдыкта констант

LStop CON 750 'Сол мотор үчүн толук ылдамдыкта констант

RStop CON 650 'Оң мотор үчүн толук ылдамдыкта констант

LMid CON 830 'Орто ылдамдыкта сол мотор үчүн констант

RMid CON 700 'Орто ылдамдыкта оң мотор үчүн констант

LSlow CON 770 'Минималдуу ылдамдыкта сол мотор үчүн констант

RSlow CON 730 'Минималдуу ылдамдыкта оң мотор үчүн констант

LRev CON 650 'Сол кыймылдаткыч үчүн констант толук ылдамдыкта

RRev CON 850 'Сол мотор үчүн констант толук ылдамдыкта

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 'оң Жабуу

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'оң жагы

irDetectRSideFar = IN0

IF irDetectLSide = 0 ЖАНА irDetectRSide = 0 ОШОНДО негизги 'БАШТОО КОМАНДАСЫ программаны баштоо үчүн эки тараптуу детекторлордун жанынан колуңузду булгалаңыз

Негизги:

PAUSE 1000 DO

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 ЖАНА irDetectRSide = 1 КИЙИН

Lmotor, LFast чыгарыңыз

FREQOUT 6, 1, 38500 'борбору

irDetectCentre = IN5 IF irDetectCentre = 0 ОШОНДО цент

FREQOUT 10, 1, 38500 'Солго жабуу

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'оң жагы

irDetectRight = IN2

IrDetectLSide = 1 ЖЕ irDetectRSide = 0 КӨРСӨТҮҮ

ELSEIF irDetectLSide = 1 ЖАНА irDetectRSide = 0 ОШОНДО

Rmotor, RFast чыгарыңыз

FREQOUT 6, 1, 38500 'борбору

irDetectCentre = IN5 IF irDetectCentre = 0 ОШОНДО цент

FREQOUT 10, 1, 38500 'Солго жабуу

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'оң жагы

irDetectRight = IN2

IrDetectLSide = 0 ЖЕ irDetectRSide = 1 КЕЛГЕНГЕ ЧЕЙИН

'ENDIF

IF irDetectCentre = 0 СОНУН БАШТА

FREQOUT 7, 1, 38500 'сол жагы irDetectLeft = IN8

FREQOUT 6, 1, 38500 'борбору

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'тыныгуу табылган сигналды көрсөтүү үчүн

ЭГЕР (irDetectLeft = 1 ЖАНА irDetectRight = 0) АНДА 'узактыгын баалаңыз

GOSUB turnLeft

ELSEIF (irDetectLeft = 0 ЖАНА irDetectRight = 1) СОНУН

GOSUB turnRight

ELSEIF (irDetectLeft = 1 ЖАНА irDetectRight = 1) СОНУН

GOSUB turnDecide

БАШКА

GOSUB turnReverse

ENDIF

ENDIF 'END

LOOP

АЯКТА

turnLeft:

LMotor PULSOUT, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 INO INO = 1 КАЙТУУ

оңго бурулуу:

RMotor PULSOUT, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 IN9 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 = IN9 1, FREQO00 5 INR 1, 38500 irDetectRight = IN0 IN9 IN9 = 1

КАЙТУУ

turnDecide: 'ары көрүү үчүн төмөнкү каршылыкты колдонот

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'оң жагы

irDetectRSideFar = IN0

ЭГЕР (irDetectLSideFar = 1 ЖАНА irDetectRSideFar = 0) АНДА 'узактыгын баалоо

GOSUB turnLeft

ELSEIF (irDetectLSideFar = 0 ЖАНА irDetectRSideFar = 1) СОНУН

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 ЖАНА irDetectRSideFar = 1) СОНУН

GOSUB turnLeft

БАШКА

GOSUB turnReverse

ENDIF

КАЙТУУ

Сунушталууда: