Obsah:

Boe-Bot s infračervenými detektory: 12 kroků (s obrázky)
Boe-Bot s infračervenými detektory: 12 kroků (s obrázky)

Video: Boe-Bot s infračervenými detektory: 12 kroků (s obrázky)

Video: Boe-Bot s infračervenými detektory: 12 kroků (s obrázky)
Video: How To Program a robot ( Boe-Bot) 2024, Červenec
Anonim
Boe-Bot s infračervenými detektory
Boe-Bot s infračervenými detektory

Tento instruktážní program předvede, jak postavit a kódovat Boe-Bot, který se dokáže pohybovat bludištěm pomocí infračervených detektorů, aby se vyhnul překážkám. Toto je snadno použitelný průvodce, který umožňuje snadné úpravy podle vašich potřeb. To vyžaduje základní znalosti obvodů a programování. Pro tento projekt budete potřebovat software BASIC Stamp IDE. Zdarma ke stažení zde. Stejně jako robot Boe-Bot

Krok 1: Zdroje

Elektronické komponenty

Boe -Bot s konektorovým kabelem Parallax Store - BoeBot Kit

5 Paralaxový obchod s infračervenými LED - montážní sada IR vysílače

5 sestav infračerveného štítu

5 infračervených detektorů Parallax Store - BoeBot IR přijí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é zapojení ABRA Electronics - 22 Gauge Wire

3 LED ABRA Electronics - 5 mm červená LED

Podpěra, podpora

Počítač

ZÁKLADNÍ editor razítek - (freeware)

Nástroje

Ořezávač drátu ABRA Electronics - Ořezávač drátu (volitelně)

Odstraňovač drátů ABRA Electronics - Odstraňovač drátů

Různé

Zdi (stavět bludiště)

Krok 2: Pochopení toho, jak funguje infračervená detekce (volitelně)

Pochopení toho, jak funguje infračervená detekce (volitelně)
Pochopení toho, jak funguje infračervená detekce (volitelně)

Infračervené světlomety

Systém detekce infračervených objektů, který na Boe-Bot postavíme, je v několika ohledech jako světlomety automobilu. Když se světlo světlometů automobilu odráží od překážek, vaše oči překážky rozpoznají a váš mozek je zpracuje a přiměje vaše tělo, aby auto odpovídajícím způsobem vedlo. Boe-Bot bude pro světlomety používat infračervené LED diody. Vyzařují infračervené záření a v některých případech se infračervené záření odráží od předmětů a odráží se zpět ve směru Boe-Bot. Oči Boe-Bot jsou infračervené detektory. Infračervené detektory vysílají signály indikující, zda detekují infračervené záření odražené od objektu či nikoli. Mozek Boe-Bot, BASIC Stamp, rozhoduje a provozuje servomotory na základě tohoto vstupu senzoru. Obrázek 7-1 Detekce objektů pomocí infračervených světlometů IR detektory mají vestavěné optické filtry, které propouštějí velmi málo světla kromě 980 nm infračerveného záření, které chceme detekovat pomocí jeho interního fotodiodového senzoru. Infračervený detektor má také elektronický filtr, který umožňuje procházet pouze signály kolem 38,5 kHz. Jinými slovy, detektor hledá pouze infračervené záření, které bliká a zhasíná 38 500krát za sekundu. Tím se zabrání infračervenému rušení z běžných zdrojů, jako je sluneční světlo a vnitřní osvětlení. Sluneční světlo je stejnosměrné rušení (0 Hz) a vnitřní osvětlení má tendenci blikat a vypínat buď na 100 nebo 120 Hz, v závislosti na hlavním zdroji energie v dané oblasti. Protože 120 Hz je mimo pásmovou frekvenci pásma 38,5 kHz elektronického filtru, jsou IR detektory zcela ignorovány.

-Paralax Student Guide

Krok 3: Sestavení IR LED diod

Sestavení IR LED diod
Sestavení IR LED diod

Vložte IR LED do větší části skříně

Čirou část diody LED uzavřete menší částí pouzdra

Krok 4: Testování infračervených párů - obvod

Testování infračervených párů - obvod
Testování infračervených párů - obvod
Testování infračervených párů - obvod
Testování infračervených párů - obvod

Než se dostaneme příliš hluboko do čehokoli, otestujeme, abychom se ujistili, že IR pár funguje (jedna infračervená LED a jeden infračervený detektor).

Začněte tím, že postavíte výše uvedený obvod na prkénko namontované na horní části vašeho Boe-Bot

Krok 5: Testování infračervených párů - základní kód

Aby naše IR páry fungovaly, budeme samozřejmě muset napsat kód

K tomu použije příkaz FREQOUT. Tento příkaz byl navržen pro zvukové tóny, ale lze jej použít k vytváření frekvencí v infračerveném rozsahu. Pro tento test použijeme příkaz:

FREQOUT 8, 1, 38500

na P8 bude odeslána frekvence 38,5 kHz, která trvá 1 ms. Infračervený obvod LED připojený k P8 bude vysílat tuto frekvenci. Pokud se infračervené světlo odráží zpět na Boe-Bot objektem v jeho cestě, infračervený detektor vyšle BASIC Stampu signál, aby věděl, že bylo odražené infračervené světlo detekováno.

