Innehållsförteckning:
- Steg 1: Resurser
- Steg 2: Förstå hur infraröd detektion fungerar (valfritt)
- Steg 3: Montering av IR -lysdioder
- Steg 4: Testa infraröda par - krets
- Steg 5: Testa infraröda par - Grundkod
- Steg 6: Testa infraröda par - hårdvara + programvara
- Steg 7: Felsökning (för problem med sista steget)
- Steg 8: Andra IR -paret
- Steg 9: Upptäcka infraröd störning (tillval)
- Steg 10: Lägga till fler IR -par
- Steg 11: Fem IR -par - krets
- Steg 12: Fem IR -par - kod
Video: Boe-Bot med infraröda detektorer: 12 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Denna instruerbara kommer att demonstrera hur man bygger och kodar en Boe-Bot som kan navigera i en labyrint med hjälp av infraröda detektorer för att undvika hinder. Detta är en lätt att följa guide som möjliggör enkla ändringar som passar dina behov. Detta kräver en grundläggande förståelse för kretsar och programmering. Du måste ha BASIC Stamp IDE -programvara för detta projekt. Gratis att ladda ner här. Samt Boe-Bot Robot
Steg 1: Resurser
Elektroniska komponenter
Boe -Bot med anslutningskabel Parallax Store - BoeBot Kit
5 Infraröda LED: s Parallax Store - monteringssats för IR -sändare
5 Infraröda sköldenheter
5 infraröda detektorer Parallax Store - BoeBot IR -mottagare
Motstånd
- (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Ω
Diverse ledningar ABRA Electronics - 22 gauge Wire
3 lysdioder ABRA Electronics - 5 mm röd LED
Stöd
Dator
BASIC Stamp Editor - (freeware)
Verktyg
Wire Cutter ABRA Electronics - Wire Cutter (tillval)
Wire Stripper ABRA Electronics - Wire Stripper
Övrigt
Väggar (för att bygga labyrint)
Steg 2: Förstå hur infraröd detektion fungerar (valfritt)
Infraröda strålkastare
Det infraröda objektdetekteringssystemet vi kommer att bygga på Boe-Bot är som en bils strålkastare i flera avseenden. När ljuset från en bils strålkastare reflekterar från hinder, upptäcker dina ögon hindren och din hjärna bearbetar dem och får din kropp att styra bilen i enlighet därmed. Boe-Bot kommer att använda infraröda lysdioder för strålkastare. De avger infrarött, och i vissa fall reflekterar det infraröda objektet och studsar tillbaka i riktning mot Boe-Bot. Boe-Bots ögon är de infraröda detektorerna. De infraröda detektorerna sänder signaler som indikerar om de detekterar infrarött reflekterat från ett objekt eller inte. Boe-Bots hjärna, BASIC Stamp, fattar beslut och driver servomotorer baserat på denna sensoringång. Figur 7-1 Objektdetektering med IR-strålkastare IR-detektorerna har inbyggda optiska filter som tillåter mycket lite ljus utom 980 nm infrarött som vi vill detektera med sin interna fotodiodsensor. Den infraröda detektorn har också ett elektroniskt filter som bara tillåter signaler runt 38,5 kHz att passera. Med andra ord, detektorn letar bara efter infrarött som blinkar på och av 38, 500 gånger per sekund. Detta förhindrar IR -störningar från vanliga källor som solljus och inomhusbelysning. Solljus är DC -störning (0 Hz), och inomhusbelysning tenderar att blinka på och av antingen 100 eller 120 Hz, beroende på huvudströmkällan i regionen. Eftersom 120 Hz ligger utanför det elektroniska filtret 38,5 kHz bandpassfrekvens ignoreras det helt av IR -detektorerna.
-Paralax Studentguide
Steg 3: Montering av IR -lysdioder
Sätt i IR -lysdioden i den större delen av höljet
Omslut den tydliga delen av lysdioden med den mindre delen av höljet
Steg 4: Testa infraröda par - krets
Innan vi går för djupt in i någonting kommer vi att testa för att se till att IR -paret fungerar (En infraröd LED och en infraröd detektor).
Börja med att bygga ovanstående krets på panelen monterad ovanpå din Boe-Bot
Steg 5: Testa infraröda par - Grundkod
Naturligtvis måste vi skriva kod för att våra IR -par ska fungera
För att göra detta kommer kommandot FREQOUT att användas. Detta kommando är utformat för ljudtoner, men det kan användas för att producera frekvenser inom det infraröda området. För detta test använder vi kommandot:
FREQOUT 8, 1, 38500
detta kommer att skicka en 38,5 kHz frekvens som varar 1 ms till P8. Den infraröda LED -kretsen som är ansluten till P8 kommer att sända denna frekvens. Om det infraröda ljuset reflekteras tillbaka till Boe-Bot av ett föremål i dess väg, skickar den infraröda detektorn en BASIC-stämpel en signal för att meddela att det reflekterade infraröda ljuset har detekterats.
Nyckeln till att få ett IR -par att fungera är att skicka 1 ms 38,5 kHz FREQOUT och omedelbart lagra IR -detektorns utgång i en variabel.
Detta exempel visar lagring av IR -detektorvärdet i en bitvariabel som heter irDectectLeft
FREQOUT 8, 1, 38500
irDetectLeft = IN9
IR -detektorns utgångsläge när den inte ser någon IR -signal är hög. När IR -detektorn ser harmoniken 38500 Hz reflekterad av ett objekt, är dess utgång låg. IR -detektorns utgång förblir bara låg i en bråkdel av en millisekund efter att FREQOUT -kommandot har skickats med harmoniken, så det är viktigt att lagra IR -detektorns utgång i en variabel omedelbart efter att FREQOUT -kommandot skickats. Värdet som lagras av variabeln kan sedan visas i Debug Terminal eller användas för navigationsbeslut av Boe-Bot.
Steg 6: Testa infraröda par - hårdvara + programvara
Nu när du känner till grunderna kan vi sätta ihop hårdvaran och programvaran för att testa ett par tillsammans och få feedback i realtid från vad IR-paret upptäcker
Du kan försöka skapa koden själv eller använda koden nedan
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft =", BIN1 irDetectLeft PAUSE 100 LOOP
- Lämna Boe-Bot ansluten till seriekabeln, eftersom du kommer att använda DEBUG-terminalen för att testa ditt IR-par.
- Placera ett föremål, till exempel din hand eller ett pappersark, ungefär en tum från det vänstra IR -paret
- Kontrollera att när du placerar ett objekt framför IR -paret visar felsökningsterminalen en 0, och när du tar bort objektet från IR -paret visar det ett 1.
- Om felsökningsterminalen inte visar de förväntade värdena, prova stegen i felsökningssteget.
Steg 7: Felsökning (för problem med sista steget)
DEBUG Terminal som visar oväntade värden
Kontrollera kretsen för kortslutningar, felplacerade eller saknade kontakter, skadade komponenter, felaktiga motstånd eller andra synliga problem
Kontrollera programmet från logiska eller syntaxfel - Om du använde din egen kod för det sista steget, överväg att använda den angivna koden
Får alltid 0, även om det inte finns några föremål placeras framför Boe-Bot
Kontrollera om det finns några objekt i närheten som reflekterar den infraröda signalen. Bordet framför Boe-Bot kan vara orsaken. Flytta Boe-Bot till öppet utrymme så att IR-lysdioden och detektorn inte kan reflektera från föremål i närheten.
Läsning är 1 mestadels när det inte finns något föremål framför Boe-Bot, men flimrar till 0 ibland
Det kan finnas störningar från ett fluorescerande ljus i närheten; Släck alla lysrör i närheten och upprepa dina tester. Om problemet kvarstår kan steg 9 avslöja problemet
Steg 8: Andra IR -paret
Nu när du har programmet för vänster IR är det din tur att göra kretsen och programmera rätt IR -par
- Ändra DEBUG -satsen, rubriken och kommentarerna för att hänvisa till rätt IR -par.
- Ändra variabelnamnet från irDetectLeft till irDetectRight. Du måste göra detta på fyra platser i programmet.
- Ändra FREQOUT -kommandoets Pin -argument från 8 till 2.
- Ändra ingångsregistret som övervakas av variabeln irDetectRight från IN9 till IN0.
- Upprepa teststegen i denna aktivitet för rätt IR -par; med IR -LED -kretsen ansluten till P2 och detektorn ansluten till P0.
Steg 9: Upptäcka infraröd störning (tillval)
Oavsett om du upplever problem med att upptäcka signaler som inte bör upptäckas eller om du planerar att demonstrera din IR -detektion på en annan plats, kanske du vill testa störningar.
Konceptet med detta testprogram är ganska enkelt, du upptäcker för infraröda signaler utan att skicka ut några.
Du kan använda exakt samma krets men du måste ändra koden. du kan välja att skriva din egen kod, men du kan använda koden nedan:
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 OM IN9 = 0 ELLER IN0 = 0 Därefter DEBUG "Störning upptäckt" PAUSE 100 LOOP
Om du upplever störningar, bestäm den troliga källan och stäng av den/ta bort den eller flytta dit du använder din Boe-Bot.
Steg 10: Lägga till fler IR -par
Om du önskar mer noggrannhet i rörelsen av din Boe-Bot, kanske du vill lägga till fler IR-par. 3 Bättre prestanda jämfört med två; du kan använda ett mittpar för att söka efter ett direkt hinder och använda två sidor för att bestämma hur mycket du ska vända. Men undergången för 3 IR -parets design är att du kanske vet när du glider mot en vägg, eftersom mitt -IR -paret används för att upptäcka hinder. För att lösa detta problem kan du lägga till ett IR-par på varje sida med ett högt motståndsvärde-därför kommer infraröd signal bara att detekteras om Boe-Bot är nära sidan eller en vägg i en svag vinkel.
Steg 11: Fem IR -par - krets
Var försiktig när du riktar de två IR -lysdioderna på sidan eftersom vridning av dem kan orsaka att ledarna berörs och orsaka kortslutning.
Steg 12: Fem IR -par - kod
Du kanske vill prova att programmera din Boe-Bot innan du använder den här koden:
'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw '8 maj 2019 (version 7)' Detektion för objekt och grundläggande logisk bearbetning för att lösa labyrinter
irDetectLeft VAR Bit 'Variabel för vänster
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 'Vänster motor är ansluten till pin 14, pulser går igenom här
Rmotor PIN 14 'höger = 15
'hastigheter är-> 650-750-850
LFast CON 850 'Conastant för vänster motor vid full hastighet RFast CON 650' Conastant för höger motor vid full hastighet
LStop CON 750 'Conastant för vänster motor vid full hastighet
RStop CON 650 'Conastant för höger motor vid full hastighet
LMid CON 830 'Conastant för vänster motor vid medelhastighet
RMid CON 700 'Conastant för höger motor vid medelhastighet
LSlow CON 770 'Conastant för vänster motor vid minsta varvtal
RSlow CON 730 'Conastant för höger motor vid minsta varvtal
LRev CON 650 'Conastant för vänster motor vid full hastighet i back
RRev CON 850 'Konastant för vänster motor vid full hastighet i back
FREQOUT 7, 1, 38500 'vänster sida
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centrum
irDetectCentre = IN5
FREQOUT 3, 1, 38500 'höger sida
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Vänster Stäng
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'höger Stäng
irDetectRSide = IN0
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'höger sida
irDetectRSideFar = IN0
OM irDetectLSide = 0 OCH irDetectRSide = 0 DÅ viftar huvudstartkommandot med händerna förbi de två sidodetektorerna för att starta programmet
Huvud:
PAUSE 1000 DO
PULSOUT Lmotor, LFast vänster motor går på full hastighet
PULSOUT Rmotor, RFast 'Höger motor går på full hastighet
FREQOUT 6, 1, 38500 'centrum
irDetectCentre = IN5
FREQOUT 10, 1, 38500 'Vänster Stäng
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'höger sida
irDetectRSide = IN0
OM irDetectLSide = 0 OCH irDetectRSide = 1 DÅ
GÖR PULSOUT Lmotor, LFast
FREQOUT 6, 1, 38500 'centrum
irDetectCentre = IN5 IF irDetectCentre = 0 DÅ cent
FREQOUT 10, 1, 38500 'Vänster Stäng
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'höger sida
irDetectRight = IN2
LOOP TILL irDetectLSide = 1 ELLER irDetectRSide = 0
ELSEIF irDetectLSide = 1 OCH irDetectRSide = 0 DÅ
DO PULSOUT Rmotor, RFast
FREQOUT 6, 1, 38500 'centrum
irDetectCentre = IN5 IF irDetectCentre = 0 DÅ cent
FREQOUT 10, 1, 38500 'Vänster Stäng
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'höger sida
irDetectRight = IN2
LOOP TILL irDetectLSide = 0 ELLER irDetectRSide = 1
'ENDIF
OM irDetectCentre = 0 Därefter 'START
FREQOUT 7, 1, 38500 'vänster sida irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centrum
irDetectCentre = IN5
FREQOUT 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'paus för att visa signal upptäckt
IF (irDetectLeft = 1 AND irDetectRight = 0) utvärdera sedan varaktigheten
GOSUB turnVänster
ELSEIF (irDetectLeft = 0 OCH irDetectRight = 1) DÅ
GOSUB sväng höger
ELSEIF (irDetectLeft = 1 OCH irDetectRight = 1) DÅ
GOSUB turnDecide
ANNAN
GOSUB turnReverse
ENDIF
ENDIFS SLUT
SLINGA
SLUTET
sväng vänster:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP TILL IN0 = 1 RETURN
sväng höger:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP TILL IN9 = 1
LÄMNA TILLBAKA
turnReverse:
FÖR mloop = 0 TILL 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NÄSTA PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, FREQOUT 5, 1, 38500 irDetectRight = IN0 LOOP TILL IN9 = 1
LÄMNA TILLBAKA
turnDecide: 'använder lägre motstånd för att se vidare
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'höger sida
irDetectRSideFar = IN0
IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) Därefter utvärdera varaktighet
GOSUB turnVänster
ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) DÅ
GOSUB sväng höger
ELSEIF (irDetectLSideFar = 1 OCH irDetectRSideFar = 1) DÅ
GOSUB turnVänster
ANNAN
GOSUB turnReverse
ENDIF
LÄMNA TILLBAKA
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
Vi presenterar 'Deodorino' - den infraröda kontrollerade Arduino i en tom deodorantpinne. Klicka på första fotot: 7 steg
Vi presenterar 'Deodorino' - den infraröda kontrollerade Arduino i en tom deodorantpinne. Klicka på 1: a Foto: Nu i detalj
Ciclop 3d Scanner My Way Steg för steg: 16 steg (med bilder)
Ciclop 3d Scanner My Way Steg för steg: Hej alla, jag ska inse den berömda Ciclop 3D -scannern.Alla steg som förklaras väl på det ursprungliga projektet är inte närvarande.Jag gjorde några korrigeringar för att förenkla processen, först Jag skriver ut basen, och än så återställer jag kretskortet, men fortsätter