Sadržaj:
- Korak 1: Resursi
- Korak 2: Razumijevanje funkcioniranja infracrvenog otkrivanja (izborno)
- Korak 3: Sklapanje IC LED dioda
- Korak 4: Testiranje infracrvenih parova - krug
- Korak 5: Testiranje infracrvenih parova - osnovni kod
- Korak 6: Testiranje infracrvenih parova - hardver + softver
- Korak 7: Rješavanje problema (za probleme s posljednjim korakom)
- Korak 8: Drugi IR par
- Korak 9: Otkrivanje infracrvenih smetnji (izborno)
- Korak 10: Dodavanje više IR parova
- Korak 11: Pet IC parova - kolo
- Korak 12: Pet IR parova - Šifra
Video: Boe-Bot sa infracrvenim detektorima: 12 koraka (sa slikama)
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
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)
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
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
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
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
- Ostavite Boe-Bot priključen na serijski kabel jer ćete koristiti DEBUG terminal za testiranje vašeg IC para.
- Postavite predmet, poput ruke ili lista papira, otprilike jedan centimetar od lijevog IC para
- Provjerite da kada postavite objekt ispred IC para, Debug terminal prikazuje 0, a kada uklonite objekt ispred IC para, prikazuje 1.
- 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
Sada kada imate program za lijevi IC, vaš je red da napravite krug i programirate desni IR par
- Promijenite DEBUG iskaz, naslov i komentare da se odnose na desni IR par.
- Promijenite ime varijable iz irDetectLeft u irDetectRight. To ćete morati učiniti na četiri mjesta u programu.
- Promijenite Pin argument naredbe FREQOUT sa 8 na 2.
- Promijenite ulazni registar koji nadzire varijabla irDetectRight iz IN9 u IN0.
- 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)
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
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
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
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