Klíčem k tomu, aby IR pár fungoval, je odeslat 1 ms 38,5 kHz FREQOUT a okamžitě uložit výstup IR detektoru do proměnné.

Tento příklad ukazuje uložení hodnoty IR detektoru do bitové proměnné s názvem irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Výstupní stav infračerveného detektoru, když nevidí žádný IR signál, je vysoký. Když infračervený detektor uvidí 38500 Hz harmonickou odraženou objektem, je jeho výstup nízký. Výstup infračerveného detektoru zůstane nízký pouze zlomek milisekundy poté, co příkaz FREQOUT odešle harmonickou, takže je důležité uložit výstup IR detektoru do proměnné bezprostředně po odeslání příkazu FREQOUT. Hodnota uložená proměnnou pak může být zobrazena v Debug Terminal nebo použita pro navigační rozhodnutí Boe-Bot.

Krok 6: Testování infračervených párů - hardware + software

Testování infračervených párů - hardware + software
Testování infračervených párů - hardware + software

Nyní, když znáte základy, můžeme dát dohromady hardware a software, abychom společně otestovali pár a získali zpětnou vazbu v reálném čase z toho, co IR Pair detekuje

Můžete si zkusit vytvořit kód sami, nebo použít níže uvedený kód

'{$ STAMP BS2}

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

  1. Nechejte Boe-Bot připojený k sériovému kabelu, protože k testování IR páru budete používat DEBUG Terminal.
  2. Umístěte předmět, například ruku nebo list papíru, asi palec od levého IR páru
  3. Ověřte, že když umístíte objekt před IR pár, ladicí terminál zobrazí 0 a když objekt odstraníte před IR párem, zobrazí 1.
  4. Pokud terminál ladění nezobrazuje očekávané hodnoty, vyzkoušejte kroky v kroku Řešení potíží.

Krok 7: Odstraňování problémů (problémy s posledním krokem)

DEBUG Terminal zobrazující neočekávané hodnoty

Zkontrolujte obvod, zda není zkratovaný, nemá správně umístěné nebo chybějící konektory, poškozené součásti, nesprávné odpory nebo jiný viditelný problém

Kontrola logických nebo syntaxových chyb programu - Pokud jste v posledním kroku použili vlastní kód, zvažte použití poskytnutého kódu

Před Boe-Bot je vždy umístěno 0, i když nejsou žádné předměty

Zkontrolujte, zda v blízkosti nejsou nějaké objekty, které odrážejí infračervený signál. Příčinou může být stůl před Boe-Botem. Přesuňte Boe-Bot do otevřeného prostoru, aby IR LED a detektor nemohly odrážet žádný blízký předmět.

Čtení je 1 většinu času, když před Boe-Botem není žádný předmět, ale občas bliká na 0

Může dojít k rušení blízkým fluorescenčním světlem; Vypněte okolní zářivky a opakujte testy. Pokud problém přetrvává, krok 9 může problém odhalit

Krok 8: Druhý IR pár

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

Nyní, když máte program pro levé IR, je řada na vás, abyste vytvořili obvod a naprogramovali správný IR pár

  1. Změňte příkaz DEBUG, název a komentáře tak, aby odkazovaly na správný IR pár.
  2. Změňte název proměnné z irDetectLeft na irDetectRight. Budete to muset udělat na čtyřech místech programu.
  3. Změňte argument Pin příkazu FREQOUT z 8 na 2.
  4. Změňte vstupní registr monitorovaný proměnnou irDetectRight z IN9 na IN0.
  5. Opakujte kroky testování v této aktivitě pro správný IR pár; s obvodem IR LED připojeným k P2 a detektorem připojeným k P0.

Krok 9: Detekce infračerveného rušení (volitelně)

Detekce infračerveného rušení (volitelně)
Detekce infračerveného rušení (volitelně)

Ať už máte problémy s detekcí signálů, které by neměly být detekovány, nebo máte v plánu předvést vaši IR detekci na alternativním místě, možná budete chtít vyzkoušet rušení.

Koncept tohoto testovacího programu je velmi jednoduchý, detekujete infračervené signály, aniž byste je museli odesílat.

Můžete použít úplně stejný obvod, ale budete muset změnit kód. můžete se rozhodnout napsat svůj vlastní kód, ale můžete použít níže uvedený kód:

'{$ STAMP BS2}

Bit VAR „{$ PBASIC 2.5} irDetectLeft DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 NEBO IN0 = 0 PAK ODBLOKUJTE„ Interference detekována “PAUZA 100 SLOČEK

Pokud dojde k rušení, určete pravděpodobný zdroj a vypněte jej/odeberte nebo přemístěte, kde provozujete Boe-Bot.

Krok 10: Přidání dalších IR párů

Přidání dalších IR párů
Přidání dalších IR párů

Pokud toužíte po větší přesnosti v pohybu vašeho Boe-Bot, můžete přidat více IR párů. 3 Ve srovnání se dvěma výrazně zlepšuje výkon; pomocí středového páru můžete vyhledat přímou překážku a pomocí dvou bočních infračervených infračervených paprsků určit, jak moc se otočit. Pád designu 3 IR párů je však ten, že možná víte, kdy kloužete proti zdi, protože středový IR pár slouží k detekci překážek. Chcete-li tento problém vyřešit, můžete na každou stranu přidat infračervený pár s vysokou hodnotou odporu-a proto bude infračervený signál detekován pouze v případě, že se Boe-Bot bude nacházet v blízkosti strany nebo zdi pod mírným úhlem.

Krok 11: Pět IR párů - obvod

Pět IR párů - obvod
Pět IR párů - obvod

Při nasměrování dvou infračervených LED diod na boku buďte opatrní, protože jejich zkroucení může způsobit dotyky vodičů a zkrat.

Krok 12: Pět IR párů - kód

Pět IR párů - kód
Pět IR párů - kód

Před použitím tohoto kódu můžete zkusit naprogramovat Boe-Bot:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw '8. května 2019 (verze 7)' Detekce objektů a základní logické zpracování pro řešení bludišť

IrDetectLeft VAR bit 'Proměnná pro levé

Bit VAR irDetectCentre 'Proměnná pro střed irDetectRight VAR bit' Proměnná pro pravý irDetectLSide VAR bit 'Proměnná pro levou stranu irDetectRide VAR bit' Proměnná pro pravou stranu irDetectLSideFar VAR bit 'Proměnná pro levý boční nízký odpor irDetectRSideFar bitový VAR' Proměnný pro pravý

mLoop VAR Word

Lmotor PIN 15 'Levý motor je připojen na pin 14, zde procházejí impulsy

PIN motoru 14 'vpravo = 15

'rychlosti jsou-> 650-750-850

LFast CON 850 'Conastant pro levý motor při plných otáčkách RFast CON 650' Conastant pro pravý motor při plné rychlosti

LStop CON 750 'Conastant pro levý motor při plné rychlosti

RStop CON 650 'Conastant pro pravý motor při plné rychlosti

LMid CON 830 'Conastant pro levý motor při středních otáčkách

RMid CON 700 'Conastant pro pravý motor při středních otáčkách

LSlow CON 770 'Conastant pro levý motor při minimálních otáčkách

RSlow CON 730 'Conastant pro pravý motor při minimálních otáčkách

LRev CON 650 'Conastant pro levý motor při plné rychlosti při couvání

RRev CON 850 'Conastant pro levý motor při plné rychlosti při couvání

FREQOUT 7, 1, 38500 'levá strana

irDetectLeft = IN8

Střed FREQOUT 6, 1, 38500 '

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'pravá strana

irDetectRight = IN2

FREQOUT 10, 1, 38500 'vlevo zavřeno

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'vpravo Zavřít

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 rukou kolem dvou bočních detektorů spustíte program

Hlavní:

PAUZA 1 000 DO

PULSOUT Lmotor, LFast 'levý motor běží na plné otáčky

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

Střed FREQOUT 6, 1, 38500 '

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'vlevo zavřeno

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'pravá strana

irDetectRSide = IN0

IF irDetectLSide = 0 AND irDetectRSide = 1 THEN

VYJMĚTE Lmotor, LFast

Střed FREQOUT 6, 1, 38500 '

irDetectCentre = IN5 IF irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'vlevo zavřeno

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'pravá strana

irDetectRight = IN2

SLUČTE, dokud irDetectLSide = 1 NEBO irDetectRSide = 0

ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 POTOM

DO PULSOUT Rmotor, RFast

Střed FREQOUT 6, 1, 38500 '

irDetectCentre = IN5 IF irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'vlevo zavřeno

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'pravá strana

irDetectRight = IN2

SLUČTE, dokud irDetectLSide = 0 NEBO irDetectRSide = 1

„ENDIF

KDYŽ irDetectCentre = 0, PAK ZAČNĚTE

FREQOUT 7, 1, 38500 'levá strana irDetectLeft = IN8

Střed FREQOUT 6, 1, 38500 '

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'pauza pro zobrazení detekovaného signálu

IF (irDetectLeft = 1 AND irDetectRight = 0) PAK vyhodnoťte trvání

Otočit GOSUB Vlevo

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) PAK

GOSUB turnRight

ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) PAK

GOSUB turnDecide

JINÝ

Turn GOSUB Reverse

ENDIF

KONEC KONEC

SMYČKA

KONEC

odbočit vlevo:

DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP DO IN0 = 1 NÁVRAT

odbočit vpravo:

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

VRÁTIT SE

turnReverse:

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 Smyčka DO IN9 = 1

VRÁTIT SE

turnDecide: 'používá nižší odpor k dalšímu vidění

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'pravá strana

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) PAK „vyhodnoťte dobu trvání

Otočit GOSUB Vlevo

ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) PAK

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) PAK

Otočit GOSUB Vlevo

JINÝ

Turn GOSUB Reverse

ENDIF

VRÁTIT SE

Doporučuje: