Sisukord:
- Samm: ressursid
- 2. samm: infrapunatuvastuse toimimise mõistmine (valikuline)
- 3. samm: IR -LEDide kokkupanek
- 4. samm: infrapunapaaride testimine - vooluring
- 5. samm: infrapunapaaride testimine - põhikood
- 6. samm: infrapunapaaride testimine - riistvara + tarkvara
- Samm: tõrkeotsing (viimase sammuga seotud probleemide korral)
- 8. samm: teine IR -paar
- 9. samm: infrapunahäirete tuvastamine (valikuline)
- Samm: lisage rohkem IR -paare
- 11. samm: viis IR -paari - vooluring
- 12. samm: viis IR -paari - kood
Video: Boe-Bot infrapunaanduritega: 12 sammu (piltidega)
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
See juhend juhendab, kuidas ehitada ja kodeerida Boe-Bot, mis suudab takistuste vältimiseks infrapuna-detektorite abil labürindis navigeerida. See on hõlpsasti järgitav juhend, mis võimaldab teie vajadustele vastavaid lihtsaid muudatusi teha. See nõuab elementaarset arusaamist vooluringidest ja programmeerimisest. Selle projekti jaoks peab teil olema BASIC Stamp IDE tarkvara. Tasuta allalaadimiseks siit. Nagu ka Boe-Boti robot
Samm: ressursid
Elektroonilised osad
Boe -Bot ühenduskaabliga Parallax Store - BoeBoti komplekt
5 infrapuna -LED -i parallaksipood - IR -saatja kokkupanekukomplekt
5 infrapunakaitsesõlmed
5 infrapunaandurit Parallax Store - BoeBot IR vastuvõtja
Takistid
- (2) 4,7 kΩ ABRA elektroonika - 4,7 kΩ
- (5) 220 Ω ABRA elektroonika - 220 Ω
- (2) 1 kΩ ABRA elektroonika - 1 kΩ
- (5) 2 k ABRA elektroonika - 2 kΩ
Erinevad juhtmed ABRA Electronics - 22 gabariitraat
3 LED -i ABRA elektroonika - 5 mm punane LED
Toetus
Arvuti
PÕHITempli redaktor - (tasuta)
Tööriistad
Traadilõikur ABRA Electronics - traadilõikur (valikuline)
Traadi eemaldaja ABRA Electronics - traadist eemaldaja
Muu
Seinad (labürindi ehitamiseks)
2. samm: infrapunatuvastuse toimimise mõistmine (valikuline)
Infrapuna esituled
Infrapunaobjektide tuvastamise süsteem, mille me Boe-Botile ehitame, on mitmes mõttes nagu auto esituled. Kui auto esilaternate valgus peegeldub takistustelt, tuvastavad teie silmad takistused ja teie aju töötleb neid ning paneb teie keha autot vastavalt juhtima. Boe-Bot kasutab esilaternate jaoks infrapuna-LED-e. Need kiirgavad infrapunakiirgust ja mõnel juhul peegeldub infrapuna objektidelt ja põrkab tagasi Boe-Boti suunas. Boe-Boti silmad on infrapunaandurid. Infrapunaandurid saadavad signaale, mis näitavad, kas nad tuvastavad objektilt peegelduva infrapuna. Boe-Boti aju, BASIC Stamp, teeb otsuseid ja juhib servomootoreid selle andurisisendi põhjal. Joonis 7-1 Objekti tuvastamine IR-esituledega IR-anduritel on sisseehitatud optilised filtrid, mis võimaldavad väga vähe valgust, välja arvatud 980 nm infrapuna, mida soovime tuvastada selle sisemise fotodiood-anduriga. Infrapunaanduril on ka elektrooniline filter, mis laseb läbi ainult umbes 38,5 kHz signaale. Teisisõnu, detektor otsib ainult infrapunaühendust, mis vilgub sisse ja välja 38, 500 korda sekundis. See hoiab ära infrapunahäireid tavalistest allikatest, nagu päikesevalgus ja sisevalgustus. Päikesevalgus on alalisvoolu interferents (0 Hz) ja siseruumide valgustus kipub vilkuma kas 100 või 120 Hz juures, olenevalt piirkonna peamisest toiteallikast. Kuna 120 Hz on väljaspool elektroonilise filtri 38,5 kHz ribalaiuse sagedust, ignoreerivad infrapunaandurid seda täielikult.
-Paralaxi õpilasjuhend
3. samm: IR -LEDide kokkupanek
Sisestage IR -LED korpuse suuremasse ossa
Pange valgusdioodi selge osa ümbrise väiksema osa külge
4. samm: infrapunapaaride testimine - vooluring
Enne kui asume millessegi liiga sügavale, testime, kas IR -paar töötab (üks infrapuna -LED ja üks infrapuna -detektor).
Alustage ülaltoodud vooluahela ehitamisest Boe-Boti peale paigaldatud leivaplaadile
5. samm: infrapunapaaride testimine - põhikood
Loomulikult peame oma IR -paaride toimimiseks koodi kirjutama
Selleks kasutab ta käsku FREQOUT. See käsk oli mõeldud helitoonide jaoks, kuid seda saab kasutada infrapunavahemiku sageduste tootmiseks. Selle testi jaoks kasutame käsku:
TASUTA 8, 1, 38500
see saadab P8 -le 38,5 kHz sageduse, mis kestab 1 ms. P8 -ga ühendatud infrapuna -LED -ahel edastab seda sagedust. Kui selle teel olev objekt peegeldab infrapunavalgust Boe-Botile tagasi, saadab infrapunaandur BASIC Stamp signaali, mis annab teada, et peegeldunud infrapunavalgus tuvastati.
IR -paari toimimise võtmeks on saata 1 ms sagedust 38,5 kHz FREQOUT ja kohe salvestada IR -detektori väljund muutujale.
See näide näitab IR -detektori väärtuse salvestamist bitimuutuja nimega irDectectLeft
TASUTA 8, 1, 38500
irDetectLeft = IN9
IR -anduri väljundolek, kui see ei näe ühtegi IR -signaali, on kõrge. Kui IR -detektor näeb objekti peegelduvat 38500 Hz harmoonilist, on selle väljund madal. IR -detektori väljund jääb pärast murdosa harmoonilise saatmist madalaks vaid millisekundi murdosa, seega on oluline salvestada IR -detektori väljund muutujale kohe pärast FREQOUT -käsu saatmist. Muutuja salvestatud väärtust saab seejärel kuvada silumiseterminalis või kasutada Boe-Boti navigeerimisotsuste tegemiseks.
6. samm: infrapunapaaride testimine - riistvara + tarkvara
Nüüd, kui teate põhitõdesid, saame riistvara ja tarkvara kokku panna, et paari testida ja saada reaalajas tagasisidet IR-paari tuvastatava kohta
Võite proovida koodi ise teha või kasutada allolevat koodi
„{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft =", BIN1 irDetectLeft PAUSE 100 LOOP
- Jätke Boe-Bot jadakaabliga ühendatud, sest kasutate IR-paari testimiseks DEBUG-terminali.
- Asetage ese, näiteks käsi või paberileht, umbes tolli kaugusele vasakpoolsest IR -paarist
- Veenduge, et kui asetate objekti IR -paari ette, kuvab silumisterminal 0 ja kui eemaldate objekti IR -paari eest, siis 1.
- Kui silumisterminal ei näita oodatud väärtusi, proovige tõrkeotsingu sammu samme.
Samm: tõrkeotsing (viimase sammuga seotud probleemide korral)
DEBUG Terminal kuvab ootamatuid väärtusi
Kontrollige vooluahelat lühiste, valesti asetatud või puuduvate pistikute, kahjustatud komponentide, valede takistite või muude nähtavate probleemide suhtes
Kontrollige programmi loogiliste või süntaksivigade osas - kui kasutasite viimases etapis oma koodi, kaaluge pakutud koodi kasutamist
Boe-Boti ette asetatakse alati 0, isegi kui objekte pole
Kontrollige, kas läheduses on objekte, mis peegeldavad infrapunasignaali. Põhjuseks võib olla laud Boe-Boti ees. Liigutage Boe-Bot avatud ruumi nii, et IR-LED ja detektor ei saaks peegelduda läheduses asuvatelt objektidelt.
Lugemine toimub enamasti siis, kui Boe-Boti ees pole ühtegi eset, kuid vilgub aeg-ajalt 0-ni
Lähedal asuv luminofoorlamp võib tekitada häireid; Lülitage kõik läheduses olevad luminofoorlambid välja ja korrake katseid. Kui probleem püsib, võib 9. samm probleemi paljastada
8. samm: teine IR -paar
Nüüd, kui teil on vasakpoolse infrapuna programm, on teie kord teha ring ja programmeerida õige IR -paar
- Muutke DEBUG -i avaldust, pealkirja ja kommentaare, et viidata õigele IR -paarile.
- Muutke muutuja nimi irDetectLeft väärtuseks irDetectRight. Peate seda tegema programmi neljas kohas.
- Muutke käsu FREQOUT PIN -i argument 8 -lt 2 -le.
- Muutke muutuja irDetectRight jälgitav sisendregister IN9 -lt IN0 -le.
- Korrake selle tegevuse testimise samme õige IR -paari jaoks; kui IR LED -ahel on ühendatud P2 -ga ja andur on ühendatud P0 -ga.
9. samm: infrapunahäirete tuvastamine (valikuline)
Olenemata sellest, kas teil on probleeme signaalide tuvastamisega, mida ei tohiks tuvastada, või kavatsete näidata oma IR -tuvastust teises kohas, võiksite testida häireid.
Selle testimisprogrammi kontseptsioon on üsna lihtne, saate tuvastada infrapunasignaalid ilma neid välja saatmata.
Võite kasutada täpselt sama skeemi, kuid peate koodi muutma. võite kirjutada oma koodi, kuid võite kasutada allolevat koodi:
„{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OR IN0 = 0 THEN DEBUG "Häire tuvastatud" PAUS 100 LOOP
Kui teil tekivad häired, määrake tõenäoline allikas ja lülitage see välja/eemaldage see või viige ümber oma Boe-Boti kasutamiskohta.
Samm: lisage rohkem IR -paare
Kui soovite oma Boe-Boti liigutamisel täpsust, võiksite lisada rohkem IR-paare. 3 Parandab oluliselt jõudlust võrreldes kahega; saate otsese takistuse otsimiseks kasutada keskpaari ja kahe külgmise IR abil määrata, kui palju pöörata. Kuid 3 IR -paari disaini allakäik on see, et võite teada, kui libistate vastu seina, sest keskmist IR -paari kasutatakse takistuste tuvastamiseks. Selle probleemi lahendamiseks võite lisada mõlemale küljele IR-paari, millel on kõrge takistusväärtus, seetõttu tuvastatakse infrapunasignaal ainult siis, kui Boe-Bot on külje või seina lähedal õrna nurga all.
11. samm: viis IR -paari - vooluring
Olge kahe IR -valgusdioodi küljele suunamisel ettevaatlik, sest nende keeramine võib juhtmeid puudutada ja põhjustada lühise.
12. samm: viis IR -paari - kood
Enne selle koodi kasutamist võiksite proovida Boe-Boti programmeerimist:
'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Paar Deatection Code' Matthew Shaw '8. mai 2019 (versioon 7)' Objektide tuvastamine ja põhiline loogiline töötlemine labürintide lahendamiseks
irDetectLeft VAR Bit 'Muutuja vasakule
irDetectCentre VAR Bit 'Muutuja keskse irDetectRight VAR Bit' Muutuja parempoolse irDetectLSide VAR Bit 'Muutuja vasakpoolse irDetectRSide VAR Bit' Muutuja parempoolse irDetectLSideFar VAR Bit 'Muutuja vasakpoolse madala takistusega irDetectRSideFar VAR Bit' Muutuja parempoolne madal
mLoop VAR sõna
Lmootori PIN 15 'Vasak mootor on ühendatud tihvtiga 14, impulsid lähevad siit läbi
Mootori PIN 14 'paremal = 15
"kiirused on-> 650-750-850
LFast CON 850 'Conastant vasakul mootoril täiskiirusel RFast CON 650' Conastant paremale mootorile täiskiirusel
LStop CON 750 'Täispööretega vasakpoolse mootori konastant
RStop CON 650 'Conastant paremale mootorile täiskiirusel
LMid CON 830 'Conastant vasakule mootorile keskmise kiirusega
RMid CON 700 'Conastant paremale mootorile keskmise kiirusega
LSlow CON 770 'Konastant vasakpoolse mootori jaoks minimaalse kiirusega
RSlow CON 730 'Konastant parema mootori jaoks minimaalse kiirusega
LRev CON 650 'Konastant vasakpoolse mootori jaoks täiskiirusel tagurpidi
RRev CON 850 'Konastant vasakpoolse mootori jaoks täiskiirusel tagurpidi
FREQOUT 7, 1, 38500 'vasakul küljel
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'keskus
irDetectCentre = IN5
FREQOUT 3, 1, 38500 'parem külg
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Vasakul suletud
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'paremale Sule
irDetectRSide = IN0
TASUTA 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'parem külg
irDetectRSideFar = IN0
KUI irDetectLSide = 0 JA irDetectRSide = 0 SIIS lehvitab programmi käivitamiseks põhiline käivituskäsk kahest küljeandurist mööda
Peamine:
PAUS 1000 TEE
PULSOUT Lmotor, LFast 'vasak mootor töötab täiskiirusel
PULSOUT Rmotor, RFast 'Parem mootor töötab täiskiirusel
FREQOUT 6, 1, 38500 'keskus
irDetectCentre = IN5
FREQOUT 10, 1, 38500 'Vasakul suletud
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'parem külg
irDetectRSide = IN0
IF irDetectLSide = 0 JA irDetectRSide = 1 THEN
DO PULSOUT Lmotor, LFast
FREQOUT 6, 1, 38500 'keskus
irDetectCentre = IN5 IF irDetectCentre = 0 THEN senti
FREQOUT 10, 1, 38500 'Vasakul suletud
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'parem külg
irDetectRight = IN2
LOOP KUNI irDetectLSide = 1 VÕI irDetectRSide = 0
ELSEIF irDetectLSide = 1 JA irDetectRSide = 0 THEN
DO PULSOUT Rmotor, RFast
FREQOUT 6, 1, 38500 'keskus
irDetectCentre = IN5 IF irDetectCentre = 0 THEN senti
FREQOUT 10, 1, 38500 'Vasakul suletud
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'parem külg
irDetectRight = IN2
LOOP KUNI irDetectLSide = 0 VÕI irDetectRSide = 1
„ENDIF
IF irDetectCentre = 0 THEN 'START
FREQOUT 7, 1, 38500 'vasak pool irDetectLeft = IN8
FREQOUT 6, 1, 38500 'keskus
irDetectCentre = IN5
TASUTA 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 paus tuvastatud signaali näitamiseks
IF (irDetectLeft = 1 AND irDetectRight = 0) THEN 'hindab kestust
GOSUB pööre vasakule
ELSEIF (irDetectLeft = 0 JA irDetectRight = 1) SIIS
GOSUBi pöörlemisõigus
ELSEIF (irDetectLeft = 1 JA irDetectRight = 1) SIIS
GOSUB turnDecide
MUU
GOSUBi pööre tagurpidi
ENDIF
ENDIF 'LÕPP
LOOP
LÕPP
pööra vasakule:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP KUNI IN0 = 1 TAGASI
pööra paremale:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP KUNI IN9 = 1
TAGASI
turnReverse:
FOR mLoop = 0 kuni 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, 38500 1 TUNNETUS, 38500 irDetectRight = IN0 LOOP KUNI IN9 = 1
TAGASI
turnDecide: 'kasutab edasiseks nägemiseks väiksemat takistust
TASUTA 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'parem külg
irDetectRSideFar = IN0
IF (irDetectLSideFar = 1 JA irDetectRSideFar = 0) THEN 'hindab kestust
GOSUB pööre vasakule
ELSEIF (irDetectLSideFar = 0 JA irDetectRSideFar = 1) SIIS
GOSUBi pöörlemisõigus
ELSEIF (irDetectLSideFar = 1 JA irDetectRSideFar = 1) SIIS
GOSUB pööre vasakule
MUU
GOSUBi pööre tagurpidi
ENDIF
TAGASI