Sisällysluettelo:

Boe-Bot infrapunatunnistimilla: 12 vaihetta (kuvilla)
Boe-Bot infrapunatunnistimilla: 12 vaihetta (kuvilla)

Video: Boe-Bot infrapunatunnistimilla: 12 vaihetta (kuvilla)

Video: Boe-Bot infrapunatunnistimilla: 12 vaihetta (kuvilla)
Video: DELICIOUS FOOD FROM SIMPLE PRODUCTS IN A KAZAN 2 RECIPES Uzbek soup 2024, Marraskuu
Anonim
Boe-Bot infrapunatunnistimilla
Boe-Bot infrapunatunnistimilla

Tässä ohjeessa esitetään kuinka rakentaa ja koodata Boe-Bot, joka pystyy navigoimaan sokkelossa infrapuna-ilmaisimien avulla esteiden välttämiseksi. Tämä on helppokäyttöinen opas, joka mahdollistaa helpot muutokset tarpeidesi mukaan. Tämä vaatii perustiedot piirien ja ohjelmoinnin. Sinulla on oltava BASIC Stamp IDE -ohjelmisto tähän projektiin. Lataa ilmaiseksi täältä. Samoin kuin Boe-Bot-robotti

Vaihe 1: Resurssit

Elektroniset komponentit

Boe -Bot liitäntäkaapelilla Parallax Store - BoeBot Kit

5 Infrapuna -LEDin parallaksikauppa - IR -lähettimen kokoonpanosarja

5 Infrapunasuojakokoonpanoa

5 infrapuna -ilmaisinta Parallax Store - BoeBot IR -vastaanotin

Vastukset

  • (2) 4,7 kΩ ABRA Electronics - 4,7 kΩ
  • (5) 220 Ω ABRA Electronics - 220 Ω
  • (2) 1 kΩ ABRA Electronics - 1 kΩ
  • (5) 2 k ABRA Electronics - 2 kΩ

Erilaisia johdotuksia ABRA Electronics - 22 Gauge Wire

3 LED -valoa ABRA Electronics - 5 mm punainen LED

Tuki

Tietokone

BASIC Stamp Editor - (Freeware)

Työkalut

Lankaleikkuri ABRA Electronics - Langanleikkuri (valinnainen)

Johtimen irrotin ABRA Electronics - Johtimet

Muut

Seinät (sokkelon rakentamiseen)

Vaihe 2: Infrapunatunnistuksen toiminta (valinnainen)

Infrapunatunnistuksen toiminta (valinnainen)
Infrapunatunnistuksen toiminta (valinnainen)

Infrapuna -ajovalot

Boe-Botiin rakennettava infrapunaobjektin tunnistusjärjestelmä on monessa suhteessa kuin auton ajovalot. Kun auton ajovalojen valo heijastuu esteistä, silmäsi havaitsevat esteet ja aivosi käsittelevät ne ja saavat kehosi ohjaamaan autoa sen mukaisesti. Boe-Bot käyttää ajovaloja infrapunavaloilla. Ne lähettävät infrapunaa, ja joissakin tapauksissa infrapuna heijastuu esineistä ja pomppii takaisin Boe-Botin suuntaan. Boe-Botin silmät ovat infrapuna-ilmaisimia. Infrapunatunnistimet lähettävät signaaleja, jotka osoittavat havaitsevatko he kohteesta heijastuneen infrapunan vai eivät. Boe-Botin aivot, BASIC Stamp, tekevät päätöksiä ja käyttävät servomoottoreita tämän anturitulon perusteella. Kuva 7-1 Kohteen tunnistus IR-ajovaloilla IR-ilmaisimissa on sisäänrakennetut optiset suodattimet, jotka sallivat hyvin vähän valoa lukuun ottamatta 980 nm: n infrapunaa, jonka haluamme havaita sen sisäisellä fotodiodianturilla. Infrapunatunnistimessa on myös elektroninen suodatin, joka sallii vain noin 38,5 kHz: n signaalien kulkemisen. Toisin sanoen ilmaisin etsii vain infrapunaa, joka vilkkuu 38 ja 500 kertaa sekunnissa. Tämä estää yleisten lähteiden, kuten auringonvalon ja sisävalon, aiheuttamia infrapunahäiriöitä. Auringonvalo on DC -häiriötä (0 Hz), ja sisävalaistuksella on taipumus vilkkua joko 100 tai 120 Hz taajuudella riippuen alueen päävirtalähteestä. Koska 120 Hz on elektronisen suodattimen 38,5 kHz: n taajuuskaistan taajuuden ulkopuolella, IR -ilmaisimet jättävät sen täysin huomiotta.

-Paralax -opasopas

Vaihe 3: IR -LEDien kokoaminen

IR -LEDien kokoaminen
IR -LEDien kokoaminen

Aseta IR -LED kotelon suurempaan osaan

Liitä LEDin kirkas osa kotelon pienempään osaan

Vaihe 4: Infrapunaparien testaus - piiri

Infrapunaparien testaus - piiri
Infrapunaparien testaus - piiri
Infrapunaparien testaus - piiri
Infrapunaparien testaus - piiri

Ennen kuin menemme liian syvälle mihinkään, testaamme varmistaaksemme, että IR -pari toimii (yksi infrapuna -LED ja yksi infrapunatunnistin).

Aloita rakentamalla yllä oleva piiri Boe-Botisi päälle asennetulle leipälevylle

Vaihe 5: Infrapunaparien testaus - peruskoodi

Tietenkin meidän on kirjoitettava koodi, jotta IR -parimme toimisivat

Tätä varten hän käyttää FREQOUT -komentoa. Tämä komento on suunniteltu ääniäänille, mutta sitä voidaan käyttää infrapuna -alueen taajuuksien tuottamiseen. Tässä testissä käytämme komentoa:

FREQOUT 8, 1, 38500

tämä lähettää 38,5 kHz: n taajuuden, joka kestää 1 ms, P8: lle. P8: een liitetty infrapuna -LED -piiri lähettää tämän taajuuden. Jos polku heijastaa infrapunavalon takaisin Boe-Botiin, infrapunatunnistin lähettää BASIC-leimalle signaalin ilmoittaakseen, että heijastunut infrapunavalo havaittiin.

Avain IR -parin toimimiseen on lähettää 1 ms 38,5 kHz FREQOUT ja tallentaa infrapunatunnistimen lähtö välittömästi muuttujaan.

Tämä esimerkki näyttää IR -ilmaisimen arvon tallentamisen bittimuuttujassa nimeltä irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

IR -ilmaisimen lähtötila, kun se ei näe IR -signaalia, on korkea. Kun IR -ilmaisin näkee 38500 Hz: n harmonisen heijastuvan kohteen, sen lähtö on heikko. IR -ilmaisimen ulostulo pysyy alhaisena vain murto -osa millisekuntia sen jälkeen, kun FREQOUT -komento on lähetetty harmoninen, joten on välttämätöntä tallentaa IR -ilmaisimen lähtö muuttujaan heti FREQOUT -komennon lähettämisen jälkeen. Muuttujan tallentama arvo voidaan sitten näyttää virheenkorjausterminaalissa tai käyttää Boe-Botin navigointipäätöksissä.

Vaihe 6: Infrapunaparien testaus - laitteisto + ohjelmisto

Infrapunaparien testaus - laitteisto + ohjelmisto
Infrapunaparien testaus - laitteisto + ohjelmisto

Nyt kun tiedät perusasiat, voimme yhdistää laitteiston ja ohjelmiston yhdessä testataksesi parin yhdessä ja saadaksesi reaaliaikaista palautetta siitä, mitä IR-pari havaitsee

Voit yrittää tehdä koodin itse tai käyttää alla olevaa koodia

'{$ STAMP BS2}

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

  1. Jätä Boe-Bot kytketty sarjakaapeliin, koska käytät DEBUG-päätelaitetta IR-parin testaamiseen.
  2. Aseta esine, kuten käsi tai paperiarkki, noin tuuman etäisyydelle vasemmasta IR -parista
  3. Varmista, että kun asetat objektin IR -parin eteen, debug -pääte näyttää 0 ja kun poistat objektin IR -parin edestä, se näyttää 1.
  4. Jos virheenkorjauspääte ei näytä odotettuja arvoja, kokeile vianetsintävaiheen vaiheita.

Vaihe 7: Vianetsintä (viimeisen vaiheen ongelmat)

DEBUG -pääte näyttää odottamattomia arvoja

Tarkista, onko piirissä oikosulkuja, väärin sijoitettuja tai puuttuvia liittimiä, vaurioituneita osia, vääriä vastuksia tai muita näkyviä ongelmia

Tarkista ohjelma loogisten tai syntaksivirheiden varalta - Jos käytit omaa koodiasi viimeisessä vaiheessa, harkitse annetun koodin käyttöä

Saat aina 0, vaikka Boe-Botin eteen ei asetettaisi mitään esineitä

Tarkista, onko lähellä olevia esineitä, jotka heijastavat infrapunasignaalia. Syynä voi olla Boe-Botin edessä oleva pöytä. Siirrä Boe-Bot avoimeen tilaan niin, että IR-LED ja ilmaisin eivät heijastu läheisistä esineistä.

Lukeminen on 1 suurimman osan ajasta, kun Boe-Botin edessä ei ole mitään esinettä, mutta välkkyy välillä 0: een

Lähellä oleva loisteputki voi aiheuttaa häiriöitä; Sammuta kaikki lähellä olevat loisteputket ja toista testit. Jos ongelma jatkuu, vaihe 9 saattaa paljastaa ongelman

Vaihe 8: Toinen IR -pari

Toinen IR -pari
Toinen IR -pari

Nyt kun sinulla on vasemman infrapunaohjelman ohjelma, on sinun vuorosi tehdä piiri ja ohjelmoida oikea IR -pari

  1. Muuta DEBUG -lause, otsikko ja kommentit viittaamaan oikeaan IR -pariin.
  2. Muuta muuttujan nimi irDetectLeft arvoksi irDetectRight. Sinun on tehtävä tämä neljässä ohjelman kohdassa.
  3. Muuta FREQOUT -komennon Pin -argumentti arvosta 8 arvoon 2.
  4. Muuta irDetectRight -muuttujan valvoma tulorekisteri IN9: stä IN0: ksi.
  5. Toista testin vaiheet tässä toiminnossa oikean IR -parin osalta; kun IR -LED -piiri on kytketty P2: een ja ilmaisin on kytketty P0: een.

Vaihe 9: Infrapunahäiriöiden havaitseminen (valinnainen)

Infrapunahäiriöiden havaitseminen (valinnainen)
Infrapunahäiriöiden havaitseminen (valinnainen)

Riippumatta siitä, onko sinulla ongelmia sellaisten signaalien havaitsemisessa, joita ei pitäisi havaita, tai aiotko näyttää infrapunatunnistuksesi vaihtoehtoisessa paikassa, voit testata häiriöitä.

Tämän testausohjelman käsite on melko yksinkertainen, havaitset infrapunasignaalit lähettämättä mitään.

Voit käyttää täsmälleen samaa piiriä, mutta sinun on muutettava koodi. voit kirjoittaa oman koodisi, mutta voit käyttää alla olevaa koodia:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR BIT DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OR IN0 = 0 THEN DEBUG "Häiriö havaittu" PAUSE 100 LOOP

Jos koet häiriöitä, määritä todennäköinen lähde ja sammuta/poista se tai siirrä Boe-Botisi käyttöpaikkaan.

Vaihe 10: Lisää IR -pareja

Lisää IR -paria
Lisää IR -paria

Jos haluat enemmän tarkkuutta Boe-Botin liikkeessä, voit lisätä IR-paria. 3 Parantaa suorituskykyä huomattavasti verrattuna kahteen; voit etsiä keskiparin avulla suoraa estettä ja käyttää kahta sivuttaista infrapunalähdettä määrittääksesi kuinka paljon kääntyä. Kuitenkin 3 IR -parin muotoilun kaatuminen on se, että saatat tietää, kun liu'utat seinää vasten, koska keskimmäistä IR -paria käytetään esteiden havaitsemiseen. Voit ratkaista tämän ongelman lisäämällä IR-parin kummallekin puolelle, jolla on korkea vastusarvo, joten infrapunasignaali havaitaan vain, jos Boe-Bot on lähellä sivua tai seinää hellävaraisessa kulmassa.

Vaihe 11: Viisi IR -paria - piiri

Viisi IR -paria - piiri
Viisi IR -paria - piiri

Ole varovainen, kun suuntaat kahta infrapuna -LEDiä sivulle, koska niiden kiertäminen voi johtaa johtimien koskettamiseen ja aiheuttaa oikosulun.

Vaihe 12: Viisi IR -paria - koodi

Viisi IR -paria - koodi
Viisi IR -paria - koodi

Sinun kannattaa ehkä ohjelmoida Boe-Botisi ennen tämän koodin käyttöä:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw '8. toukokuuta 2019 (versio 7)' Objektien tunnistus ja peruslooginen käsittely sokkelojen ratkaisemiseksi

irDetectLeft VAR Bit 'Muuttuja vasemmalle

irDetectCentre VAR Bit 'Muuttuja keskelle irDetectRight VAR Bit' Muuttuja oikealle irDetectLSide VAR Bit 'Muuttuja vasemmanpuoleiselle irDetectRSide VAR Bit' Muuttuja oikealle puolelle irDetectLSideFar VAR Bit 'Muuttuja vasemmanpuoleiselle pienelle vastukselle

mLoop VAR -sana

Lmoottorin PIN 15 'Vasen moottori on kytketty nastaan 14, pulssit kulkevat täältä

Moottorin PIN 14 'oikea = 15

'nopeudet ovat-> 650-750-850

LFast CON 850 'Conastant vasemmalle moottorille täydellä nopeudella RFast CON 650' Conastant oikealle moottorille täydellä nopeudella

LStop CON 750 'Conastant vasemmalle moottorille täydellä nopeudella

RStop CON 650 'Oikea moottori täydellä nopeudella

LMid CON 830 'Conastant vasemmalle moottorille keskinopeudella

RMid CON 700 'Conastant oikealle moottorille keskinopeudella

LSlow CON 770 'Conastant vasemmalle moottorille pienimmällä nopeudella

RSlow CON 730 'Conastant oikealle moottorille pienimmällä nopeudella

LRev CON 650 'Conastant vasemmalle moottorille täydellä nopeudella taaksepäin

RRev CON 850 'Conastant vasemmalle moottorille täydellä nopeudella taaksepäin

FREQOUT 7, 1, 38500 'vasen puoli

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'keskus

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'oikea puoli

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Vasen Sulje

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'oikea Sulje

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'oikea puoli

irDetectRSideFar = IN0

JOS irDetectLSide = 0 JA irDetectRSide = 0 Silloin pääkäynnistyskomento heiluttaa käsiäsi kahden sivutunnistimen ohi ohjelman käynnistämiseksi

Pää:

TAUKO 1000 TEE

PULSOUT Lmotor, LFast 'vasen moottori käy täydellä nopeudella

PULSOUT Rmotor, RFast 'Oikea moottori käy täydellä nopeudella

FREQOUT 6, 1, 38500 'keskus

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Vasen Sulje

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'oikea puoli

irDetectRSide = IN0

JOS irDetectLSide = 0 JA irDetectRSide = 1 THEN

DO PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'keskus

irDetectCentre = IN5 JOS irDetectCentre = 0 THEN senttiä

FREQOUT 10, 1, 38500 'Vasen Sulje

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'oikea puoli

irDetectRight = IN2

LOOP, kunnes irDetectLSide = 1 TAI irDetectRSide = 0

ELSEIF irDetectLSide = 1 JA irDetectRSide = 0 THEN

DO PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'keskus

irDetectCentre = IN5 JOS irDetectCentre = 0 THEN senttiä

FREQOUT 10, 1, 38500 'Vasen Sulje

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'oikea puoli

irDetectRight = IN2

LOOP, kunnes irDetectLSide = 0 TAI irDetectRSide = 1

'LOPPU JOS

JOS irDetectCentre = 0 THEN 'START

FREQOUT 7, 1, 38500 'vasen puoli irDetectLeft = IN8

FREQOUT 6, 1, 38500 'keskus

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'tauko havaitun signaalin näyttämiseksi

JOS (irDetectLeft = 1 JA irDetectRight = 0) THEN 'arvioi kesto

GOSUB -käännös Vasen

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) THEN

GOSUB -käännösoikeus

ELSEIF (irDetectLeft = 1 JA irDetectRight = 1) THEN

GOSUB -käänne

MUU

GOSUB -käännös

LOPPU JOS

ENDIF 'END

LOOP

LOPPU

käänny vasemmalle:

DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP INO = 1 RETURN

käänny oikealle:

DO PULSOUT -moottori, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP INTIL = 9

PALATA

turnReverse:

FOR mLoop = 0-50 PULSOUT -moottori, RRev PULSOUT -moottori, LRev PAUSE 20 PULSOUT -moottori, LRev PAUSE 20 NEXT DO PULSOUT -moottori, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 1 INDETC, 38500 irDetectRight = IN0 LOOP KUN IN9 = 1

PALATA

turnDecide: 'käyttää pienempää vastusta nähdäkseen lisää

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'oikea puoli

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN 'arvioi kesto

GOSUB -käännös Vasen

ELSEIF (irDetectLSideFar = 0 JA irDetectRSideFar = 1) THEN

GOSUB -käännösoikeus

ELSEIF (irDetectLSideFar = 1 JA irDetectRSideFar = 1) THEN

GOSUB -käännös Vasen

MUU

GOSUB -käännös

LOPPU JOS

PALATA

Suositeltava: