INHOUDSOPGAWE:

Boe-Bot met infrarooi detektore: 12 stappe (met foto's)
Boe-Bot met infrarooi detektore: 12 stappe (met foto's)

Video: Boe-Bot met infrarooi detektore: 12 stappe (met foto's)

Video: Boe-Bot met infrarooi detektore: 12 stappe (met foto's)
Video: [Zoals de Titanic? ] 🇯🇵Japan Ferry Kurenai (Beppu → Osaka) 12-uur durende slaapferry Sunflower 2024, November
Anonim
Boe-Bot met infrarooi detektore
Boe-Bot met infrarooi detektore

Hierdie instruksie sal demonstreer hoe u 'n Boe-Bot kan bou en kodeer wat deur 'n doolhof kan navigeer met infrarooi detektore om hindernisse te vermy. Dit is 'n maklik om te volg gids wat dit moontlik maak om maklik aan te pas by u behoeftes. Dit vereis 'n basiese kennis van stroombane en programmering. U moet BASIC Stamp IDE sagteware vir hierdie projek hê. Gratis om hier af te laai. Sowel as die Boe-Bot-robot

Stap 1: Hulpbronne

Elektroniese komponente

Boe -Bot met aansluitkabel Parallax Store - BoeBot Kit

5 Infrarooi LED's Parallax Store - IR -sender monteerpakket

5 Infrarooi skildamestellings

5 infrarooi detektors Parallax -winkel - BoeBot IR -ontvanger

Weerstande

  • (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Ω

Geassorteerde bedrading ABRA Electronics - 22 gauge draad

3 LED's ABRA Electronics - 5mm rooi LED

Ondersteuning

Rekenaar

BASIC Stamp Editor - (Freeware)

Gereedskap

Wire Cutter ABRA Electronics - Wire Cutter (opsioneel)

Wire Stripper ABRA Electronics - Wire Stripper

Diverse

Mure (om doolhof te bou)

Stap 2: Begrip van hoe infrarooi opsporing werk (opsioneel)

Verstaan hoe infrarooi opsporing werk (opsioneel)
Verstaan hoe infrarooi opsporing werk (opsioneel)

Infrarooi kopligte

Die infrarooi voorwerpopsporingstelsel wat ons op die Boe-Bot gaan bou, is in verskeie opsigte soos 'n motor se kopligte. As die lig van 'n motor se kopligte van hindernisse af weerkaats, bespeur u oë die struikelblokke en verwerk u brein dit en laat u liggaam die motor daarvolgens lei. Die Boe-Bot gebruik infrarooi LED's vir kopligte. Hulle straal infrarooi uit, en in sommige gevalle weerkaats die infrarooi van voorwerpe en spring terug in die rigting van die Boe-Bot. Die oë van die Boe-Bot is die infrarooi detektors. Die infrarooi detektors stuur seine wat aandui of hulle infrarooi van 'n voorwerp weerspieël al dan nie. Die brein van die Boe-Bot, die BASIC Stamp, neem besluite en bestuur die servomotors op grond van hierdie sensorinvoer. Figuur 7-1 Objekopsporing met IR-kopligte Die IR-detektore het ingeboude optiese filters wat baie min lig toelaat, behalwe die 980 nm infrarooi wat ons met sy interne fotodiodesensor wil opspoor. Die infrarooi detektor het ook 'n elektroniese filter wat slegs seine van ongeveer 38,5 kHz laat deurgaan. Met ander woorde, die detektor soek slegs infrarooi wat 38,500 keer per sekonde aan en af flits. Dit voorkom IR -inmenging van algemene bronne soos sonlig en binnenshuise beligting. Sonlig is GS -inmenging (0 Hz), en binnenshuise beligting is geneig om aan of af te flits teen 100 of 120 Hz, afhangende van die hoofbron in die streek. Aangesien 120 Hz buite die 38,5 kHz bandpasfrekwensie van die elektroniese filter is, word die IR -detektore dit heeltemal geïgnoreer.

-Paralax -studiegids

Stap 3: Monteer IR LED's

Monteer IR LED's
Monteer IR LED's

Plaas die IR -LED in die groter deel van die omhulsel

Omhul die duidelike deel van die LED met die kleiner deel van die omhulsel

Stap 4: Toets infrarooi pare - stroombaan

Toets infrarooi pare - stroombaan
Toets infrarooi pare - stroombaan
Toets infrarooi pare - stroombaan
Toets infrarooi pare - stroombaan

Voordat ons te diep in iets ingaan, sal ons toets of die IR -paar werk (een infrarooi LED en een infrarooi detektor).

Begin deur die bogenoemde stroombaan op die broodbord bo-op u Boe-Bot te bou

Stap 5: Toets infrarooi pare - basiese kode

Natuurlik moet ons kode skryf vir ons IR -pare om te werk

Om dit te doen, sal die FREQOUT -opdrag gebruik word. Hierdie opdrag is ontwerp vir klanktone, maar dit kan gebruik word om frekwensies in die infrarooi reeks te produseer. Vir hierdie toets gebruik ons die opdrag:

FREQOUT 8, 1, 38500

dit stuur 'n frekwensie van 38,5 kHz wat 1 ms duur na P8. Die infrarooi LED -stroombaan wat aan P8 gekoppel is, sal hierdie frekwensie uitsaai. As die infrarooi lig deur 'n voorwerp in die pad teruggekeer word na die Boe-Bot, sal die infrarooi detektor 'n sein aan die BASIC Stamp stuur om te laat weet dat die weerkaatste infrarooi lig opgespoor is.

Die sleutel om 'n IR -paar te laat werk, is om 1 ms van 38,5 kHz FREQOUT te stuur en die uitset van die IR -detektor onmiddellik in 'n veranderlike te stoor.

Hierdie voorbeeld toon hoe die waarde van die IR -detektor gestoor word in 'n bietjie veranderlike met die naam irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Die uitsetstoestand van die IR -detektor as daar geen IR -sein is nie, is hoog. As die IR -detektor die harmoniese 38500 Hz deur 'n voorwerp weerspieël sien, is die uitset daarvan laag. Die uitset van die IR -detektor bly slegs 'n breukdeel van 'n millisekonde laag nadat die FREQOUT -opdrag klaar is met die stuur van die harmonika, daarom is dit noodsaaklik om die uitset van die IR -detektor in 'n veranderlike op te slaan onmiddellik nadat die FREQOUT -opdrag gestuur is. Die waarde wat deur die veranderlike gestoor word, kan dan in die ontfoutingsterminal vertoon word of deur die Boe-Bot gebruik word vir navigasiebesluite.

Stap 6: Toets infrarooi pare - hardeware + sagteware

Toets infrarooi pare - hardeware + sagteware
Toets infrarooi pare - hardeware + sagteware

Noudat u die basiese ken

U kan die kode self probeer maak, of die onderstaande kode gebruik

'{$ STAMP BS2}

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

  1. Laat die Boe-Bot aan die seriële kabel gekoppel wees, want u sal die DEBUG Terminal gebruik om u IR-paar te toets.
  2. Plaas 'n voorwerp, soos u hand of 'n vel papier, ongeveer 'n duim van die linker IR -paar
  3. Verifieer dat as u 'n voorwerp voor die IR -paar plaas, die ontfoutingsterminal 'n 0 vertoon, en as u die voorwerp voor die IR -paar verwyder, 'n 1 verskyn.
  4. As die ontfoutingsterminal nie die verwagte waardes vertoon nie, probeer die stappe in die probleemopsporingsstap.

Stap 7: Probleemoplossing (vir probleme met die laaste stap)

DEBUG Terminal wat onverwagte waardes vertoon

Kontroleer die stroombaan op kortsluitings, misplaaste of ontbrekende verbindings, beskadigde komponente, verkeerde weerstande of enige ander sigbare probleem

Kontroleer die program op logiese of sintaksisfoute - As u u eie kode vir die laaste stap gebruik het, oorweeg dit om die verskafde kode te gebruik

Kry altyd 0, selfs al is daar geen voorwerpe nie, word voor die Boe-Bot geplaas

Kyk of daar nabygeleë voorwerpe is wat die infrarooi sein weerkaats. Die tafel voor die Boe-Bot kan die oorsaak wees. Beweeg die Boe-Bot na 'n oop ruimte sodat die IR-LED en detektor geen voorwerp in die omgewing kan weerkaats nie.

Lees is meestal 1 keer as daar geen voorwerp voor die Boe-Bot is nie, maar af en toe na 0 flikker

Daar kan interferensie wees van 'n nabygeleë fluorescerende lig; Skakel die nabygeleë fluoresserende ligte uit en herhaal u toetse. As die probleem voortduur, kan stap 9 die probleem openbaar

Stap 8: Tweede IR -paar

Tweede IR -paar
Tweede IR -paar

Noudat u die program vir die linker IR het, is dit u beurt om die kring te maak en die regte IR -paar te programmeer

  1. Verander die DEBUG -stelling, titel en opmerkings om na die regte IR -paar te verwys.
  2. Verander die veranderlike naam van irDetectLeft na irDetectRight. U moet dit op vier plekke in die program doen.
  3. Verander die pin -argument van die FREQOUT -opdrag van 8 na 2.
  4. Verander die insetregister wat deur die irDetectRight -veranderlike gemonitor word, van IN9 na IN0.
  5. Herhaal die toetsstappe in hierdie aktiwiteit vir die regte IR -paar; met die IR LED -kring gekoppel aan P2 en die detektor aan P0.

Stap 9: Opsporing van infrarooi interferensie (opsioneel)

Opsporing van infrarooi interferensie (opsioneel)
Opsporing van infrarooi interferensie (opsioneel)

Of u nou probleme ondervind met die opsporing van seine wat nie opgespoor moet word nie, of as u van plan is om u IR -opsporing op 'n ander plek te demonstreer, wil u dalk op steuring toets.

Die konsep van hierdie toetsprogram is redelik eenvoudig; u kan infrarooi seine opspoor sonder om uit te stuur.

U kan presies dieselfde stroombaan gebruik, maar u moet die kode verander. u kan kies om u eie kode te skryf, maar u kan die onderstaande kode gebruik:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 AS IN9 = 0 OF IN0 = 0 DAN DEBUG "Stooring opgespoor" PAUSE 100 LOOP

As u inmenging ondervind, bepaal die waarskynlike bron en skakel dit uit/verwyder dit of verhuis na waar u u Boe-Bot gebruik.

Stap 10: Voeg meer IR -pare by

Voeg meer IR -pare by
Voeg meer IR -pare by

As u meer akkuraatheid in die beweging van u Boe-Bot verlang, wil u moontlik meer IR-pare byvoeg. 3 Verbeter die prestasie aansienlik in vergelyking met twee; u kan 'n middelste paar gebruik om na 'n direkte hindernis te soek en twee sy -IR's te gebruik om te bepaal hoeveel u moet draai. Die ondergang van die 3 IR -paarontwerp is egter dat u kan weet wanneer u teen 'n muur gly, want die middelste IR -paar word gebruik om hindernisse op te spoor. Om hierdie probleem op te los, kan u 'n IR-paar aan elke kant met 'n hoë weerstandswaarde byvoeg; daarom word infrarooi sein slegs opgespoor as die Boe-Bot naby die sy of 'n muur teen 'n sagte hoek is.

Stap 11: Vyf IR -pare - stroombaan

Vyf IR -pare - stroombaan
Vyf IR -pare - stroombaan

Wees versigtig wanneer u die twee IR -LED's aan die kant rig, want as u dit draai, kan die kabels raak en kortsluiting veroorsaak.

Stap 12: Vyf IR -pare - Kode

Vyf IR -pare - Kode
Vyf IR -pare - Kode

U kan probeer om u Boe-Bot te programmeer voordat u hierdie kode gebruik:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw '8 Mei 2019 (Weergawe 7)' Opsporing van voorwerpe en basiese logiese verwerking om doolhowe op te los

irDetectLeft VAR Bit 'Variable for left

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

Motor -PIN 15 'Die linkermotor is gekoppel aan pen 14, pulse gaan hier deur

Rmotor PIN 14 'regs = 15

'snelhede is-> 650-750-850

LFast CON 850 'Conastant vir linkermotor op volspoed RFast CON 650' Conastant vir regtermotor op volle snelheid

LStop CON 750 'Conastant vir linkermotor op volle spoed

RStop CON 650 'Conastant vir regtermotor op volle spoed

LMid CON 830 'Conastant vir linkermotor teen medium spoed

RMid CON 700 'Conastant vir regtermotor teen medium spoed

LSlow CON 770 'Conastant vir linkermotor teen minimum spoed

RSlow CON 730 'Conastant vir regtermotor teen minimum spoed

LRev CON 650 'Konastant vir linkermotor teen volle spoed in trurat

RRev CON 850 'Konastant vir linkermotor teen volle spoed agteruit

FREQOUT 7, 1, 38500 'linkerkant

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'sentrum

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'regterkant

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Links naby

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'regs Sluit

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'regterkant

irDetectRSideFar = IN0

INDIEN irDetectLSide = 0 EN irDetectRSide = 0 WIND dan die hoofbeginsel met u hande verby die twee syverklikkers om die program te begin

Hoof:

PAUSE 1000 DOEN

PULSOUT Lmotor, LFast se linkermotor loop op volle spoed

PULSOUT Rmotor, RFast 'Regtermotor loop op volle spoed

FREQOUT 6, 1, 38500 'sentrum

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Links naby

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'regterkant

irDetectRSide = IN0

AS irDetectLSide = 0 EN irDetectRSide = 1 DAN

DOEN PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'sentrum

irDetectCentre = IN5 AS irDetectCentre = 0 DAN sent

FREQOUT 10, 1, 38500 'Links naby

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'regterkant

irDetectRight = IN2

LOOP TOT irDetectLSide = 1 OF irDetectRSide = 0

ELSEIF irDetectLSide = 1 EN irDetectRSide = 0 DAN

DOEN PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'sentrum

irDetectCentre = IN5 AS irDetectCentre = 0 DAN sent

FREQOUT 10, 1, 38500 'Links naby

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'regterkant

irDetectRight = IN2

LOOP TOT irDetectLSide = 0 OF irDetectRSide = 1

'ENDIF

AS irDetectCentre = 0 DAN 'BEGIN

FREQOUT 7, 1, 38500 'linkerkant irDetectLeft = IN8

FREQOUT 6, 1, 38500 'sentrum

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'pouse om te wys dat die sein opgespoor is

AS (irDetectLeft = 1 EN irDetectRight = 0) evalueer dan die duur

GOSUB draai links

ELSEIF (irDetectLeft = 0 EN irDetectRight = 1) DAN

GOSUB regs

ELSEIF (irDetectLeft = 1 EN irDetectRight = 1) DAN

GOSUB turnBesluit

ANDERS

GOSUB -omkeer

ENDIF

EINDE se einde

LOOP

EINDE

draai links:

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

draai regs:

DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP TOT IN9 = 1

Keer terug

turnReverse:

VIR mLoop = 0 TOT 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, 38500 irDetectRight = IN0 LOOP TOT IN9 = 1

Keer terug

turnDecide: 'gebruik laer weerstand om verder te sien

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'regterkant

irDetectRSideFar = IN0

AS (irDetectLSideFar = 1 EN irDetectRSideFar = 0) evalueer dan die duur

GOSUB draai links

ELSEIF (irDetectLSideFar = 0 EN irDetectRSideFar = 1) DAN

GOSUB regs

ELSEIF (irDetectLSideFar = 1 EN irDetectRSideFar = 1) DAN

GOSUB draai links

ANDERS

GOSUB -omkeer

ENDIF

Keer terug

Aanbeveel: