Përmbajtje:

Boe-Bot me detektorë infra të kuqe: 12 hapa (me fotografi)
Boe-Bot me detektorë infra të kuqe: 12 hapa (me fotografi)

Video: Boe-Bot me detektorë infra të kuqe: 12 hapa (me fotografi)

Video: Boe-Bot me detektorë infra të kuqe: 12 hapa (me fotografi)
Video: Exclusif : Les Pompiers ENTRENT dans Une ÉNORME Tour en flamme ! 2024, Nëntor
Anonim
Boe-Bot me detektorë infra të kuqe
Boe-Bot me detektorë infra të kuqe

Ky udhëzues do të demonstrojë se si të ndërtoni dhe kodoni një Boe-Bot që mund të lundrojë në një labirint duke përdorur detektorë infra të kuqe për të shmangur pengesat. Ky është një udhëzues i lehtë për t’u ndjekur që lejon modifikime të lehta që i përshtaten nevojave tuaja. Kjo kërkon një kuptim bazë të qarkut dhe programimit. Ju do të duhet të keni softuer BASIC Stamp IDE për këtë projekt. Falas për shkarkim këtu. Si dhe Roboti Boe-Bot

Hapi 1: Burimet

Komponentet Elektronike

Boe -Bot me kabllo lidhës Parallax Store - BoeBot Kit

Dyqani i Paralaksit me LED me rreze infra të kuqe - Kompleti i Asamblesë i Transmetuesit IR

5 Kuvendet e Mburojës Infra të Kuqe

5 Dyqane Infra të Kuqe Parallax Store - BoeBot IR Receiver

Rezistencat

  • (2) 4.7 kΩ ABRA Elektronikë - 4.7 kΩ
  • (5) 220 Ω ABRA Elektronikë - 220 Ω
  • (2) 1 kΩ ABRA Elektronikë - 1 kΩ
  • (5) 2 k ABRA Elektronikë - 2 kΩ

Instalime të ndryshme ABRA Electronics - 22 Gauge Wire

3 LED ABRA Elektronikë - LED 5mm të Kuq

Mbështetje

Kompjuter

Redaktori BASIC i Pullave - (Freeware)

Mjetet

Prerës i telave ABRA Elektronikë - Prerës me tela (Opsionale)

Wire Stripper ABRA Elektronikë - Wire Stripper

Të ndryshme

Muret (për të ndërtuar labirint)

Hapi 2: Kuptimi se si funksionon Zbulimi Infrared (Opsionale)

Kuptimi se si funksionon Zbulimi Infrared (Opsionale)
Kuptimi se si funksionon Zbulimi Infrared (Opsionale)

Fenerë me rreze infra të kuqe

Sistemi i zbulimit të objekteve infra të kuqe që do të ndërtojmë në Boe-Bot është si fenerët e makinës në disa aspekte. Kur drita nga fenerët e një makine reflekton pengesat, sytë tuaj zbulojnë pengesat dhe truri juaj i përpunon ato dhe e bën trupin tuaj të drejtojë makinën në përputhje me rrethanat. Boe-Bot do të përdorë LED infra të kuqe për fenerët. Ata lëshojnë infra të kuqe, dhe në disa raste, infra të kuqe reflekton objekte dhe kthehet përsëri në drejtim të Boe-Bot. Sytë e Boe-Bot janë detektorë infra të kuqe. Detektorët infra të kuqe dërgojnë sinjale që tregojnë nëse ata zbulojnë apo jo infra të kuqe të reflektuar nga një objekt. Truri i Boe-Bot, Vula BASIC, merr vendime dhe operon motorët servo bazuar në këtë hyrje të sensorit. Figura 7-1 Zbulimi i Objekteve me Fenerë IR Detektorët IR kanë filtra optikë të integruar që lejojnë shumë pak dritë përveç infra të kuqe 980 nm që duam të zbulojmë me sensorin e saj të brendshëm fotodiodë. Detektori infra të kuqe gjithashtu ka një filtër elektronik që lejon kalimin e sinjaleve vetëm rreth 38.5 kHz. Me fjalë të tjera, detektori po kërkon vetëm infra të kuqe që ndizet dhe fiket 38, 500 herë në sekondë. Kjo parandalon ndërhyrjen IR nga burimet e zakonshme të tilla si rrezet e diellit dhe ndriçimi i brendshëm. Rrezet e diellit janë ndërhyrje DC (0 Hz) dhe ndriçimi i brendshëm tenton të ndizet dhe fiket në 100 ose 120 Hz, në varësi të burimit kryesor të energjisë në rajon. Meqenëse 120 Hz është jashtë frekuencës së kalimit të brezit të filtrit elektronik 38.5 kHz, ai injorohet plotësisht nga detektorët IR.

-Paralax Guide Student

Hapi 3: Montimi i LED -ve IR

Montimi i LED -ve IR
Montimi i LED -ve IR

Futni LED IR në pjesën më të madhe të zorrës

Mbyllni pjesën e qartë të LED me pjesën më të vogël të zorrës

Hapi 4: Testimi i çifteve infra të kuqe - qark

Testimi i çifteve infra të kuqe - qark
Testimi i çifteve infra të kuqe - qark
Testimi i çifteve infra të kuqe - qark
Testimi i çifteve infra të kuqe - qark

Para se të futemi shumë në ndonjë gjë, ne do të testojmë për t'u siguruar që çifti IR funksionon (Një LED infra të kuqe dhe një detektor infra të kuqe).

Filloni duke ndërtuar qarkun e mësipërm në tabelën e bukës të montuar në majë të Boe-Bot tuaj

Hapi 5: Testimi i çifteve infra të kuqe - Kodi bazë

Sigurisht, do të na duhet të shkruajmë kod që çiftet tona IR të funksionojnë

Për ta bërë këtë, do të përdorë komandën FREQOUT. Ky komandë është krijuar për tonet audio, megjithatë mund të përdoret për të prodhuar frekuenca në intervalin infra të kuqe. Për këtë test ne do të përdorim komandën:

FREKUT 8, 1, 38500

kjo do të dërgojë një frekuencë 38.5 kHz që zgjat 1 ms në P8. Qarku infra të kuqe LED i lidhur me P8 do të transmetojë këtë frekuencë. Nëse drita infra të kuqe reflektohet përsëri në Boe-Bot nga një objekt në rrugën e tij, detektori me rreze infra të kuqe do t'i dërgojë vulës BAZ një sinjal për t'i bërë të ditur se drita infra të kuqe e reflektuar është zbuluar.

Çelësi për të bërë një palë IR të funksionojë është të dërgoni 1 ms FREQOUT 38.5 kHz dhe të ruani menjëherë daljen e detektorit IR në një ndryshore.

Ky shembull tregon ruajtjen e vlerës së Detektorit IR në një variabël pak të quajtur irDectectLeft

FREKUT 8, 1, 38500

irDetectLeft = IN9

Gjendja dalëse e detektorit IR kur nuk sheh asnjë sinjal IR është i lartë. Kur detektori IR sheh harmonikën 38500 Hz të pasqyruar nga një objekt, prodhimi i tij është i ulët. Dalja e detektorit IR qëndron e ulët vetëm për një pjesë të milisekondës pasi komanda FREQOUT të ketë përfunduar duke dërguar harmonikën, kështu që është thelbësore të ruani daljen e detektorit IR në një ndryshore menjëherë pas dërgimit të komandës FREQOUT. Vlera e ruajtur nga ndryshorja mund të shfaqet në Terminalin e Debug ose të përdoret për vendimet e lundrimit nga Boe-Bot.

Hapi 6: Testimi i çifteve me rreze infra të kuqe - pajisje + softuer

Testimi i çifteve infra të kuqe - Pajisje kompjuterike + Softuer
Testimi i çifteve infra të kuqe - Pajisje kompjuterike + Softuer

Tani që i dini bazat, ne mund t'i bashkojmë pajisjet dhe softuerin për të testuar një palë së bashku dhe për të marrë reagime në kohë reale nga ato që zbulon çifti IR

Mund të provoni dhe ta bëni vetë kodin, ose të përdorni kodin më poshtë

'{$ STAMP BS2}

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

  1. Lëreni Boe-Bot të lidhur me kabllon serik, sepse do të përdorni Terminalin DEBUG për të testuar palën tuaj IR.
  2. Vendosni një objekt, të tillë si dora juaj ose një fletë letre, rreth një inç nga çifti IR i majtë
  3. Verifikoni që kur vendosni një objekt para palës IR, Debug Terminal shfaq një 0, dhe kur e hiqni objektin nga para palës IR, ai shfaq një 1.
  4. Nëse Terminali i Debug-ut nuk shfaq vlerat e pritshme, provoni hapat në Hapin e zgjidhjes së problemeve.

Hapi 7: Zgjidhja e problemeve (për çështjet me hapin e fundit)

Terminali DEBUG që shfaq vlera të papritura

Kontrolloni qarkun për pantallona të shkurtra, lidhje të gabuara ose që mungojnë, përbërës të dëmtuar, rezistorë të pasaktë ose ndonjë problem tjetër të dukshëm

Kontrolloni programin nga gabimet logjike ose sintaksore - Nëse keni përdorur kodin tuaj për hapin e fundit, merrni parasysh përdorimin e kodit të dhënë

Gjithmonë duke marrë 0, edhe kur nuk ka objekte vendoset para Boe-Bot

Kontrolloni nëse ka ndonjë objekt aty pranë që reflekton sinjalin infra të kuqe. Tabela para Boe-Bot mund të jetë shkaku. Zhvendoseni Boe-Bot në hapësirë të hapur në mënyrë që LED LED dhe detektori të mos reflektojnë asnjë objekt aty pranë.

Leximi është 1 shumicën e kohës kur nuk ka asnjë objekt para Boe-Bot, por shkrep në 0 herë pas here

Mund të ketë ndërhyrje nga një dritë fluoreshente aty pranë; Fikni çdo dritë fluoreshente aty pranë dhe përsëritni testet tuaja. Nëse problemi vazhdon, hapi 9 mund ta zbulojë problemin

Hapi 8: Çifti i dytë IR

Çifti i dytë IR
Çifti i dytë IR

Tani që keni programin për IR të majtë, është radha juaj të bëni qarkun dhe të programoni Çiftin IR të djathtë

  1. Ndryshoni deklaratën, titullin dhe komentet DEBUG për t'iu referuar çiftit të duhur IR.
  2. Ndryshoni emrin e ndryshores nga irDetectLeft në irDetectRight. Ju do të duhet ta bëni këtë në katër vende në program.
  3. Ndryshoni argumentin Pin të komandës FREQOUT nga 8 në 2.
  4. Ndryshoni regjistrin hyrës të monitoruar nga variabla irDetectRight nga IN9 në IN0.
  5. Përsëritni hapat e testimit në këtë aktivitet për palën IR të duhur; me qarkun LED IR të lidhur me P2 dhe detektorin e lidhur me P0.

Hapi 9: Zbulimi i ndërhyrjes me rreze infra të kuqe (Opsionale)

Zbulimi i ndërhyrjes infra të kuqe (opsionale)
Zbulimi i ndërhyrjes infra të kuqe (opsionale)

Nëse jeni duke përjetuar probleme me zbulimin e sinjaleve që nuk duhet të zbulohen ose planifikoni të demonstroni zbulimin tuaj IR në një vendndodhje alternative, mund të dëshironi të provoni për ndërhyrje.

Koncepti i këtij programi testimi është mjaft i thjeshtë, ju zbuloni për sinjale infra të kuqe pa dërguar asnjë.

Ju mund të përdorni të njëjtin qark, por do t'ju duhet të ndryshoni kodin. ju mund të zgjidhni të shkruani kodin tuaj, por mund të përdorni kodin e dhënë më poshtë:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 NFSE IN9 = 0 OSE IN0 = 0 PAS DEBUG "Ndërhyrja u zbulua" PAUSE 100 LOOP

Nëse përjetoni ndërhyrje, përcaktoni burimin e mundshëm dhe fikeni/hiqni atë ose zhvendoseni aty ku përdorni Boe-Bot tuaj.

Hapi 10: Shtimi i më shumë çifteve IR

Shtimi i më shumë çifteve IR
Shtimi i më shumë çifteve IR

Nëse dëshironi më shumë saktësi në lëvizjen e Boe-Bot tuaj, mund të dëshironi të shtoni më shumë çifte IR. 3 Përmirëson shumë performancën në krahasim me dy; mund të përdorni një palë qendrore për të skanuar për një pengesë të drejtpërdrejtë dhe përdorni IR -të anësore për të përcaktuar se sa do të ktheheni. Sidoqoftë, rënia e modelit të palës 3 IR është se ju mund ta dini kur rrëshqitni në mur, sepse çifti IR qendror përdoret për të zbuluar pengesat. Për të zgjidhur këtë problem, mund të shtoni një palë IR në secilën anë me një vlerë të lartë të rezistencës-prandaj dhe sinjali infra të kuqe do të zbulohet vetëm nëse Boe-Bot është afër anës ose një muri në një kënd të butë.

Hapi 11: Pesë çifte IR - Qark

Pesë çifte IR - Qark
Pesë çifte IR - Qark

Kini kujdes kur drejtoni dy LED -të IR në anën, pasi rrotullimi i tyre mund të shkaktojë prekjen e prizave dhe shkaktimin e një qarku të shkurtër.

Hapi 12: Pesë çifte IR - Kodi

Pesë çifte IR - Kodi
Pesë çifte IR - Kodi

Ju mund të dëshironi të provoni të programoni Boe-Bot tuaj para se të përdorni këtë kod:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Pesë kod IR i palëve me palë' Matthew Shaw '8 maj 2019 (Versioni 7)' Zbulimi i objekteve dhe përpunimi bazë logjik për zgjidhjen e labirinteve

irDetectLeft VAR Bit 'Variabla për të majtën

IrDetectCentre Bit VAR 'Variable for center irDetectRight VAR Bit' Variable for right irDetectLSide VAR Bit 'Variable for side left irDetectRSide VAR Bit' Variable for side right irDetectLSideFar VAR Bit 'Variable for rezistencën e ulët të rezistencës së ulët irDetectRSideFar VAR bit të ulët' Variabël për

mLoop VAR Word

PIN Lmotor 15 'Motori i majtë është i lidhur me pin 14, pulsimet kalojnë këtu

PIN i Rmotorit 14 'djathtas = 15

'shpejtësitë janë-> 650-750-850

LFast CON 850 'Falas për motorin e majtë me shpejtësi të plotë RFast CON 650' Conastant për motorin e djathtë me shpejtësi të plotë

LStop CON 750 'Fshirës për motorin e majtë me shpejtësi të plotë

RStop CON 650 'Fshirës për motorin e duhur me shpejtësi të plotë

LMid CON 830 'Fshirës për motorin e majtë me shpejtësi mesatare

RMid CON 700 'Fshirës për motorin e duhur me shpejtësi të mesme

LSlow CON 770 'Fshirës për motorin e majtë me shpejtësi minimale

RSlow CON 730 'Fshirës për motorin e duhur me shpejtësi minimale

LRev CON 650 'Fshirës për motorin e majtë me shpejtësi të plotë në të kundërt

RRev CON 850 'Fshirës për motorin e majtë me shpejtësi të plotë në të kundërt

FREKUT 7, 1, 38500 'ana e majtë

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'qendra

irDetectCentre = IN5

FREKUT 3, 1, 38500 'ana e djathtë

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Majtas Mbyll

irDetectLSide = IN11

FREKUT 1, 1, 38500 'djathtas Mbyll

irDetectRSide = IN0

FREKUT 9, 1, 38500

irDetectLSideFar = IN11

FREKUT 4, 1, 38500 'ana e djathtë

irDetectRSideFar = IN0

NFSE irDetectLSide = 0 DHE irDetectRSide = 0 PASTAJ KOMANDA E FILLIMIT tundni duart përtej dy detektorëve anësorë për të filluar programin

Kryesore:

PAUZA 1000 BOJ

PULSOUT Lmotor, LFast 'motori i majtë funksionon me shpejtësi të plotë

PULSOUT Rmotor, RFast 'Motori i djathtë funksionon me shpejtësi të plotë

FREQOUT 6, 1, 38500 'qendra

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Majtas Mbyll

irDetectLSide = IN11

FREKUT 1, 1, 38500 'ana e djathtë

irDetectRSide = IN0

NFSE irDetectLSide = 0 DHE irDetectRSide = 1 PASTAJ

BOJ PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'qendër

irDetectCentre = IN5 NFSE irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Mbyll Mbyll

irDetectLSide = IN11

FREKUT 3, 1, 38500 'ana e djathtë

irDetectRight = IN2

LIGJI DERI në irDetectLSide = 1 OSE irDetectRSide = 0

ELSEIF irDetectLSide = 1 DHE irDetectRSide = 0 PASTAJ

BOJ PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'qendra

irDetectCentre = IN5 NFSE irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Majtas Mbyll

irDetectLSide = IN11

FREKUT 3, 1, 38500 'ana e djathtë

irDetectRight = IN2

LIGJI DERI në irDetectLSide = 0 OSE irDetectRSide = 1

'ENDIF

NFSE irDetectCentre = 0 PASTAJ FILLIMI

FREKUT 7, 1, 38500 'ana e majtë irDetectLeft = IN8

FREQOUT 6, 1, 38500 'qendër

irDetectCentre = IN5

FREKUT 3, 1, 38500

irDetectRight = IN2

NDALJA 1000 'pauzë për të treguar sinjalin e zbuluar

NFSE (irDetectLeft = 1 AND irDetectRight = 0) PASTAJ 'vlerësoni kohëzgjatjen

GOSUB turnLeft

ELSEIF (irDetectLeft = 0 DHE irDetectRight = 1) PASTAJ

GOSUB djathtas

ELSEIF (irDetectLeft = 1 DHE irDetectRight = 1) PASTAJ

GOSUB turnDecide

TJER

GOSUB turnReverse

ENDIF

ENDIF 'FUND

SHIKO

FUND

Kthehu majtas:

BOH PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREKUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP DERI N0 = 1 KTHIM

Kthehu djathtas:

BOH PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = INFREQUT 2, 1, 38500 irDetectRight = IN0 LOOP DERI IN9 = 1

KTHIM

kthehu mbrapsht:

PER mLoop = 0 në 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev Pauz 20 PULSOUT Lmotor, LRev Pauz 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP DERI IN9 = 1

KTHIM

turnDecide: 'përdor rezistencë më të ulët për të parë më tej

FREKUT 9, 1, 38500

irDetectLSideFar = IN11

FREKUT 4, 1, 38500 'ana e djathtë

irDetectRSideFar = IN0

NFSE (irDetectLSideFar = 1 DHE irDetectRSideFar = 0) PASTAJ 'vlerësoni kohëzgjatjen

GOSUB turnLeft

ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) PASTAJ

GOSUB djathtas

ELSEIF (irDetectLSideFar = 1 DHE irDetectRSideFar = 1) PASTAJ

GOSUB turnLeft

TJER

GOSUB turnReverse

ENDIF

KTHIM

Recommended: