Sadržaj:

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

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

Video: Boe-Bot s infracrvenim detektorima: 12 koraka (sa slikama)
Video: ВКУСНАЯ ЕДА ИЗ ПРОСТЫХ ПРОДУКТОВ В КАЗАНЕ 2 РЕЦЕПТА Узбекский суп 2024, Srpanj
Anonim
Boe-Bot s infracrvenim detektorima
Boe-Bot s 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č za jednostavno praćenje koji omogućuje jednostavne izmjene koje odgovaraju vašim potrebama. To zahtijeva osnovno razumijevanje sklopova i programiranja. Za ovaj projekt trebate imati softver BASIC Stamp IDE. Besplatno za preuzimanje ovdje. Kao i Boe-Bot Robot

Korak 1: Resursi

Elektroničke komponente

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

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

5 sklopova infracrvenog štita

5 infracrvenih detektora Parallax Store - BoeBot IC prijemnik

Otpornici

  • (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 - žica kalibra 22

3 LED -ove ABRA elektronike - 5 mm crvena LED

Podrška

Računalo

BASIC uređivač pečata - (besplatni softver)

Alati

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

Skidač žice ABRA Electronics - Skidač žice

Razno

Zidovi (za izgradnju labirinta)

2. korak: Razumijevanje funkcioniranja infracrvenog otkrivanja (izborno)

Razumijevanje funkcioniranja infracrvenog otkrivanja (izborno)
Razumijevanje funkcioniranja infracrvenog otkrivanja (izborno)

Infracrveni farovi

Sustav za otkrivanje infracrvenih 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 u skladu s tim vodi automobil. Boe-Bot će koristiti infracrvene LED diode za prednja svjetla. Oni emitiraju infracrveno zračenje, a u nekim slučajevima infracrveno se reflektira od objekata i odbija se u smjeru Boe-Bota. Oči Boe-Bota su infracrveni detektori. Infracrveni detektori šalju signale koji pokazuju otkrivaju li infracrvenu zraku reflektiranu od objekta. Mozak Boe-Bota, BASIC Stamp, donosi odluke i upravlja servo motorima na temelju 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 svjetla od 980 nm koje želimo detektirati svojim unutarnjim senzorom fotodioda. Infracrveni detektor također ima elektronički filter koji propušta samo signale oko 38,5 kHz. Drugim riječima, detektor traži samo infracrvenu vezu koja svijetli i isključuje 38, 500 puta u sekundi. To sprječava IC smetnje iz uobičajenih izvora, poput sunčeve svjetlosti i unutarnje rasvjete. Sunčeva svjetlost ima istosmjerne smetnje (0 Hz), a unutarnja rasvjeta teži uključivati i isključivati na 100 ili 120 Hz, ovisno o glavnom izvoru napajanja u regiji. Budući da je 120 Hz izvan propusne frekvencije 38,5 kHz elektroničkog filtra, IR detektori ga potpuno zanemaruju.

-Paralax studentski vodič

Korak 3: Sklapanje IC LED dioda

Sastavljanje IR LED dioda
Sastavljanje IR LED dioda

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

Prozirni dio LED diode zatvorite manjim dijelom kućišta

Korak 4: Testiranje infracrvenih parova - krug

Ispitivanje infracrvenih parova - krug
Ispitivanje infracrvenih parova - krug
Ispitivanje infracrvenih parova - krug
Ispitivanje infracrvenih parova - krug

Prije nego što duboko zađemo u bilo što, pokušat ćemo provjeriti radi li IC par (jedna infracrvena LED i jedan infracrveni detektor).

Započnite izgradnjom gore navedenog kruga na ploči za kruh montiranoj na vrhu vašeg Boe-Bota

Korak 5: Testiranje infracrvenih parova - osnovni kôd

Naravno, morat ćemo napisati kôd za rad naših IR parova

Da bi to učinio, Will će koristiti naredbu FREQOUT. Ova je naredba dizajnirana za audio tonove, no 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. Infracrveni LED krug spojen na 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 uspješno funkcioniranje IC para je slanje 1 ms frekvencije 38,5 kHz FREQOUT i odmah pohranjivanje izlaza IC detektora u varijablu.

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

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Izlazno stanje IC detektora kada ne vidi IC signal je visoko. Kad IC detektor vidi harmonik od 38500 Hz koji reflektira neki objekt, njegov izlaz je nizak. Izlaz IC detektora ostaje nizak tek dio milisekunde nakon što naredba FREQOUT obavi slanje harmonika, stoga 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 pogrešaka ili koristiti za odluke o navigaciji od strane Boe-Bota.

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

Kôd možete sami pokušati napraviti 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 spojen 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, terminal za otklanjanje pogrešaka prikazuje 0, a kada uklonite objekt ispred IC para, prikazuje 1.
  4. Ako terminal za otklanjanje pogreš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 s neočekivanim vrijednostima

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 sintaktičkih pogrešaka - ako ste za posljednji korak koristili vlastiti kôd, razmislite o korištenju koda

Uvijek dobivanje 0, čak i kad 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 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 pravi IR par

  1. Promijenite izjavu DEBUG, naslov i komentare da se odnose na desni IR par.
  2. Promijenite naziv varijable iz irDetectLeft u irDetectRight. To ćete morati učiniti na četiri mjesta u programu.
  3. Promijenite Pin argument naredbe FREQOUT iz 8 u 2.
  4. Promijenite ulazni registar koji nadzire varijabla irDetectRight iz IN9 u IN0.
  5. Ponovite korake testiranja u ovoj aktivnosti za desni IR 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 svoju IR detekciju na drugom mjestu, možda ćete htjeti testirati smetnje.

Koncept ovog programa za testiranje prilično je jednostavan, detektirate 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 RIJEŠAVANJE "Otkrivene smetnje" PAUSE 100 LOOP

Ako primijetite smetnje, odredite vjerojatni 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 točnost u kretanju vašeg Boe-Bota, možda biste htjeli dodati još IR parova. 3 U velikoj mjeri poboljšava performanse u usporedbi s dva; središnji par možete upotrijebiti za traženje izravne prepreke te pomoću dva bočna IR -a odrediti koliko ćete okrenuti. Međutim, nedostatak dizajna 3 IR para je taj što možete znati 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 - sklop

Pet IR parova - sklop
Pet IR parova - sklop

Budite oprezni pri usmjeravanju dviju IR LED dioda sa strane jer njihovo uvijanje može uzrokovati dodir kabela i kratki spoj.

Korak 12: Pet IR parova - Kôd

Pet IR parova - Kod
Pet IR parova - Kod

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

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Kod za otkrivanje pet IR para' Matthew Shaw '8. svibnja 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 središte 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 VIDEO desna Varidbena za desnu stranu Niska otpornost' VarDarni desni VAR Bit 'Promjenjiva za lijevu stranu

mLoop VAR Riječ

PIN motora 15 'Lijevi motor spojen je 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' Konastant za desni motor pri punoj brzini

LStop CON 750 'Konastant 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 'Konastant 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 'ZAPOVJEDA POČETKA mahnite rukama pored dva bočna detektora za pokretanje programa

Glavni:

ZAVRŠITE 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

UČINITE 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

UČINITE 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

'ZAVRŠI AKO

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 skrenitelijevo

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) ONDA

GOSUB turnRight

ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) THEN

GOSUB turnDecide

DRUGO

GOSUB turnReverse

ZAVRŠI AKO

ENDIF 'END

PETLJA

KRAJ

skrenite 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

skrenuti 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

POVRATAK

turnReverse:

ZA mLoop = 0 DO 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, 4, 5, 4, 5, 4, 5, 4, 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 skrenitelijevo

ELSEIF (irDetectLSideFar = 0 I irDetectRSideFar = 1) ONDA

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 I irDetectRSideFar = 1) ONDA

GOSUB skrenitelijevo

DRUGO

GOSUB turnReverse

ZAVRŠI AKO

POVRATAK

Preporučeni: