Obsah:

Boe-Bot s infračervenými detektormi: 12 krokov (s obrázkami)
Boe-Bot s infračervenými detektormi: 12 krokov (s obrázkami)

Video: Boe-Bot s infračervenými detektormi: 12 krokov (s obrázkami)

Video: Boe-Bot s infračervenými detektormi: 12 krokov (s obrázkami)
Video: How To Program a robot ( Boe-Bot) 2024, Júl
Anonim
Boe-Bot s infračervenými detektormi
Boe-Bot s infračervenými detektormi

Tento návod ukáže, ako postaviť a kódovať Boe-Bot, ktorý sa dokáže pohybovať v bludisku pomocou infračervených detektorov, aby sa vyhol prekážkam. Toto je ľahko použiteľný sprievodca, ktorý umožňuje jednoduché úpravy podľa vašich potrieb. To si vyžaduje základné znalosti obvodov a programovania. Na tento projekt budete potrebovať softvér BASIC Stamp IDE. Zadarmo na stiahnutie tu. Rovnako ako robot Boe-Bot

Krok 1: Zdroje

Elektronické komponenty

Boe -Bot s konektorovým káblom Parallax Store - BoeBot Kit

5 Infračervený LED obchod s paralaxou - súprava na montáž IR vysielača

5 zostáv infračerveného štítu

5 infračervených detektorov Parallax Store - BoeBot IR prijímač

Rezistory

  • (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Ω

Rozmanité zapojenie ABRA Electronics - drôt 22

3 LED diódy ABRA Electronics - 5 mm červená LED

podpora

Počítač

ZÁKLADNÝ editor pečiatok - (freeware)

Nástroje

Orezávač drôtov ABRA Electronics - Orezávač drôtu (voliteľné)

Odizolovač drôtov ABRA Electronics - Odizolovovač drôtov

Rôzne

Steny (stavať bludisko)

Krok 2: Pochopenie toho, ako funguje infračervená detekcia (voliteľné)

Pochopenie toho, ako funguje infračervená detekcia (voliteľné)
Pochopenie toho, ako funguje infračervená detekcia (voliteľné)

Infračervené svetlomety

Infračervený systém detekcie predmetov, ktorý na Boe-Bot postavíme, je v niekoľkých ohľadoch ako svetlomety automobilu. Keď sa svetlo reflektorov automobilu odráža od prekážok, vaše oči prekážky rozpoznajú a váš mozog ich spracuje a vaše telo podľa toho auto navedie. Boe-Bot bude na svetlomety používať infračervené diódy LED. Vysielajú infračervené žiarenie a v niektorých prípadoch sa infračervené svetlo odráža od predmetov a odráža sa späť v smere Boe-Bot. Očami Boe-Bota sú infračervené detektory. Infračervené detektory vysielajú signály, ktoré indikujú, či detegujú infračervené svetlo odrazené od objektu alebo nie. Mozog Boe-Bota, BASIC Stamp, rozhoduje a obsluhuje servomotory na základe tohto vstupu senzora. Obrázok 7-1 Detekcia objektu pomocou infračervených svetlometov IR detektory majú vstavané optické filtre, ktoré prepúšťajú veľmi málo svetla okrem 980 nm infračerveného žiarenia, ktoré chceme detekovať svojim vnútorným snímačom fotodiód. Infračervený detektor má tiež elektronický filter, ktorý umožňuje prechod iba signálov okolo 38,5 kHz. Inými slovami, detektor hľadá iba infračervené žiarenie, ktoré bliká a zhasína 38 500 krát za sekundu. Tým sa zabráni IR rušeniu z bežných zdrojov, ako je slnečné svetlo a vnútorné osvetlenie. Slnečné svetlo je interferenciou jednosmerného prúdu (0 Hz) a vnútorné osvetlenie má tendenciu blikať a zapínať buď pri 100 alebo 120 Hz, v závislosti od hlavného zdroja energie v danej oblasti. Pretože 120 Hz je mimo pásmovú frekvenciu pásma 38,5 kHz elektronického filtra, IR detektory ho úplne ignorujú.

-Paralaxská študentská príručka

Krok 3: Zostavenie infračervených diód LED

Zostavenie infračervených LED diód
Zostavenie infračervených LED diód

Vložte IR LED do väčšej časti krytu

Jasnú časť diódy LED uzatvorte menšou časťou puzdra

Krok 4: Testovanie infračervených párov - obvod

Testovanie infračervených párov - obvod
Testovanie infračervených párov - obvod
Testovanie infračervených párov - obvod
Testovanie infračervených párov - obvod

Predtým, ako sa do ničoho dostaneme príliš hlboko, otestujeme, či IR pár funguje (jeden infračervený LED a jeden infračervený detektor).

Začnite tým, že vyššie uvedený obvod postavíte na doštičku namontovanú na vrchu vášho Boe-Bot

Krok 5: Testovanie infračervených párov - základný kód

Na to, aby naše IR páry fungovali, budeme samozrejme musieť napísať kód

Na tento účel použije príkaz FREQOUT. Tento príkaz bol navrhnutý pre zvukové tóny, dá sa však použiť na vytváranie frekvencií v infračervenom rozsahu. Na tento test použijeme príkaz:

FREQOUT 8, 1, 38500

to pošle na P8 frekvenciu 38,5 kHz, ktorá trvá 1 ms. Infračervený obvod LED pripojený k P8 bude vysielať túto frekvenciu. Ak sa infračervené svetlo odrazí späť na Boe-Bot predmetom, ktorý je v jeho ceste, infračervený detektor vyšle BASIC pečiatku signál, ktorý mu oznámi, že bolo detekované odrazené infračervené svetlo.

Kľúčom k fungovaniu IR páru je odoslať 1 ms FREQOUT s frekvenciou 38,5 kHz a okamžite uložiť výstup infračerveného detektora do premennej.

Tento príklad ukazuje uloženie hodnoty IR detektora do bitovej premennej s názvom irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Výstupný stav infračerveného detektora, keď nevidí žiadny infračervený signál, je vysoký. Keď infračervený detektor vidí 38500 Hz harmonickú odrazenú objektom, jeho výstup je nízky. Výstup infračerveného detektora zostane nízky iba zlomok milisekundy po tom, ako príkaz FREQOUT odošle harmonickú, takže je nevyhnutné uložiť výstup infračerveného detektora do premennej bezprostredne po odoslaní príkazu FREQOUT. Hodnotu uloženú premennou je potom možné zobraziť v ladiacom termináli alebo použiť na navigačné rozhodnutia Boe-Bot.

Krok 6: Testovanie infračervených párov - hardvér + softvér

Testovanie infračervených párov - hardvér + softvér
Testovanie infračervených párov - hardvér + softvér

Teraz, keď poznáte základy, môžeme dať dohromady hardvér a softvér, aby sme mohli pár otestovať a získať spätnú väzbu v reálnom čase z toho, čo IR Pair zisťuje.

Môžete sa pokúsiť vytvoriť kód sami, alebo môžete použiť kód nižšie

'{$ STAMP BS2}

VAR bit „{$ PBASIC 2.5} irDetectLeft DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME," irDetectLeft = ", BIN1 irDetectLeft PAUSE 100 LOOP

  1. Nechajte Boe-Bot pripojený k sériovému káblu, pretože na testovanie vášho IR páru budete používať DEBUG Terminal.
  2. Umiestnite predmet, napríklad ruku alebo list papiera, asi palec od ľavého IR páru
  3. Overte si, že keď umiestnite predmet pred IR pár, ladiaci terminál zobrazí 0 a keď odstránite objekt spred IR páru, zobrazí 1.
  4. Ak ladiaci terminál nezobrazuje očakávané hodnoty, vyskúšajte kroky v kroku Riešenie problémov.

Krok 7: Odstraňovanie problémov (problémy s posledným krokom)

DEBUG Terminál zobrazujúci neočakávané hodnoty

Skontrolujte obvod, či nie je skratovaný, nemá správne umiestnené alebo nechýba konektory, poškodené súčasti, nesprávne odpory alebo iný viditeľný problém

Kontrola logických alebo syntaxových chýb v programe - Ak ste v poslednom kroku použili vlastný kód, zvážte použitie poskytnutého kódu

Pred Boe-Bot je vždy umiestnená 0, aj keď nie sú žiadne predmety

Skontrolujte, či sa v blízkosti nenachádzajú predmety, ktoré odrážajú infračervený signál. Príčinou môže byť stôl pred Boe-Botom. Premiestnite Boe-Bot do otvoreného priestoru tak, aby IR LED a detektor nemohli odrážať žiadny blízky predmet.

Čítanie je 1 väčšinu času, keď pred Boe-Botom nie je žiadny predmet, ale občas bliká na 0

V blízkosti môže dôjsť k rušeniu fluorescenčným svetlom; Vypnite všetky okolité žiarivky a zopakujte testy. Ak problém pretrváva, krok 9 môže problém odhaliť

Krok 8: Druhý IR pár

Druhý IR pár
Druhý IR pár

Teraz, keď máte program pre ľavé IR, ste na rade urobiť obvod a naprogramovať pravý IR pár

  1. Zmeňte príkaz DEBUG, názov a komentáre tak, aby odkazovali na správny pár IR.
  2. Zmeňte názov premennej z irDetectLeft na irDetectRight. Budete to musieť urobiť na štyroch miestach programu.
  3. Zmeňte argument Pin príkazu FREQOUT z 8 na 2.
  4. Zmeňte vstupný register monitorovaný premennou irDetectRight z IN9 na IN0.
  5. Zopakujte kroky testovania v tejto aktivite pre správny IR pár; s obvodom IR LED zapojeným do P2 a detektorom zapojeným do P0.

Krok 9: Detekcia infračerveného rušenia (voliteľné)

Detekcia infračerveného rušenia (voliteľné)
Detekcia infračerveného rušenia (voliteľné)

Bez ohľadu na to, či máte problémy s detekciou signálov, ktoré by nemali byť detekované, alebo plánujete predviesť svoju detekciu infračerveného žiarenia na alternatívnom mieste, možno budete chcieť otestovať rušenie.

Koncept tohto testovacieho programu je veľmi jednoduchý, detegujete infračervené signály bez toho, aby ste ich museli odosielať.

Môžete použiť presne ten istý obvod, ale budete musieť zmeniť kód. Môžete sa rozhodnúť napísať svoj vlastný kód, ale môžete použiť nižšie uvedený kód:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OR IN0 = 0 THEN DEBUG "Interference found" PAUSE 100 LOOP

Ak dôjde k rušeniu, určte pravdepodobný zdroj a vypnite ho/odstráňte alebo premiestnite miesto, kde prevádzkujete Boe-Bot.

Krok 10: Pridanie ďalších IR párov

Pridanie ďalších IR párov
Pridanie ďalších IR párov

Ak požadujete väčšiu presnosť v pohybe vášho Boe-Bot, možno budete chcieť pridať ďalšie IR páry. 3 V porovnaní s dvoma výrazne zlepšuje výkon; Pomocou stredového páru môžete vyhľadať priamu prekážku a pomocou dvoch bočných infračervených infračervených svetiel určiť, koľko sa máte otočiť. Pád 3 IR párového dizajnu však je, že môžete vedieť, kedy sa kĺzate po stene, pretože stredový IR pár slúži na detekciu prekážok. Na vyriešenie tohto problému môžete na každú stranu pridať pár IR s vysokou hodnotou odporu-a preto bude infračervený signál detegovaný iba vtedy, ak bude Boe-Bot blízko boku alebo steny v miernom uhle.

Krok 11: Päť IR párov - obvod

Päť IR párov - obvod
Päť IR párov - obvod

Pri nasmerovaní dvoch infračervených diód LED na stranu buďte opatrní, pretože ich skrútenie môže spôsobiť dotyk vodičov a skrat.

Krok 12: Päť IR párov - kód

Päť IR párov - kód
Päť IR párov - kód

Pred použitím tohto kódu môžete skúsiť naprogramovať svoj Boe-Bot:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw '8. mája 2019 (Verzia 7)' Detekcia objektov a základné logické spracovanie na riešenie bludísk

Bit VAR bitu irDetectLeft 'premenná pre ľavú stranu

Bit VAR bitu irDetectCentre „Variabilný pre stredový bit irDetectRight VAR“Premenný pre pravý irDetectLSide bit VAR „Premenný pre ľavú stranu irDetectRSide VAR bit“Premenný pre pravý bok irDetectLSideFar VAR bit „Premenný pre ľavý bok nízkeho odporu irDetectRSideFar bit VAR“premenný pre pravý bok

mLoop VAR Word

Lmotor PIN 15 'Ľavý motor je spojený s kolíkom 14, tadiaľ prechádzajú impulzy

PIN kolesa 14 'vpravo = 15

„rýchlosti sú-> 650-750-850

LFast CON 850 'Conastant pre ľavý motor pri plnej rýchlosti RFast CON 650' Conastant pre pravý motor pri plnej rýchlosti

LStop CON 750 'Conastant pre ľavý motor pri plnej rýchlosti

RStop CON 650 'Conastant pre pravý motor pri plnej rýchlosti

LMid CON 830 'Conastant pre ľavý motor pri stredných otáčkach

RMid CON 700 'Conastant pre pravý motor pri stredných otáčkach

LSlow CON 770 'Conastant pre ľavý motor pri minimálnych otáčkach

RSlow CON 730 'Conastant pre pravý motor pri minimálnych otáčkach

LRev CON 650 'Conastant pre ľavý motor pri plnej rýchlosti pri cúvaní

RRev CON 850 'Conastant pre ľavý motor pri plnej rýchlosti pri cúvaní

FREQOUT 7, 1, 38500 'ľavá strana

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'stred

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'pravá strana

irDetectRight = IN2

FREQOUT 10, 1, 38500 'vľavo Zavrieť

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'vpravo Zatvorte

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'pravá strana

irDetectRSideFar = IN0

IF irDetectLSide = 0 AND irDetectRSide = 0 THEN main 'STARTING COMMAND mávnutím rúk okolo dvoch bočných detektorov spustíte program

Hlavná:

PAUZA 1 000 DO

PULSOUT Lmotor, LFast 'ľavý motor beží na plné otáčky

PULSOUT Rmotor, RFast 'Pravý motor beží na plné otáčky

Stred FREQOUT 6, 1, 38500 '

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'vľavo Zavrieť

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'pravá strana

irDetectRSide = IN0

AK JE POTOM irDetectLSide = 0 A irDetectRSide = 1

VYSKOČTE Lmotor, LRýchlo

Stred FREQOUT 6, 1, 38500 '

irDetectCentre = IN5 IF irDetectCentre = 0 POTOM cent

FREQOUT 10, 1, 38500 'vľavo Zavrieť

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'pravá strana

irDetectRight = IN2

SLUČIŤ DO IRDetectLSide = 1 ALEBO irDetectRSide = 0

ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 POTOM

VYRUŠTE Rmotor, RFast

FREQOUT 6, 1, 38500 'stred

irDetectCentre = IN5 IF irDetectCentre = 0 POTOM cent

FREQOUT 10, 1, 38500 'vľavo Zavrieť

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'pravá strana

irDetectRight = IN2

SLUČIŤ DO IRDetectLSide = 0 ALEBO irDetectRSide = 1

'KONIEC AK

AK irDetectCentre = 0, PAK ZAČNITE

FREQOUT 7, 1, 38500 'ľavá strana irDetectLeft = IN8

FREQOUT 6, 1, 38500 'stred

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'pauza na zobrazenie detekovaného signálu

IF (irDetectLeft = 1 AND irDetectRight = 0) POTOM vyhodnoťte trvanie

GOSUB odbočte vľavo

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) POTOM

GOSUB turnRight

ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) POTOM

GOSUB turnDecide

INAK

GOSUB turnReverz

KONIEC AK

KONIEC KONIEC

SLUČKA

KONIEC

odbočiť vľavo:

VYMAZAJTE Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 SLUČKA DO IN0 = 1 NÁVRAT

odbočte vpravo:

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

NÁVRAT

turnReverz:

FOR mLoop = 0 AŽ 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 5, 1, 385, 38500 irDetectRight = IN0 SLUČKA DO IN9 = 1

NÁVRAT

turnDecide: 'používa nižší odpor, aby videl ďalej

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'pravá strana

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) POTOM 'vyhodnotte trvanie

GOSUB odbočte vľavo

ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) POTOM

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) POTOM

GOSUB odbočte vľavo

INAK

GOSUB turnReverz

KONIEC AK

NÁVRAT

Odporúča: