Innholdsfortegnelse:
- Trinn 1: Ressurser
- Trinn 2: Forstå hvordan infrarød deteksjon fungerer (valgfritt)
- Trinn 3: Montering av IR -lysdioder
- Trinn 4: Testing av infrarøde par - krets
- Trinn 5: Testing av infrarøde par - grunnleggende kode
- Trinn 6: Testing av infrarøde par - maskinvare + programvare
- Trinn 7: Feilsøking (for problemer med siste trinn)
- Trinn 8: Andre IR -par
- Trinn 9: Oppdage infrarød interferens (valgfritt)
- Trinn 10: Legge til flere IR -par
- Trinn 11: Fem IR -par - krets
- Trinn 12: Fem IR -par - kode
Video: Boe-Bot med infrarøde detektorer: 12 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Denne instruksen vil demonstrere hvordan du bygger og koder en Boe-Bot som kan navigere i en labyrint ved hjelp av infrarøde detektorer for å unngå hindringer. Dette er en lett å følge veiledning som gir mulighet for enkle modifikasjoner som passer dine behov. Dette krever en grunnleggende forståelse av kretsløp og programmering. Du må ha BASIC Stamp IDE -programvare for dette prosjektet. Gratis å laste ned her. I tillegg til Boe-Bot Robot
Trinn 1: Ressurser
Elektroniske komponenter
Boe -Bot med kontaktkabel Parallax Store - BoeBot Kit
5 Infrarøde LEDs Parallax Store - IR -sendermonteringssett
5 infrarøde skjoldmonteringer
5 infrarøde detektorer Parallax Store - BoeBot IR -mottaker
Motstander
- (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Ω
Assorterte ledninger ABRA Electronics - 22 Gauge Wire
3 lysdioder ABRA Electronics - 5 mm rød LED
Brukerstøtte
Datamaskin
BASIC Stamp Editor - (Freeware)
Verktøy
Wire Cutter ABRA Electronics - Wire Cutter (valgfritt)
Wire Stripper ABRA Electronics - Wire Stripper
Diverse
Vegger (for å bygge labyrint)
Trinn 2: Forstå hvordan infrarød deteksjon fungerer (valgfritt)
Infrarøde frontlykter
Det infrarøde objektdeteksjonssystemet vi skal bygge på Boe-Bot er som en bils frontlykter på flere måter. Når lyset fra bilens frontlykter reflekterer hindringer, oppdager øynene dine hindringene og hjernen din behandler dem og får kroppen til å lede bilen deretter. Boe-Bot vil bruke infrarøde lysdioder for frontlykter. De avgir infrarød, og i noen tilfeller reflekterer infrarødt av objekter og spretter tilbake i retning Boe-Bot. Øynene til Boe-Bot er de infrarøde detektorene. De infrarøde detektorene sender signaler som indikerer om de oppdager infrarød reflektert fra et objekt eller ikke. Hjernen til Boe-Bot, BASIC Stamp, tar beslutninger og driver servomotorer basert på denne sensorinngangen. Figur 7-1 Objektdeteksjon med IR-lykter IR-detektorene har innebygde optiske filtre som tillater svært lite lys bortsett fra 980 nm infrarød som vi ønsker å oppdage med sin interne fotodiodesensor. Den infrarøde detektoren har også et elektronisk filter som bare lar signaler rundt 38,5 kHz passere. Med andre ord, detektoren leter bare etter infrarødt lys som blinker 38 ganger, 500 ganger i sekundet. Dette forhindrer IR -forstyrrelser fra vanlige kilder som sollys og innendørs belysning. Sollys er likestrøm (0 Hz), og innendørs belysning har en tendens til å blinke av og på enten 100 eller 120 Hz, avhengig av hovedstrømkilden i regionen. Siden 120 Hz er utenfor det elektroniske filterets 38,5 kHz båndpassfrekvens, ignoreres det fullstendig av IR -detektorene.
-Paralax studentguide
Trinn 3: Montering av IR -lysdioder
Sett IR -lysdioden inn i den større delen av foringsrøret
Omslutt den klare delen av LED -en med den mindre delen av foringsrøret
Trinn 4: Testing av infrarøde par - krets
Før vi går for dypt inn i noe, vil vi teste for å sikre at IR -paret fungerer (En infrarød LED og en infrarød detektor).
Start med å bygge kretsen ovenfor på brødbrettet montert på toppen av Boe-Bot
Trinn 5: Testing av infrarøde par - grunnleggende kode
Selvfølgelig må vi skrive kode for at IR -parene våre skal fungere
For å gjøre dette, bruker vil kommandoen FREQOUT. Denne kommandoen ble designet for lydtoner, men den kan brukes til å produsere frekvenser i det infrarøde området. For denne testen bruker vi kommandoen:
FREQOUT 8, 1, 38500
dette sender en 38,5 kHz frekvens som varer 1 ms til P8. Den infrarøde LED -kretsen som er koblet til P8, sender denne frekvensen. Hvis det infrarøde lyset reflekteres tilbake til Boe-Bot av et objekt i veien, sender den infrarøde detektoren et BASIC-stempel et signal for å fortelle at det reflekterte infrarøde lyset ble oppdaget.
Nøkkelen til å få et IR -par til å fungere er å sende 1 ms 38,5 kHz FREQOUT og umiddelbart lagre IR -detektorens utgang i en variabel.
Dette eksemplet viser lagring av IR -detektorverdien i en bitvariabel som heter irDectectLeft
FREQOUT 8, 1, 38500
irDetectLeft = IN9
IR -detektorens utgangstilstand når den ikke ser at noe IR -signal er høyt. Når IR -detektoren ser harmonien på 38500 Hz reflektert av et objekt, er effekten lav. IR -detektorens utgang forblir bare lav i en brøkdel av et millisekund etter at FREQOUT -kommandoen er ferdig med å sende harmonikken, så det er viktig å lagre IR -detektorens utgang i en variabel umiddelbart etter at du har sendt FREQOUT -kommandoen. Verdien lagret av variabelen kan deretter vises i Debug Terminal eller brukes til navigasjonsbeslutninger av Boe-Bot.
Trinn 6: Testing av infrarøde par - maskinvare + programvare
Nå som du kjenner det grunnleggende, kan vi sette sammen maskinvare og programvare for å teste et par sammen og få tilbakemelding i sanntid fra det IR-paret oppdager
Du kan prøve å lage koden selv, eller bruke koden nedenfor
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft =", BIN1 irDetectLeft PAUSE 100 LOOP
- La Boe-Bot være tilkoblet seriekabelen, fordi du bruker DEBUG-terminalen til å teste IR-paret ditt.
- Plasser et objekt, for eksempel hånden eller et ark, omtrent en tomme fra det venstre IR -paret
- Kontroller at når du plasserer et objekt foran IR -paret, viser Debug Terminal en 0, og når du fjerner objektet foran IR -paret, viser det en 1.
- Hvis feilsøkingsterminalen ikke viser de forventede verdiene, kan du prøve trinnene i feilsøkingstrinnet.
Trinn 7: Feilsøking (for problemer med siste trinn)
DEBUG Terminal viser uventede verdier
Kontroller kretsen for kortslutninger, feilplasserte eller manglende kontakter, skadede komponenter, feil motstander eller andre synlige problemer
Sjekk programmet for logiske eller syntaksfeil - Hvis du brukte din egen kode for det siste trinnet, bør du vurdere å bruke den angitte koden
Får alltid 0, selv om det ikke er noen objekter plassert foran Boe-Bot
Sjekk om det er objekter i nærheten som reflekterer det infrarøde signalet. Bordet foran Boe-Bot kan være årsaken. Flytt Boe-Bot til et åpent rom, slik at IR-lysdioden og detektoren ikke kan reflektere gjenstander i nærheten.
Lesing er 1 mesteparten av tiden når det ikke er noe objekt foran Boe-Bot, men blinker til 0 av og til
Det kan være interferens fra et fluorescerende lys i nærheten; Slå av lysrør i nærheten og gjenta testene. Hvis problemet vedvarer, kan trinn 9 avsløre problemet
Trinn 8: Andre IR -par
Nå som du har programmet for venstre IR, er det din tur til å lage kretsen og programmere det riktige IR -paret
- Endre DEBUG -setningen, tittelen og kommentarene for å referere til det riktige IR -paret.
- Endre variabelnavnet fra irDetectLeft til irDetectRight. Du må gjøre dette på fire steder i programmet.
- Endre FREQOUT -kommandoens Pin -argument fra 8 til 2.
- Endre inngangsregisteret som overvåkes av variabelen irDetectRight fra IN9 til IN0.
- Gjenta testtrinnene i denne aktiviteten for det riktige IR -paret; med IR LED -kretsen koblet til P2 og detektoren koblet til P0.
Trinn 9: Oppdage infrarød interferens (valgfritt)
Enten du opplever problemer med å oppdage signaler som ikke bør oppdages, eller du planlegger å demonstrere IR -deteksjonen din på et annet sted, kan det være lurt å teste for interferens.
Konseptet med dette testprogrammet er ganske enkelt, du oppdager for infrarøde signaler uten å sende noen ut.
Du kan bruke nøyaktig samme krets, men du må endre koden. du kan velge å skrive din egen kode, men du kan bruke koden nedenfor:
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 ELLER IN0 = 0 DERE DEBUG "Interference detect" PAUSE 100 LOOP
Hvis du opplever forstyrrelser, må du finne den sannsynlige kilden og slå den av/fjerne den eller flytte fra stedet der du bruker Boe-Bot.
Trinn 10: Legge til flere IR -par
Hvis du ønsker mer nøyaktighet i bevegelsen til Boe-Bot, kan det være lurt å legge til flere IR-par. 3 Forbedrer ytelsen sterkt sammenlignet med to; du kan bruke et senterpar til å søke etter et direkte hinder, og bruke to side -IR for å bestemme hvor mye du skal snu. Imidlertid er undergangen til 3 IR -pardesignet at du kanskje vet når du glir mot en vegg, fordi IR -senteret i midten brukes til å oppdage hindringer. For å løse dette problemet kan du legge til et IR-par på hver side med en høy motstandsverdi-derfor vil infrarødt signal bare oppdages hvis Boe-Bot er nær siden eller en vegg i en svak vinkel.
Trinn 11: Fem IR -par - krets
Vær forsiktig når du retter de to IR -lysdiodene på siden, da vridning av dem kan føre til at ledningene berøres og forårsake kortslutning.
Trinn 12: Fem IR -par - kode
Det kan være lurt å prøve å programmere Boe-Bot før du bruker denne koden:
'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw '8. mai 2019 (versjon 7)' Deteksjon for objekter og grunnleggende logisk behandling for å løse labyrinter
irDetectLeft VAR Bit 'Variabel for venstre
irDetectCentre VAR Bit 'Variable for center irDetectRight VAR Bit' Variable for right irDetectLSide VAR Bit 'Variable for left side irDetectRSide VAR Bit' Variable for right side irDetectLSideFar VAR Bit 'Variable for left side low resistance irDetectRSideFar VAR Bit' Variable for right side
mLoop VAR Word
Lmotor PIN 15 'Venstre motor er koblet til pin 14, pulser går gjennom her
Rmotor PIN 14 'høyre = 15
'hastigheter er-> 650-750-850
LFast CON 850 'Conastant for venstre motor ved full hastighet RFast CON 650' Conastant for høyre motor ved full hastighet
LStop CON 750 'Conastant for venstre motor i full hastighet
RStop CON 650 'Conastant for høyre motor ved full hastighet
LMid CON 830 'Conastant for venstre motor ved middels hastighet
RMid CON 700 'Conastant for høyre motor ved middels hastighet
LSlow CON 770 'Conastant for venstre motor ved minimumshastighet
RSlow CON 730 'Conastant for høyre motor ved minimumshastighet
LRev CON 650 'Conastant for venstre motor ved full hastighet i revers
RRev CON 850 'Konastant for venstre motor ved full hastighet i revers
FREQOUT 7, 1, 38500 'venstre side
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'senter
irDetectCentre = IN5
FREQOUT 3, 1, 38500 'høyre side
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Venstre Lukk
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'høyre Lukk
irDetectRSide = IN0
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'høyre side
irDetectRSideFar = IN0
HVIS irDetectLSide = 0 OG irDetectRSide = 0 DERE veier hovedstartkommandoen med hendene forbi de to sidedetektorene for å starte programmet
Hoved:
PAUSE 1000 DO
PULSOUT Lmotor, LFast 'venstre motor går på full hastighet
PULSOUT Rmotor, RFast 'Høyre motor går på full hastighet
FREQOUT 6, 1, 38500 'senter
irDetectCentre = IN5
FREQOUT 10, 1, 38500 'Venstre Lukk
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'høyre side
irDetectRSide = IN0
IF irDetectLSide = 0 OG irDetectRSide = 1 DA
GJØR PULSOUT Lmotor, LFast
FREQOUT 6, 1, 38500 'senter
irDetectCentre = IN5 IF irDetectCentre = 0 DA SENT
FREQOUT 10, 1, 38500 'Venstre Lukk
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'høyre side
irDetectRight = IN2
LOOP TIL irDetectLSide = 1 ELLER irDetectRSide = 0
ELSEIF irDetectLSide = 1 OG irDetectRSide = 0 DA
DO PULSOUT Rmotor, RFast
FREQOUT 6, 1, 38500 'senter
irDetectCentre = IN5 IF irDetectCentre = 0 DA SENT
FREQOUT 10, 1, 38500 'Venstre Lukk
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'høyre side
irDetectRight = IN2
LOOP TIL irDetectLSide = 0 ELLER irDetectRSide = 1
'SLUTT OM
IF irDetectCentre = 0 SÅ STARTER DU
FREQOUT 7, 1, 38500 'venstre side irDetectLeft = IN8
FREQOUT 6, 1, 38500 'senter
irDetectCentre = IN5
FREQOUT 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'pause for å vise signal oppdaget
IF (irDetectLeft = 1 AND irDetectRight = 0) Vurder deretter varigheten
GOSUB turnLeft
ELSEIF (irDetectLeft = 0 OG irDetectRight = 1) DA
GOSUB turnRight
ELSEIF (irDetectLeft = 1 OG irDetectRight = 1) DA
GOSUB turnDecide
ELLERS
GOSUB turnReverse
SLUTT OM
SLUTT SLUTT
LØKKE
SLUTT
ta til venstre:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP INTIL IN0 = 1 RETURN
ta til høyre:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP INTIL IN9 = 1
KOMME TILBAKE
turnReverse:
FOR mLoop = 0 TIL 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, FREQOUT 5, 1, 38500 irDetectRight = IN0 LOOP TIL IN9 = 1
KOMME TILBAKE
turnDecide: 'bruker lavere motstand for å se videre
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'høyre side
irDetectRSideFar = IN0
IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) Vurder deretter varigheten
GOSUB turnLeft
ELSEIF (irDetectLSideFar = 0 OG irDetectRSideFar = 1) DA
GOSUB turnRight
ELSEIF (irDetectLSideFar = 1 OG irDetectRSideFar = 1) DA
GOSUB turnLeft
ELLERS
GOSUB turnReverse
SLUTT OM
KOMME TILBAKE
Anbefalt:
Ta flotte bilder med en iPhone: 9 trinn (med bilder)
Ta flotte bilder med en iPhone: De fleste av oss har med oss en smarttelefon overalt i disse dager, så det er viktig å vite hvordan du bruker smarttelefonkameraet ditt til å ta flotte bilder! Jeg har bare hatt en smarttelefon i et par år, og jeg har elsket å ha et greit kamera for å dokumentere ting jeg
Slik gjør du det: Installere Raspberry PI 4 Headless (VNC) med Rpi-imager og bilder: 7 trinn (med bilder)
Howto: Installere Raspberry PI 4 Headless (VNC) Med Rpi-imager og bilder: Jeg planlegger å bruke denne Rapsberry PI i en haug med morsomme prosjekter tilbake i bloggen min. Sjekk det gjerne ut. Jeg ønsket å begynne å bruke Raspberry PI igjen, men jeg hadde ikke tastatur eller mus på min nye plassering. Det var en stund siden jeg konfigurerte en bringebær
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
Vi introduserer 'Deodorino' - den infrarøde kontrollerte Arduinoen i en tom deodorantpinne. Klikk på 1. foto: 7 trinn
Vi introduserer 'Deodorino' - den infrarøde kontrollerte Arduinoen i en tom deodorantpinne. Klikk på første foto: nå ned til detaljer
PCB -design med enkle og enkle trinn: 30 trinn (med bilder)
PCB -design med enkle og enkle trinn: HELLO VENNER Den veldig nyttige og enkle opplæringen for de som ønsker å lære PCB -design, kan komme i gang