Kazalo:

Boe-Bot z infrardečimi detektorji: 12 korakov (s slikami)
Boe-Bot z infrardečimi detektorji: 12 korakov (s slikami)

Video: Boe-Bot z infrardečimi detektorji: 12 korakov (s slikami)

Video: Boe-Bot z infrardečimi detektorji: 12 korakov (s slikami)
Video: Полный обзор отеля Club Hotel Phaselis Rose 5* Текирова Турция 2024, November
Anonim
Boe-Bot z infrardečimi detektorji
Boe-Bot z infrardečimi detektorji

Ta navodila bodo pokazala, kako zgraditi in kodirati Boe-Bot, ki se lahko premika po labirintu z infrardečimi detektorji, da se izogne oviram. To je preprost vodič, ki omogoča enostavne spremembe, ki ustrezajo vašim potrebam. To zahteva osnovno razumevanje vezja in programiranja. Za ta projekt boste potrebovali programsko opremo BASIC Stamp IDE. Brezplačno za prenos tukaj. Pa tudi Boe-Bot Robot

1. korak: Viri

Elektronske komponente

Boe -Bot s priključnim kablom Parallax Store - BoeBot Kit

5 Parallax Store za infrardeče LED - komplet za montažo IR oddajnika

5 sklopov infrardečega ščita

5 infrardečih detektorjev Parallax Store - BoeBot IR sprejemnik

Upori

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

Razno ožičenje ABRA Electronics - 22 -žilna žica

3 LED -ja ABRA Electronics - 5 mm rdeča LED

Podpora

Računalnik

BASIC Stamp Editor - (brezplačna programska oprema)

Orodja

Rezalnik žice ABRA Electronics - Rezalnik žice (neobvezno)

Odstranjevalec žice ABRA Electronics - Odstranjevalec žice

Razno

Stene (za gradnjo labirinta)

2. korak: Razumevanje delovanja infrardečega odkrivanja (neobvezno)

Razumevanje delovanja infrardečega odkrivanja (neobvezno)
Razumevanje delovanja infrardečega odkrivanja (neobvezno)

Infrardeči žarometi

Infrardeči sistem za zaznavanje predmetov, ki ga bomo zgradili na Boe-Botu, je v več pogledih podoben žarometom avtomobila. Ko se svetloba avtomobilskih žarometov odbije od ovir, vaše oči zaznajo ovire, vaši možgani jih predelajo in vaše telo ustrezno vodi avto. Boe-Bot bo za žaromete uporabljal infrardeče LED diode. Oddajajo infrardečo svetlobo, v nekaterih primerih pa se infrardeča svetloba odbija od predmetov in odbija nazaj v smeri Boe-Bota. Oči Boe-Bota so infrardeči detektorji. Infrardeči detektorji pošiljajo signale, ki kažejo, ali zaznajo infrardečo svetlobo, ki se odbija od predmeta. Možgani Boe-Bota, BASIC Stamp, sprejemajo odločitve in upravljajo servo motorje na podlagi tega vhoda senzorja. Slika 7-1 Zaznavanje predmetov z IR-žarometi IR-detektorji imajo vgrajene optične filtre, ki prepuščajo zelo malo svetlobe, razen infrardeče svetlobe 980 nm, ki jo želimo zaznati s svojim notranjim senzorjem fotodiode. Infrardeči detektor ima tudi elektronski filter, ki omogoča prehod signalov le okoli 38,5 kHz. Z drugimi besedami, detektor išče samo infrardečo svetlobo, ki utripa in izklaplja 38, 500 -krat na sekundo. To preprečuje IR motnje iz običajnih virov, kot so sončna svetloba in notranja razsvetljava. Sončna svetloba je enosmerna motnja (0 Hz), notranja razsvetljava pa se običajno vklopi in izklopi pri 100 ali 120 Hz, odvisno od glavnega vira energije v regiji. Ker je 120 Hz zunaj pasovne frekvence elektronskega filtra 38,5 kHz, ga IR detektorji popolnoma prezrejo.

-Paralax študentski vodnik

3. korak: Sestavljanje IR LED

Sestavljanje IR LED
Sestavljanje IR LED

Vstavite IR LED v večji del ohišja

Prozoren del LED zaprite z manjšim delom ohišja

4. korak: Preizkusite infrardeče pare - vezje

Testiranje infrardečih parov - vezje
Testiranje infrardečih parov - vezje
Testiranje infrardečih parov - vezje
Testiranje infrardečih parov - vezje

Preden se preveč poglobimo v karkoli, bomo preverili, ali par IR deluje (ena infrardeča LED in en infrardeči detektor).

Začnite z izgradnjo zgornjega vezja na plošči, nameščeni na vrhu vašega Boe-Bota

5. korak: Testiranje infrardečih parov - osnovna koda

Seveda bomo morali za delovanje naših IR parov napisati kodo

Za to bo uporabil ukaz FREQOUT. Ta ukaz je bil zasnovan za zvočne tone, vendar se lahko uporablja za ustvarjanje frekvenc v infrardečem območju. Za ta test bomo uporabili ukaz:

FREQOUT 8, 1, 38500

to bo poslalo frekvenco 38,5 kHz, ki traja 1 ms, na P8. Infrardeče LED vezje, povezano s P8, bo oddajalo to frekvenco. Če se infrardeča svetloba odbije od objekta na poti nazaj v Boe-Bot, bo infrardeči detektor pošiljal OSNOVNI žig signal, ki bo sporočil, da je odsevana infrardeča svetloba zaznana.

Ključ do delovanja para IR je, da pošljete 1 ms frekvence 38,5 kHz in takoj shranite izhod IR detektorja v spremenljivko.

Ta primer prikazuje shranjevanje vrednosti IR detektorja v bitni spremenljivki z imenom irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Izhodno stanje IR detektorja, ko ne vidi IR signala, je visoko. Ko IR detektor vidi harmoniko 38500 Hz, ki jo odbije objekt, je njegova izhodnost nizka. Izhod IR detektorja ostane nizek le del milisekunde po tem, ko ukaz FREQOUT pošlje harmoniko, zato je nujno, da se izhod IR detektorja shrani v spremenljivko takoj po pošiljanju ukaza FREQOUT. Vrednost, ki jo shrani spremenljivka, se lahko nato prikaže v terminalu za odpravljanje napak ali pa jo Boe-Bot uporabi za navigacijske odločitve.

Korak 6: Testiranje infrardečih parov - strojna in programska oprema

Testiranje infrardečih parov - strojna in programska oprema
Testiranje infrardečih parov - strojna in programska oprema

Zdaj, ko poznate osnove, lahko združimo strojno in programsko opremo, da skupaj preizkusimo par in v realnem času dobimo povratne informacije o tem, kar zaznava IR par

Kodo lahko poskusite narediti sami ali uporabite spodnjo kodo

'{$ STAMP BS2}

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

  1. Pustite Boe-Bot priključen na serijski kabel, ker boste s terminalom DEBUG preizkusili svoj par IR.
  2. Predmet, na primer roko ali list papirja, postavite približno 1 cm od levega para IR
  3. Prepričajte se, da ko odložite predmet pred infrardečim parom, terminal za odpravljanje napak prikaže 0, in ko predmet odstranite izpred para IR, se prikaže 1.
  4. Če terminal za odpravljanje napak ne prikaže pričakovanih vrednosti, poskusite s koraki v koraku Odpravljanje težav.

7. korak: Odpravljanje težav (za težave z zadnjim korakom)

DEBUG Terminal, ki prikazuje nepričakovane vrednosti

Preverite vezje za kratke stike, napačno nameščene ali manjkajoče konektorje, poškodovane komponente, nepravilne upore ali kakšno drugo vidno težavo

Preverite program glede logičnih ali sintaktičnih napak - če ste za zadnji korak uporabili svojo kodo, razmislite o uporabi priložene kode

Vedno dobite 0, tudi če ni predmetov, postavite pred Boe-Bot

Preverite, ali so v bližini kakšni predmeti, ki odsevajo infrardeči signal. Vzrok je lahko miza pred Boe-Botom. Premaknite Boe-Bot v odprt prostor, tako da IR LED in detektor ne moreta odbijati od bližnjih predmetov.

Branje je največkrat 1, ko pred Boe-Botom ni nobenega predmeta, vendar občasno utripa na 0

Lahko pride do motenj zaradi bližnje fluorescenčne svetlobe; Izklopite vse bližnje fluorescenčne sijalke in ponovite teste. Če se težava ponavlja, lahko korak 9 razkrije težavo

8. korak: Drugi par IR

Drugi par IR
Drugi par IR

Zdaj, ko imate program za levo IR, ste na vrsti, da naredite vezje in programirate desni IR par

  1. Spremenite izjavo DEBUG, naslov in komentarje tako, da se nanašajo na desni par IR.
  2. Spremenite ime spremenljivke iz irDetectLeft v irDetectRight. To boste morali narediti na štirih mestih programa.
  3. Argument Pin ukaza FREQOUT spremenite iz 8 v 2.
  4. Spremenite vhodni register, ki ga spremlja spremenljivka irDetectRight, iz IN9 v IN0.
  5. Ponovite korake testiranja v tej dejavnosti za desni IR par; z IR LED vezjem, priključenim na P2, in detektorjem, priključenim na P0.

9. korak: Odkrivanje infrardečih motenj (neobvezno)

Odkrivanje infrardečih motenj (neobvezno)
Odkrivanje infrardečih motenj (neobvezno)

Ne glede na to, ali imate težave z zaznavanjem signalov, ki jih ne bi smeli zaznati, ali nameravate prikazati zaznavanje IR na drugi lokaciji, boste morda želeli preizkusiti motnje.

Koncept tega programa za testiranje je precej preprost, zaznavate infrardeče signale, ne da bi jih poslali.

Uporabite lahko popolnoma isto vezje, vendar boste morali spremeniti kodo. lahko se odločite za pisanje lastne kode, lahko pa uporabite spodnjo kodo:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 ALI IN0 = 0 TUDI RAZMERJANJE "Zaznane motnje" PAUSE 100 LOOP

Če pride do motenj, določite verjeten vir in ga izklopite/odstranite ali premestite na mesto, kjer upravljate svoj Boe-Bot.

10. korak: Dodajte več IR parov

Dodajanje več IR parov
Dodajanje več IR parov

Če želite večjo natančnost pri premikanju vašega Boe-Bota, lahko dodate več IR parov. 3 Odlično izboljša zmogljivost v primerjavi z dvema; lahko uporabite osrednji par za iskanje neposredne ovire in z dvema stranskima IR -jama določite, koliko obrniti. Vendar pa je pomanjkljivost zasnove 3 IR para ta, da morda veste, ko drsite ob steno, ker se sredinski IR par uporablja za zaznavanje ovir. Če želite rešiti to težavo, lahko na vsako stran dodate IR par z visoko vrednostjo upora-zato bo infrardeči signal zaznan le, če je Boe-Bot blizu strani ali stene pod rahlim kotom.

11. korak: Pet IR parov - vezje

Pet IR parov - vezje
Pet IR parov - vezje

Pri usmerjanju dveh IR LED na stran bodite previdni, saj se z njihovo zvijanjem lahko dotakneta kabla in povzroči kratek stik.

12. korak: Pet IR parov - Koda

Pet IR parov - Koda
Pet IR parov - Koda

Pred uporabo te kode lahko poskusite programirati svoj Boe-Bot:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Code of Detection Five IR Pair' Matthew Shaw '8. maj 2019 (različica 7)' Zaznavanje predmetov in osnovna logična obdelava za reševanje labirintov

irDetectLeft VAR Bit 'Spremenljivka za levo

IrDetectCentre VAR Bit 'Spremenljivka za sredino irDetectRight VAR Bit' Spremenljiva za desno irDetectLSide VAR Bit 'Spremenljiva za levo stran irDetectRSide VAR Bit' Spremenljiva za desno stran irDetectLSideFar VAR Bit 'Spremenljiva za levo stran Nizka odpornost nizka Vrednost desna Vrednost Vzdr.

mLoop VAR Word

PIN motorja 15 'Levi motor je priključen na zatič 14, tukaj prehajajo impulzi

PIN motorja 14 'desno = 15

'hitrosti so-> 650-750-850

LFast CON 850 'Konastant za levi motor pri polni hitrosti RFast CON 650' Conastant za desni motor pri polni hitrosti

LStop CON 750 'Conastant za levi motor pri polni hitrosti

RStop CON 650 'Conastant za desni motor pri polni hitrosti

LMid CON 830 'Konastant za levi motor pri srednji hitrosti

RMid CON 700 'Conastant za desni motor pri srednji hitrosti

LSlow CON 770 'Konastant za levi motor pri minimalni hitrosti

RSlow CON 730 'Konastant za desni motor pri minimalni hitrosti

LRev CON 650 'Konastant za levi motor pri polni hitrosti vzvratno

RRev CON 850 'Konastant za levi motor pri polni hitrosti vzvratno

FREQOUT 7, 1, 38500 'leva stran

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'desna stran

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Levo Zapri

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'desno Zapri

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'desna stran

irDetectRSideFar = IN0

IF irDetectLSide = 0 AND irDetectRSide = 0 THEN main 'STARTING COMMAND pomahajte z rokami mimo obeh stranskih detektorjev za zagon programa

Glavni:

ZAUSTAVI 1000 DO

PULSOUT Lmotor, LFast 'levi motor deluje s polno hitrostjo

PULSOUT Rmotor, RFast 'Desni motor deluje pri polni hitrosti

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Levo Zapri

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'desna stran

irDetectRSide = IN0

ČE irDetectLSide = 0 IN irDetectRSide = 1 TUDI

Naredite PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5 ČE irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Levo Zapri

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'desna stran

irDetectRight = IN2

LOOP DO IRDetectLSide = 1 ALI irDetectRSide = 0

ELSEIF irDetectLSide = 1 IN irDetectRSide = 0 THEN

Naredite PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5 ČE irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Levo Zapri

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'desna stran

irDetectRight = IN2

LOOP DO IRDetectLSide = 0 ALI irDetectRSide = 1

'ENDIF

ČE irDetectCentre = 0 TUDI ZAČNITE

FREQOUT 7, 1, 38500 'leva stran irDetectLeft = IN8

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'premor za prikaz zaznanega signala

IF (irDetectLeft = 1 AND irDetectRight = 0) THEN 'ocenite trajanje

GOSUB zavije levo

ELSEIF (irDetectLeft = 0 IN irDetectRight = 1) THEN

GOSUB turnRight

ELSEIF (irDetectLeft = 1 IN irDetectRight = 1) THEN

GOSUB turnDecide

DRUGO

GOSUB turnReverse

ENDIF

ENDIF 'END

LOOP

KONEC

zavijemo levo:

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 RETURN

zavij desno:

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

VRNITEV

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 FREQOUT 5, 4, 5, 4, 4, 38500 irDetectRight = IN0 LOOP DO IN9 = 1

VRNITEV

turnDecide: 'uporablja manjši upor za nadaljnji ogled

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'desna stran

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN 'ocenite trajanje

GOSUB zavije levo

ELSEIF (irDetectLSideFar = 0 IN irDetectRSideFar = 1) TAKO

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 IN irDetectRSideFar = 1) TAKO

GOSUB zavije levo

DRUGO

GOSUB turnReverse

ENDIF

VRNITEV

Priporočena: