Sisällysluettelo:
- Vaihe 1: Resurssit
- Vaihe 2: Infrapunatunnistuksen toiminta (valinnainen)
- Vaihe 3: IR -LEDien kokoaminen
- Vaihe 4: Infrapunaparien testaus - piiri
- Vaihe 5: Infrapunaparien testaus - peruskoodi
- Vaihe 6: Infrapunaparien testaus - laitteisto + ohjelmisto
- Vaihe 7: Vianetsintä (viimeisen vaiheen ongelmat)
- Vaihe 8: Toinen IR -pari
- Vaihe 9: Infrapunahäiriöiden havaitseminen (valinnainen)
- Vaihe 10: Lisää IR -pareja
- Vaihe 11: Viisi IR -paria - piiri
- Vaihe 12: Viisi IR -paria - koodi
Video: Boe-Bot infrapunatunnistimilla: 12 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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)
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
Aseta IR -LED kotelon suurempaan osaan
Liitä LEDin kirkas osa kotelon pienempään osaan
Vaihe 4: 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
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
- Jätä Boe-Bot kytketty sarjakaapeliin, koska käytät DEBUG-päätelaitetta IR-parin testaamiseen.
- Aseta esine, kuten käsi tai paperiarkki, noin tuuman etäisyydelle vasemmasta IR -parista
- 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.
- 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
Nyt kun sinulla on vasemman infrapunaohjelman ohjelma, on sinun vuorosi tehdä piiri ja ohjelmoida oikea IR -pari
- Muuta DEBUG -lause, otsikko ja kommentit viittaamaan oikeaan IR -pariin.
- Muuta muuttujan nimi irDetectLeft arvoksi irDetectRight. Sinun on tehtävä tämä neljässä ohjelman kohdassa.
- Muuta FREQOUT -komennon Pin -argumentti arvosta 8 arvoon 2.
- Muuta irDetectRight -muuttujan valvoma tulorekisteri IN9: stä IN0: ksi.
- 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)
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
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
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
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:
DIY 37 Leds Arduino -rulettipeli: 3 vaihetta (kuvilla)
DIY 37 Leds Arduino Roulette Peli: Ruletti on kasinopeli, joka on nimetty ranskalaisen sanan mukaan, joka tarkoittaa pientä pyörää
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: 20 vaihetta (kuvilla)
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: Hei, ystävä! Tässä kaksiosaisessa sarjassa opimme käyttämään Tinkercadin piirejä - hauskaa, tehokasta ja opettavaista työkalua piirien toiminnasta! Yksi parhaista tavoista oppia on tehdä. Joten suunnittelemme ensin oman projektimme: th
Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)
Weasleyn sijaintikello neljällä kädellä: Joten Raspberry Pi: n kanssa, joka oli pyörinyt jonkin aikaa, halusin löytää mukavan projektin, jonka avulla voisin hyödyntää sitä parhaalla mahdollisella tavalla. Löysin ppeters0502 tämän upean Instructable Build Your Own Weasley Location Clockin ja ajattelin, että
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
Parallax BOE-Botin tekeminen perusleimaleiman avulla: 7 vaihetta
Parallax BOE-Botin tekeminen perusleimasirun avulla: Tämä ohje näyttää Parallax BOE-Bot Basic -leimarobotin rakenteen ja muokkaamisen