Мазмұны:

Инфрақызыл детекторлары бар Boe-Bot: 12 қадам (суреттермен)
Инфрақызыл детекторлары бар Boe-Bot: 12 қадам (суреттермен)

Бейне: Инфрақызыл детекторлары бар Boe-Bot: 12 қадам (суреттермен)

Бейне: Инфрақызыл детекторлары бар Boe-Bot: 12 қадам (суреттермен)
Бейне: ТЕЗ КӨРІНІЗ!! | ИРАН АҚШ-қа СОҒЫС ашты?! | ИРАН мен АҚШ-тың арасындағы ҚАҚТЫҒЫС қалай басталды?! 2024, Қараша
Anonim
Инфрақызыл детекторлары бар Boe-Bot
Инфрақызыл детекторлары бар Boe-Bot

Бұл нұсқаулық кедергілерді болдырмау үшін инфрақызыл детекторлардың көмегімен лабиринтті шарлай алатын Boe-Bot құруды және кодтауды көрсетеді. Бұл сіздің қажеттіліктеріңізге сәйкес өзгертуге мүмкіндік беретін қарапайым нұсқаулық. Бұл схема мен бағдарламалау туралы негізгі түсінікті қажет етеді. Бұл жоба үшін сізге BASIC Stamp IDE бағдарламалық жасақтамасы қажет болады. Бұл жерден тегін жүктеп алуға болады. Сонымен қатар Boe-Bot роботы

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

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

Boe -Bot қосқыш кабелі бар Parallax Store - BoeBot жинағы

5 инфрақызыл жарық диодты параллакс дүкені - инфрақызыл таратқыштарды жинау жинағы

5 Инфрақызыл қалқан жинақтары

5 параллакс инфрақызыл детекторлар дүкені - BoeBot IR қабылдағышы

Резисторлар

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

Ассортиментті сымдар ABRA Electronics - 22 Gauge Wire

3 LED ABRA Electronics - 5 мм қызыл жарықдиодты

Қолдау

Компьютер

BASIC штамп редакторы - (ақысыз бағдарлама)

Құралдар

Сым кескіш ABRA Electronics - сым кескіш (міндетті емес)

Сымды тазартқыш ABRA Electronics - сымды тазартқыш

Әр түрлі

Қабырғалар (лабиринт салу үшін)

2 -қадам: Инфрақызыл анықтау қалай жұмыс істейтінін түсіну (міндетті емес)

Инфрақызыл анықтау қалай жұмыс істейтінін түсіну (міндетті емес)
Инфрақызыл анықтау қалай жұмыс істейтінін түсіну (міндетті емес)

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

Біз Бое-Ботқа салатын инфрақызыл объектілерді анықтау жүйесі бірнеше жағынан автомобильдің фараларына ұқсайды. Көлік фарасының жарығы кедергілерді көрсеткенде, сіздің көзіңіз кедергілерді анықтайды, ал сіздің миыңыз оларды өңдейді және денеңізді соған сәйкес басқарады. Boe-Bot фаралар үшін инфрақызыл жарықдиодты қолданатын болады. Олар инфрақызыл сәуле шығарады, ал кейбір жағдайларда инфрақызыл объектілерден шағылысады және Бое-Бот бағытында кері секіреді. Boe-Bot көздері-инфрақызыл детекторлар. Инфрақызыл детекторлар объектіден шағылған инфрақызыл сәулені анықтайтынын немесе көрсетпейтінін көрсететін сигналдарды жібереді. Boe-Bot-тің миы, BASIC Stamp, сенсордың осы кірісіне сүйене отырып, серво қозғалтқыштарын басқарады. Сурет 7-1 ИҚ фаралармен объектілерді анықтау ИҚ детекторларында біз ішкі фотодиодты сенсормен анықтағымыз келетін 980 нм инфрақызыл сәуледен басқа өте аз жарық түсіретін кіріктірілген оптикалық сүзгілер бар. Инфрақызыл детекторда электронды фильтр бар, ол тек 38,5 кГц айналасындағы сигналдардың өтуіне мүмкіндік береді. Басқаша айтқанда, детектор секундына 38 500 рет жыпылықтайтын инфрақызыл сәулені іздейді. Бұл күн сәулесі мен ішкі жарықтандыру сияқты жалпы көздердің ИҚ кедергісін болдырмайды. Күн сәулесі - бұл DC кедергісі (0 Гц), ал ішкі жарықтандыру аймақтағы негізгі қуат көзіне байланысты 100 немесе 120 Гц жиілікте қосылады және өшеді. 120 Гц электронды фильтрдің 38,5 кГц жолақ жиілігінен тыс болғандықтан, оны IR детекторлары мүлде елемейді.

-Paralax студенттік нұсқаулығы

3 -қадам: IR светодиодтарын жинау

IR жарықдиодты шамдарды жинау
IR жарықдиодты шамдарды жинау

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

Жарық диодының мөлдір бөлігін корпустың кіші бөлігімен жабыңыз

4 -қадам: Инфрақызыл жұптарды тексеру - схема

Инфрақызыл жұптарды тексеру - схема
Инфрақызыл жұптарды тексеру - схема
Инфрақызыл жұптарды тексеру - схема
Инфрақызыл жұптарды тексеру - схема

Біз ештеңеге тым терең енбестен бұрын, біз IR жұпының жұмыс істейтініне көз жеткіземіз (бір инфрақызыл жарық диоды мен бір инфрақызыл детектор).

Жоғарыда көрсетілген схеманы Boe-Bot үстіне орнатылған тақтаға орнатудан бастаңыз

5 -қадам: Инфрақызыл жұптарды тестілеу - негізгі код

Әрине, бізге IR жұптары жұмыс істеуі үшін код жазу керек болады

Ол үшін FREQOUT командасы қолданылады. Бұл пәрмен дыбыстық дыбыстарға арналған, бірақ оны инфрақызыл диапазонда жиіліктерді шығару үшін пайдалануға болады. Бұл тест үшін біз пәрменді қолданамыз:

FREQOUT 8, 1, 38500

бұл P8 -ге 1 мс созылатын 38,5 кГц жиілігін жібереді. P8 -ге қосылған инфрақызыл жарық диодты схема осы жиілікті таратады. Егер инфрақызыл сәуле Бое-Ботқа өз жолындағы объект арқылы кері шағылса, инфрақызыл детектор BASIC штампына сигналды жіберіп, шағылған инфрақызыл сәуленің анықталғанын хабарлайды.

ИҚ жұпының жұмысының кілті - 38,5 кГц жиіліктегі 1 мс жіберу және ИҚ детекторының шығысын айнымалыға сақтау.

Бұл мысал IR Detector мәнін irDectectLeft деп аталатын бит айнымалысында сақтауды көрсетеді

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Инфрақызыл детектордың IR күйі жоқ екенін көрген кездегі шығыс жағдайы. Инфрақызыл детекторы 38500 Гц гармоникасын объект арқылы шағылыстырғанда, оның шығысы төмен болады. IR детекторының шығысы FREQOUT пәрмені гармониканы жібергеннен кейін миллисекундтың бір бөлігінде ғана төмен болады, сондықтан FREQOUT пәрменін жібергеннен кейін ИҚ детекторының шығысын айнымалы мәнде сақтау қажет. Айнымалы сақтайтын мәнді Отладка терминалында көрсетуге немесе 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-ті сериялық кабельге жалғанған күйде қалдырыңыз, себебі сіз IR жұбын тексеру үшін DEBUG терминалын қолданасыз.
  2. Қолыңыз немесе қағаз парағы сияқты нысанды сол жақ ИҚ жұпынан бір дюйм қашықтықта орналастырыңыз
  3. Инфрақызыл жұптың алдына объект қойғанда, Отладка терминалы 0 көрсететінін тексеріңіз, ал объектіні IR жұбының алдында алып тастағанда, ол 1 көрсетеді.
  4. Егер жөндеу терминалы күтілетін мәндерді көрсетпесе, ақаулықты жою қадамындағы әрекеттерді орындап көріңіз.

7-қадам: ақауларды жою (соңғы қадамдағы мәселелер үшін)

Қате жіберу терминалы күтпеген мәндерді көрсетеді

Шортты, қосылмайтын қосқыштарды, зақымдалған компоненттерді, дұрыс емес резисторларды немесе басқа көрінетін ақауларды тексеріңіз

Бағдарламаны логикалық немесе синтаксистік қателерден тексеріңіз - Егер сіз соңғы қадам үшін өзіңіздің кодты пайдалансаңыз, берілген кодты қолдануды қарастырыңыз

Әрқашан 0 алынады, тіпті Boe-Bot алдында объектілер болмаса да

Жақын жерде инфрақызыл сигналды көрсететін объектілер бар -жоғын тексеріңіз. Бұған Boe-Bot алдындағы үстел себеп болуы мүмкін. Бое-ботты ашық кеңістікке жылжытыңыз, сонда ИҚ-диодты және детектор жақын орналасқан объектіні шағылыстыра алмайды.

Оқу-бұл Boe-Bot алдында ешнәрсе болмаған кезде жиі 1, бірақ кейде 0-ге дейін жыпылықтайды.

Жақын жерде орналасқан флуоресцентті жарықтан кедергі болуы мүмкін; Жақын жерде орналасқан флуоресцентті шамдарды өшіріп, сынақтарды қайталаңыз. Егер мәселе шешілмесе, 9 -қадам мәселені ашуы мүмкін

8 -қадам: Екінші IR жұп

Екінші IR жұп
Екінші IR жұп

Енді сізде сол жақ инфрақызылға арналған бағдарлама бар, схеманы жасау және дұрыс IR жұпты бағдарламалау сіздің кезегіңіз

  1. Оң жақ IR жұпына сілтеме жасау үшін DEBUG мәлімдемесін, атауын және түсініктемелерді өзгертіңіз.
  2. IrDetectLeft -тен irDetectRight айнымалы атауын өзгертіңіз. Сіз мұны бағдарламаның төрт жерінде жасауыңыз керек.
  3. FREQOUT командасының Pin аргументін 8 -ден 2 -ге өзгертіңіз.
  4. IrDetectRight айнымалысы бақылайтын кіріс регистрін IN9 -дан IN0 -ге өзгертіңіз.
  5. Осы әрекеттегі тестілеу қадамдарын дұрыс ИҚ жұбы үшін қайталаңыз; Р2 жалғанған IR жарықдиодты схемасы мен Р0 қосылған детектормен.

9 -қадам: инфрақызыл кедергілерді анықтау (міндетті емес)

Инфрақызыл кедергілерді анықтау (міндетті емес)
Инфрақызыл кедергілерді анықтау (міндетті емес)

Сіз анықталмайтын сигналдарды анықтауда қиындықтарға тап болсаңыз да немесе басқа жерде ИҚ анықтауды көрсетуді жоспарласаңыз да, сіз кедергілерді тексергіңіз келуі мүмкін.

Бұл тестілеу бағдарламасының тұжырымдамасы өте қарапайым, сіз инфрақызыл сигналдарды еш жібермей анықтайсыз.

Сіз дәл сол схеманы қолдана аласыз, бірақ кодты өзгертуге тура келеді. Сіз өзіңіздің жеке кодты жаза аласыз, бірақ төменде берілген кодты пайдалана аласыз:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 НЕМЕСЕ IN0 = 0 СОНДАН кейін «кедергі анықталды» 100 КЕЗЕКТІ ЖАУАП БЕРУ

Егер сіз кедергілерге тап болсаңыз, ықтимал дереккөзді анықтаңыз, оны өшіріңіз/алып тастаңыз немесе Boe-Bot жұмыс жасайтын жерге көшіңіз.

10 -қадам: қосымша IR жұптарын қосыңыз

Қосымша IR жұптарын қосу
Қосымша IR жұптарын қосу

Егер сіз Boe-Bot қозғалысының дәлдігін қаласаңыз, қосымша IR жұптарын қосқыңыз келуі мүмкін. 3 Екіге қарағанда өнімділікті айтарлықтай жақсартады; сіз тікелей кедергілерді іздеу үшін орталық жұпты қолдана аласыз және қанша бұрылу керектігін анықтау үшін екі бүйірлік ИҚ қолдана аласыз. Дегенмен, 3 ИҚ жұп дизайнының құлдырауы - қабырғаға сырғып бара жатқанда білуге болады, себебі орталық ИҚ жұбы кедергілерді анықтау үшін қолданылады. Бұл мәселені шешу үшін сіз қарсыласу мәні жоғары әр жаққа инфрақызыл инфрақызыл қосуды қосуға болады, сондықтан инфрақызыл сигнал Boe-Bot бүйірге немесе қабырғаға жұмсақ бұрышта болғанда ғана анықталады.

11 -қадам: бес IR жұбы - схема

IR бес жұбы - тізбек
IR бес жұбы - тізбек

Екі IR светодиодын бүйірге бағыттағанда абай болыңыз, себебі олардың бұрылуы сымдардың тиіп кетуіне және қысқа тұйықталуға әкелуі мүмкін.

12 -қадам: бес IR жұп - код

IR бес жұбы - код
IR бес жұбы - код

Сіз бұл кодты қолданбас бұрын Boe-Bot бағдарламалауды көргіңіз келуі мүмкін:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'IR жұптарын ажыратудың бес коды' Мэттью Шоу '8 мамыр 2019 жыл (7 -нұсқа)' Лабиринтті шешу үшін объектілерді анықтау және негізгі логикалық өңдеу

irDetectLeft VAR битінің солға арналған айнымалысы

irDetectCentre VAR биті орталық үшін айнымалы irDetectRight VAR биті оң жақ үшін айнымалы irDetectLSide VAR биті

mLoop VAR Word

Lmotor PIN 15 'Сол жақ қозғалтқыш түйреуіш 14 -ке қосылған, импульстер осында өтеді

Rmotor PIN 14 'оңға = 15

жылдамдығы-> 650-750-850

LFast CON 850 'Толық жылдамдықта сол жақ қозғалтқыш үшін констант

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

Егер irDetectLSide = 0 ЖӘНЕ irDetectRSide = 0 СОНДА негізгі 'БАСТАУ ПӘРМЕСІ бағдарламаны бастау үшін екі жақты детекторлардың жанынан қолдарыңызды сермеңіз.

Негізгі:

ТОҚТАТУ 1000 ДА

PULSOUT Lmotor, LFast моторы толық жылдамдықта жұмыс істейді

PULSOUT Rmotor, RFast оң қозғалтқышы толық жылдамдықта жұмыс істейді

FREQOUT 6, 1, 38500 'орталығы

irDetectCentre = IN5

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

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'оң жағы

irDetectRSide = IN0

Егер 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 'кідірісі

IF (irDetectLeft = 1 ЖӘНЕ irDetectRight = 0) ОНДА ұзақтығын бағалайды

GOSUB turnLeft

ELSEIF (irDetectLeft = 0 ЖӘНЕ irDetectRight = 1) Сосын

GOSUB turnRight

ELSEIF (irDetectLeft = 1 ЖӘНЕ irDetectRight = 1) Сосын

GOSUB turnDecide шешіңіз

БАСҚА

GOSUB бұру Кері

ENDIF

ENDIF 'END

Цикл

СОҢЫ

Солға бұрылыңыз:

LMotor PULSOUT, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 INO INO = 1 RETURN дейін

Оңға бұрылыңыз:

Rmotor PULSOUT, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 IN9 IN9 = 1

ҚАЙТУ

бұру: кері

MLoop = 0 -ден 50 -ге дейін Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 1, FREQ 5, 38500 irDetectRight = IN0 IN9 IN9 = 1 ДЕЙІН

ҚАЙТУ

turnDecide: 'әрі қарай көру үшін төмен қарсылықты қолданады

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

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

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 ЖӘНЕ irDetectRSideFar = 0) ОНДА ұзақтығын бағалау

GOSUB turnLeft

ELSEIF (irDetectLSideFar = 0 ЖӘНЕ IrDetectRSideFar = 1) ОНДА

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 ЖӘНЕ irDetectRSideFar = 1) ОНДА

GOSUB turnLeft

БАСҚА

GOSUB бұру Кері

ENDIF

ҚАЙТУ

Ұсынылған: