Sisukord:

Boe-Bot infrapunaanduritega: 12 sammu (piltidega)
Boe-Bot infrapunaanduritega: 12 sammu (piltidega)

Video: Boe-Bot infrapunaanduritega: 12 sammu (piltidega)

Video: Boe-Bot infrapunaanduritega: 12 sammu (piltidega)
Video: НЕЗАКОННЫЕ Эксперименты c БОКСИ БУ из ПОППИ ПЛЕЙТАЙМ и ХАГИ ВАГИ в VR! 2024, Juuli
Anonim
Boe-Bot infrapunaanduritega
Boe-Bot infrapunaanduritega

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)

Infrapunatuvastuse toimimise mõistmine (valikuline)
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

IR -LEDide kokkupanek
IR -LEDide kokkupanek

Sisestage IR -LED korpuse suuremasse ossa

Pange valgusdioodi selge osa ümbrise väiksema osa külge

4. samm: infrapunapaaride testimine - vooluring

Infrapunapaaride testimine - vooluring
Infrapunapaaride testimine - vooluring
Infrapunapaaride testimine - vooluring
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

Infrapunapaaride testimine - riistvara + tarkvara
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

  1. Jätke Boe-Bot jadakaabliga ühendatud, sest kasutate IR-paari testimiseks DEBUG-terminali.
  2. Asetage ese, näiteks käsi või paberileht, umbes tolli kaugusele vasakpoolsest IR -paarist
  3. Veenduge, et kui asetate objekti IR -paari ette, kuvab silumisterminal 0 ja kui eemaldate objekti IR -paari eest, siis 1.
  4. 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

Teine IR -paar
Teine IR -paar

Nüüd, kui teil on vasakpoolse infrapuna programm, on teie kord teha ring ja programmeerida õige IR -paar

  1. Muutke DEBUG -i avaldust, pealkirja ja kommentaare, et viidata õigele IR -paarile.
  2. Muutke muutuja nimi irDetectLeft väärtuseks irDetectRight. Peate seda tegema programmi neljas kohas.
  3. Muutke käsu FREQOUT PIN -i argument 8 -lt 2 -le.
  4. Muutke muutuja irDetectRight jälgitav sisendregister IN9 -lt IN0 -le.
  5. 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)

Infrapunahäirete tuvastamine (valikuline)
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

Veel IR -paaride lisamine
Veel IR -paaride lisamine

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

Viis IR -paari - ahel
Viis IR -paari - ahel

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

Viis IR -paari - kood
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

Soovitan: