Sadržaj:

Boe-Bot sa infracrvenim detektorima: 12 koraka (sa slikama)
Boe-Bot sa infracrvenim detektorima: 12 koraka (sa slikama)

Video: Boe-Bot sa infracrvenim detektorima: 12 koraka (sa slikama)

Video: Boe-Bot sa infracrvenim detektorima: 12 koraka (sa slikama)
Video: КАК ПРИГОТОВИТЬ БОГРАЧ. ТАК Я ЕЩЁ НЕ ГОТОВИЛ. ЛУЧШИЙ РЕЦЕПТ 2024, Juli
Anonim
Boe-Bot sa infracrvenim detektorima
Boe-Bot sa infracrvenim detektorima

Ova instrukcija će pokazati kako izgraditi i kodirati Boe-Bot koji može upravljati labirintom pomoću infracrvenih detektora kako bi izbjegao prepreke. Ovo je vodič koji je lako slijediti i koji omogućuje jednostavne izmjene koje odgovaraju vašim potrebama. Ovo zahtijeva osnovno razumijevanje sklopova i programiranja. Za ovaj projekat morate imati softver BASIC Stamp IDE. Besplatno za preuzimanje ovdje. Kao i Boe-Bot Robot

Korak 1: Resursi

Elektronske komponente

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

5 Parallax trgovina infracrvenih LED dioda - Set za montažu IC odašiljača

5 sklopovi infracrvenog štita

5 infracrvenih detektora Parallax Store - BoeBot IC prijemnik

Otpornici

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

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

3 LED -ove ABRA elektronike - 5 mm crvena LED

Podrška

Computer

BASIC Editor pečata - (besplatni softver)

Alati

Rezač žice ABRA Electronics - Rezač žice (opcionalno)

Skidač žice ABRA Electronics - Skidač žice

Ostalo

Zidovi (za izgradnju labirinta)

Korak 2: Razumijevanje funkcioniranja infracrvenog otkrivanja (izborno)

Razumijevanje rada infracrvenog otkrivanja (izborno)
Razumijevanje rada infracrvenog otkrivanja (izborno)

Infracrveni farovi

Infracrveni sistem za otkrivanje objekata koji ćemo izgraditi na Boe-Botu je poput farova automobila u nekoliko aspekata. Kad se svjetlo prednjih svjetala automobila odbija od prepreka, vaše oči otkrivaju prepreke, a mozak ih obrađuje i tjera vaše tijelo da vodi automobil u skladu s tim. Boe-Bot će koristiti infracrvene LED diode za prednja svjetla. Oni emituju infracrveno zračenje, a u nekim slučajevima infracrveno se reflektuje od objekata i odbija se u pravcu Boe-Bota. Oči Boe-Bota su infracrveni detektori. Infracrveni detektori šalju signale koji ukazuju da li detektuju infracrveno zračenje reflektirano od objekta. Mozak Boe-Bota, BASIC Stamp, donosi odluke i upravlja servo motorima na osnovu ovog ulaza senzora. Slika 7-1 Detekcija objekta s IC prednjim svjetlima IR detektori imaju ugrađene optičke filtere koji propuštaju vrlo malo svjetla osim infracrvenog spektra od 980 nm koji želimo detektirati svojim unutarnjim senzorom fotodioda. Infracrveni detektor ima i elektronički filter koji propušta samo signale oko 38,5 kHz. Drugim riječima, detektor traži samo infracrvenu vezu koja svijetli i gasi 38, 500 puta u sekundi. Ovo sprečava IC smetnje iz uobičajenih izvora, poput sunčeve svetlosti i unutrašnjeg osvetljenja. Sunčeva svjetlost je istosmjerna smetnja (0 Hz), a unutarnja rasvjeta teži da se pali i gasi na 100 ili 120 Hz, ovisno o glavnom izvoru napajanja u regiji. Budući da je 120 Hz izvan propusne frekvencije elektronskog filtera od 38,5 kHz, IR detektori ga potpuno zanemaruju.

-Paralax studentski vodič

Korak 3: Sklapanje IC LED dioda

Sklapanje IR LED dioda
Sklapanje IR LED dioda

Umetnite IC LED diodu u veći dio kućišta

Zatvorite čisti dio LED diode manjim dijelom kućišta

Korak 4: Testiranje infracrvenih parova - krug

Testiranje infracrvenih parova - krug
Testiranje infracrvenih parova - krug
Testiranje infracrvenih parova - krug
Testiranje infracrvenih parova - krug

Prije nego što zađemo previše u bilo što, testirat ćemo kako bismo bili sigurni da IC par radi (jedna infracrvena LED i jedan infracrveni detektor).

Počnite tako što ćete izgraditi gornji krug na matičnoj ploči postavljenoj na vrhu vašeg Boe-Bota

Korak 5: Testiranje infracrvenih parova - osnovni kod

Naravno, morat ćemo napisati kôd da bi naši IR parovi radili

Za to će koristiti naredbu FREQOUT. Ova naredba je dizajnirana za audio tonove, međutim može se koristiti za proizvodnju frekvencija u infracrvenom području. Za ovaj test koristit ćemo naredbu:

FREQOUT 8, 1, 38500

ovo će poslati frekvenciju od 38,5 kHz koja traje 1 ms na P8. Infracrveno LED kolo povezano s P8 emitirat će ovu frekvenciju. Ako se infracrveno svjetlo odbije natrag do Boe-Bota od objekta na njegovoj putanji, infracrveni detektor će poslati OSNOVNOM pečatu signal koji će mu dati do znanja da je reflektirano infracrveno svjetlo otkriveno.

Ključ za rad IR para je slanje 1 ms frekvence od 38,5 kHz i odmah pohranjivanje izlaza IC detektora u varijablu.

Ovaj primjer prikazuje spremanje vrijednosti IR detektora u bitnu varijablu pod imenom irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Izlazno stanje IC detektora kada ne vidi IC signal je visoko. Kada IC detektor vidi harmonik od 38500 Hz reflektiran od objekta, njegov izlaz je nizak. Izlaz IC detektora ostaje nizak samo dio milisekunde nakon što naredba FREQOUT obavi slanje harmonika, pa je bitno pohraniti izlaz IC detektora u varijablu odmah nakon slanja naredbe FREQOUT. Vrijednost koju sprema varijabla može se zatim prikazati na terminalu za otklanjanje grešaka ili koristiti Boe-Bot za navigacijske odluke.

Korak 6: Testiranje infracrvenih parova - hardver + softver

Testiranje infracrvenih parova - hardver + softver
Testiranje infracrvenih parova - hardver + softver

Sada kada znate osnove, možemo spojiti hardver i softver kako bismo testirali par i dobili povratnu informaciju u stvarnom vremenu od onoga što IR par otkriva

Možete pokušati sami napraviti kod ili upotrijebiti donji kod

'{$ STAMP BS2}

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

  1. Ostavite Boe-Bot priključen na serijski kabel jer ćete koristiti DEBUG terminal za testiranje vašeg IC para.
  2. Postavite predmet, poput ruke ili lista papira, otprilike jedan centimetar od lijevog IC para
  3. Provjerite da kada postavite objekt ispred IC para, Debug terminal prikazuje 0, a kada uklonite objekt ispred IC para, prikazuje 1.
  4. Ako terminal za otklanjanje grešaka ne prikazuje očekivane vrijednosti, isprobajte korake u Koraku rješavanja problema.

Korak 7: Rješavanje problema (za probleme s posljednjim korakom)

DEBUG Terminal koji prikazuje neočekivane vrijednosti

Provjerite ima li u krugu kratkih spojeva, pogrešno postavljenih ili nedostajućih konektora, oštećenih komponenti, neispravnih otpornika ili bilo kojeg drugog vidljivog problema

Provjerite program zbog logičkih ili sintaksičkih grešaka - Ako ste za zadnji korak koristili vlastiti kôd, razmislite o korištenju koda

Uvijek dobijanje 0, čak i ako nema objekata, postavljeno je ispred Boe-Bota

Provjerite ima li u blizini objekata koji reflektiraju infracrveni signal. Stol ispred Boe-Bota mogao bi biti uzrok. Premjestite Boe-Bot u otvoreni prostor tako da IC LED dioda i detektor ne mogu reflektirati bilo koji objekt u blizini.

Čitanje je 1 najčešće kada nema predmeta ispred Boe-Bota, ali povremeno treperi na 0

Mogu postojati smetnje u blizini fluorescentnog svjetla u blizini; Ugasite sva fluorescentna svjetla u blizini i ponovite ispitivanja. Ako problem potraje, korak 9 može otkriti problem

Korak 8: Drugi IR par

Drugi IR par
Drugi IR par

Sada kada imate program za lijevi IC, vaš je red da napravite krug i programirate desni IR par

  1. Promijenite DEBUG iskaz, naslov i komentare da se odnose na desni IR par.
  2. Promijenite ime varijable iz irDetectLeft u irDetectRight. To ćete morati učiniti na četiri mjesta u programu.
  3. Promijenite Pin argument naredbe FREQOUT sa 8 na 2.
  4. Promijenite ulazni registar koji nadzire varijabla irDetectRight iz IN9 u IN0.
  5. Ponovite korake testiranja u ovoj aktivnosti za desni IC par; s IC LED krugom spojenim na P2 i detektorom spojenim na P0.

Korak 9: Otkrivanje infracrvenih smetnji (izborno)

Otkrivanje infracrvenih smetnji (izborno)
Otkrivanje infracrvenih smetnji (izborno)

Bilo da imate problema s otkrivanjem signala koji se ne bi trebali otkriti, ili planirate demonstrirati IC detekciju na drugoj lokaciji, možda ćete htjeti testirati smetnje.

Koncept ovog programa za testiranje je prilično jednostavan, detektujete infracrvene signale bez slanja.

Možete koristiti potpuno isti krug, ali ćete morati promijeniti kôd. možete izabrati da napišete vlastiti kôd, ali možete koristiti dolje navedeni kôd:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 ILI IN0 = 0 ONDA DEBUG "Otkrivene smetnje" PAUSE 100 LOOP

Ako ipak osjetite smetnje, odredite vjerovatni izvor i isključite ga/uklonite ga ili se premjestite na mjesto na kojem upravljate Boe-Botom.

Korak 10: Dodavanje više IR parova

Dodavanje više IR parova
Dodavanje više IR parova

Ako želite veću preciznost u kretanju vašeg Boe-Bota, možda biste htjeli dodati još IR parova. 3 Značajno poboljšava performanse u odnosu na dva; možete upotrijebiti središnji par za skeniranje direktne prepreke, a pomoću dva bočna IR -a odrediti koliko ćete okrenuti. Međutim, nedostatak dizajna 3 infracrvena para je taj što možda znate kada klizite uz zid, jer se središnji IR par koristi za otkrivanje prepreka. Da biste riješili ovaj problem, možete dodati IR par na svaku stranu s velikom vrijednošću otpora-stoga će infracrveni signal biti otkriven samo ako je Boe-Bot blizu bočne strane ili zida pod blagim kutom.

Korak 11: Pet IC parova - kolo

Pet IR parova - kolo
Pet IR parova - kolo

Budite oprezni kada usmjeravate dvije IR LED diode sa strane jer njihovo uvrtanje može uzrokovati dodir kabela i uzrokovati kratki spoj.

Korak 12: Pet IR parova - Šifra

Pet IR parova - Šifra
Pet IR parova - Šifra

Možda biste trebali pokušati programirati svoj Boe-Bot prije korištenja ovog koda:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Kod za detekciju pet IR parova' Matthew Shaw '8. maj 2019. (verzija 7)' Otkrivanje objekata i osnovna logička obrada za rješavanje labirinta

irDetectLeft VAR Bit 'Varijabla za lijevo

irDetectCentre VAR bit 'Promjenjiva za centar irDetectRight VAR bit' Promjenjiva za desnu irDetectLSide VAR bit 'Promjenjiva za lijevu stranu irDetectRSide VAR bit' Promjenjiva za desnu stranu irDetectLSideFar VAR bit 'Promjenjiva za lijevu stranu Niska otpornost niska otpornost Vrijednost za desnu stranu Vrijednost za desnu stranu niska otpornost' Varidbena desna VAR Varijanta za desnu stranu nizak otpor 'Variable za nisku otpornost Nizka otpornost' za desnu stranu Variabilna niska otpornost '

mLoop VAR Word

PIN motora 15 'Lijevi motor je spojen na pin 14, ovdje prolaze impulsi

PIN za motor 14 'desno = 15

'brzine su-> 650-750-850

LFast CON 850 'Konastant za lijevi motor pri punoj brzini RFast CON 650' Conastant za desni motor pri punoj brzini

LStop CON 750 'Conastant za lijevi motor pri punoj brzini

RStop CON 650 'Konastant za desni motor pri punoj brzini

LMid CON 830 'Konastant za lijevi motor pri srednjoj brzini

RMid CON 700 'Conastant za desni motor pri srednjoj brzini

LSlow CON 770 'Konastant za lijevi motor pri minimalnoj brzini

RSlow CON 730 'Konastant za desni motor pri minimalnoj brzini

LRev CON 650 'Konastant za lijevi motor pri punoj brzini unatrag

RRev CON 850 'Konastant za lijevi motor pri punoj brzini unatrag

FREQOUT 7, 1, 38500 'lijeva strana

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'centar

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'desna strana

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Lijevo zatvori

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'desno Zatvori

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'desna strana

irDetectRSideFar = IN0

AKO irDetectLSide = 0 I irDetectRSide = 0 ONDA glavna 'ZAPOVJENA POČETKA mahnite rukama pored dva bočna detektora za pokretanje programa

Glavni:

PAUSE 1000 DO

PULSOUT Lmotor, LFast 'lijevi motor radi punom brzinom

PULSOUT Rmotor, RFast 'Desni motor radi punom brzinom

FREQOUT 6, 1, 38500 'centar

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Lijevo zatvori

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'desna strana

irDetectRSide = IN0

AKO je irDetectLSide = 0 I irDetectRSide = 1 ONDA

DO PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'centar

irDetectCentre = IN5 AKO je irDetectCentre = 0 ONDA cent

FREQOUT 10, 1, 38500 'Lijevo zatvori

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'desna strana

irDetectRight = IN2

POKLIČI DO IRDetectLSide = 1 ILI irDetectRSide = 0

ELSEIF irDetectLSide = 1 I irDetectRSide = 0 ONDA

DO PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'centar

irDetectCentre = IN5 AKO je irDetectCentre = 0 ONDA cent

FREQOUT 10, 1, 38500 'Lijevo zatvori

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'desna strana

irDetectRight = IN2

POKLIČI DO IRDetectLSide = 0 ILI irDetectRSide = 1

'ENDIF

AKO je irDetectCentre = 0 ONDA POČNITE

FREQOUT 7, 1, 38500 'lijeva strana irDetectLeft = IN8

FREQOUT 6, 1, 38500 'centar

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'pauza za prikaz otkrivenog signala

IF (irDetectLeft = 1 AND irDetectRight = 0) ONDA procijenite trajanje

GOSUB skretanje nalijevo

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) THEN

GOSUB turnRight

ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) THEN

GOSUB turnDecide

OSTALO

GOSUB turnReverse

ENDIF

ENDIF 'END

PETLJA

END

skrenuti lijevo:

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 POVRATAK

turnRight:

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

POVRATAK

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

POVRATAK

turnDecide: 'koristi manji otpor da vidi dalje

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'desna strana

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) ONDA 'procijenite trajanje

GOSUB skretanje nalijevo

ELSEIF (irDetectLSideFar = 0 I irDetectRSideFar = 1) ONDA

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 I irDetectRSideFar = 1) ONDA

GOSUB skretanje nalijevo

OSTALO

GOSUB turnReverse

ENDIF

POVRATAK

Preporučuje se: