Tartalomjegyzék:

Boe-Bot infravörös érzékelőkkel: 12 lépés (képekkel)
Boe-Bot infravörös érzékelőkkel: 12 lépés (képekkel)

Videó: Boe-Bot infravörös érzékelőkkel: 12 lépés (képekkel)

Videó: Boe-Bot infravörös érzékelőkkel: 12 lépés (képekkel)
Videó: Jarrett's Boe Bot navigates a maze with infrared sensors. 2024, November
Anonim
Boe-Bot infravörös érzékelőkkel
Boe-Bot infravörös érzékelőkkel

Ez az oktatóanyag bemutatja, hogyan lehet felépíteni és kódolni egy Boe-Bot-ot, amely infravörös érzékelők segítségével navigálhat a labirintusban az akadályok elkerülése érdekében. Ez egy könnyen követhető útmutató, amely lehetővé teszi az igényeinek megfelelő egyszerű módosításokat. Ehhez alapvető ismeretekre van szükség az áramkörökről és a programozásról. Ehhez a projekthez BASIC Stamp IDE szoftverrel kell rendelkeznie. Itt ingyenesen letölthető. Valamint a Boe-Bot robot

1. lépés: Erőforrások

Elektromos alkatrészek

Boe -Bot csatlakozó kábellel Parallax Store - BoeBot Kit

5 Infravörös LED Parallax Store - IR távadó összeszerelő készlet

5 infravörös pajzs szerelvény

5 infravörös érzékelő Parallax Store - BoeBot IR vevő

Ellenállások

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

Vegyes huzalozás ABRA Electronics - 22 -es vezeték

3 LED ABRA Electronics - 5 mm -es piros LED

Támogatás

Számítógép

BASIC Stamp Editor - (ingyenes)

Eszközök

Huzalvágó ABRA Electronics - huzalvágó (opcionális)

Huzalcsupaszító ABRA Electronics - Drótcsíkoló

Egyéb

Falak (labirintus építéséhez)

2. lépés: Az infravörös érzékelés működésének megértése (opcionális)

Az infravörös érzékelés működésének megértése (opcionális)
Az infravörös érzékelés működésének megértése (opcionális)

Infravörös fényszórók

Az infravörös tárgyérzékelő rendszer, amelyet a Boe-Botra építünk, több szempontból is olyan, mint egy autó fényszórója. Amikor az autó fényszóróinak fénye visszaverődik az akadályokról, a szeme észleli az akadályokat, és az agya feldolgozza azokat, és a teste ennek megfelelően irányítja az autót. A Boe-Bot infravörös LED-eket használ a fényszórókhoz. Infravörös sugárzást bocsátanak ki, és bizonyos esetekben az infravörös fény visszaverődik a tárgyakról, és visszapattan a Boe-Bot irányába. A Boe-Bot szemei az infravörös érzékelők. Az infravörös érzékelők jeleket küldenek, jelezve, hogy érzékelik -e az objektumról visszaverődött infravörös sugárzást. A Boe-Bot agya, a BASIC Stamp, ezen érzékelő bemenet alapján dönt, és működteti a szervomotorokat. 7-1. Ábra Tárgyfelismerés infravörös fényszórókkal Az infravörös érzékelők beépített optikai szűrőkkel rendelkeznek, amelyek nagyon kevés fényt engednek, kivéve a 980 nm-es infravörös sugárzást, amelyet a belső fotodióda-érzékelővel akarunk érzékelni. Az infravörös érzékelő elektronikus szűrővel is rendelkezik, amely csak 38,5 kHz körüli jeleket enged át. Más szóval, az érzékelő csak infravörös jelet keres, amely másodpercenként 38, 500 -szor villog. Ez megakadályozza az infravörös interferenciát olyan gyakori forrásokból, mint a napfény és a beltéri világítás. A napfény egyenáramú interferencia (0 Hz), és a beltéri világítás általában 100 vagy 120 Hz -en villog és bekapcsol, a régió fő áramforrásától függően. Mivel a 120 Hz kívül esik az elektronikus szűrő 38,5 kHz -es sávfrekvenciáján, az infravörös érzékelők teljesen figyelmen kívül hagyják.

-Paralax Student Guide

3. lépés: IR LED -ek összeszerelése

IR LED -ek összeszerelése
IR LED -ek összeszerelése

Helyezze be az IR LED -et a burkolat nagyobb részébe

Zárja be a LED világos részét a burkolat kisebb részével

4. lépés: Az infravörös párok tesztelése - áramkör

Infravörös párok tesztelése - áramkör
Infravörös párok tesztelése - áramkör
Infravörös párok tesztelése - áramkör
Infravörös párok tesztelése - áramkör

Mielőtt bármibe is mélyen belemélyednénk, tesztelni fogjuk, hogy megbizonyosodjunk arról, hogy az IR pár működik (egy infravörös LED és egy infravörös érzékelő).

Kezdje azzal, hogy felépíti a fenti áramkört a Boe-Bot tetejére szerelt kenyérlapra

5. lépés: Az infravörös párok tesztelése - alapkód

Természetesen az IR párok működéséhez kódot kell írnunk

Ehhez a FREQOUT parancsot fogja használni. Ezt a parancsot hanghangokra tervezték, de használható infravörös tartományú frekvenciák előállítására. Ehhez a teszthez a következő parancsot fogjuk használni:

FREKOUT 8, 1, 38500

ez 38,5 kHz -es, 1 ms -os frekvenciát küld a P8 -nak. A P8 -hoz csatlakoztatott infravörös LED áramkör ezt a frekvenciát sugározza. Ha az infravörös fényt visszaveri a Boe-Bot egy tárgy, amely az útjában van, az infravörös érzékelő jelet küld a BASIC bélyegzőnek annak tudatására, hogy a visszavert infravörös fényt észlelték.

Az IR pár működésének kulcsa az, hogy küldjön 1 ms 38,5 kHz -es FREQOUT -ot, és azonnal tárolja az infravörös érzékelő kimenetét egy változóban.

Ez a példa azt mutatja, hogy az IR detektor értékét az irDectectLeft nevű bites változóban tárolják

FREKOUT 8, 1, 38500

irDetectLeft = IN9

Az infravörös érzékelő kimeneti állapota magas, ha nem látja az infravörös jelet. Amikor az infravörös érzékelő látja a 38500 Hz -es felharmonikát, amelyet egy objektum tükröz, a kimenete alacsony. Az infravörös érzékelő kimenete csak ezredmásodperc töredékéig marad alacsony, miután a FREQOUT parancs befejezte a felharmonikus küldését, ezért elengedhetetlen, hogy az IR érzékelő kimenetét a FREQOUT parancs elküldése után azonnal egy változóban tárolja. A változó által tárolt érték ezután megjeleníthető a hibakeresési terminálon, vagy felhasználható a Boe-Bot navigációs döntéseihez.

6. lépés: Infravörös párok tesztelése - Hardver + szoftver

Infravörös párok tesztelése - Hardver + szoftver
Infravörös párok tesztelése - Hardver + szoftver

Most, hogy ismeri az alapokat, összeállíthatjuk a hardvert és a szoftvert, hogy együtt tesztelhessünk egy párt, és valós idejű visszajelzést kapjunk arról, amit az IR-pár észlel

Kipróbálhatja a kód elkészítését saját maga, vagy használhatja az alábbi kódot

'{$ STAMP BS2}

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

  1. Hagyja a Boe-Bot-ot a soros kábelhez csatlakoztatva, mert a DEBUG terminált fogja használni az IR pár teszteléséhez.
  2. Helyezzen egy tárgyat, például a kezét vagy egy papírlapot, körülbelül egy hüvelyknyire a bal oldali infravörös párostól
  3. Ellenőrizze, hogy amikor egy objektumot az infravörös pár elé helyez, a hibakeresési terminál 0 -t mutat, és amikor eltávolítja az objektumot az infravörös pár elől, akkor 1 -et jelenít meg.
  4. Ha a hibakeresési terminál nem jeleníti meg a várt értékeket, próbálja meg a Hibaelhárítás lépés lépéseit.

7. lépés: Hibaelhárítás (az utolsó lépéssel kapcsolatos problémák esetén)

DEBUG terminál váratlan értékeket jelenít meg

Ellenőrizze az áramkört, nincs -e rövidzárlat, rosszul elhelyezett vagy hiányzó csatlakozók, sérült alkatrészek, helytelen ellenállások vagy egyéb látható probléma

Ellenőrizze a program logikai vagy szintaktikai hibáit - Ha az utolsó lépésben saját kódját használta, fontolja meg a megadott kód használatát

Mindig 0-t kap, még akkor is, ha nincsenek tárgyak a Boe-Bot előtt

Ellenőrizze, hogy vannak -e olyan közeli tárgyak, amelyek tükrözik az infravörös jelet. A Boe-Bot előtti asztal lehet az oka. Vigye a Boe-Bot-ot nyílt térbe, hogy az infravörös LED és az érzékelő ne tükröződhessen közeli tárgyakról.

Az olvasás legtöbbször 1, amikor nincs tárgy a Boe-Bot előtt, de időnként 0-ra villog

A közeli fluoreszkáló fény interferenciát okozhat; Kapcsolja ki a közeli fénycsöveket, és ismételje meg a vizsgálatokat. Ha a probléma továbbra is fennáll, a 9. lépés felfedheti a problémát

8. lépés: Második IR pár

Második IR pár
Második IR pár

Most, hogy megvan a bal oldali infravörös program, akkor rajtad a sor, hogy elkészítsd az áramkört és programozd be a jobb oldali infrapárt

  1. Módosítsa a DEBUG utasítást, a címet és a megjegyzéseket, hogy a megfelelő IR párra hivatkozzon.
  2. Módosítsa a változó nevét irDetectLeft értékről irDetectRight értékre. Ezt a program négy helyén kell elvégeznie.
  3. Módosítsa a FREQOUT parancs Pin -argumentumát 8 -ról 2 -re.
  4. Változtassa meg az irDetectRight változó által felügyelt bemeneti regisztert IN9 -ről IN0 -ra.
  5. Ismételje meg a tesztelési lépéseket ebben a tevékenységben a megfelelő IR pár esetében; az IR LED áramkörrel a P2 -hez és az érzékelővel a P0 -hoz.

9. lépés: Az infravörös interferencia észlelése (opcionális)

Infravörös interferencia észlelése (opcionális)
Infravörös interferencia észlelése (opcionális)

Függetlenül attól, hogy problémákat tapasztal a nem észlelhető jelek észlelésekor, vagy azt tervezi, hogy egy másik helyen demonstrálja az infravörös érzékelést, érdemes tesztelni az interferenciát.

Ennek a tesztprogramnak a koncepciója meglehetősen egyszerű, az infravörös jeleket észleli anélkül, hogy kiküldene.

Pontosan ugyanazt az áramkört használhatja, de módosítania kell a kódot. választhatja saját kódjának írását, de használhatja az alábbi kódot:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OR IN0 = 0 THEN DEBUG "Interferencia észlelve" PAUSE 100 LOOP

Ha interferenciát tapasztal, határozza meg a valószínű forrást, és kapcsolja ki/távolítsa el, vagy helyezze át a Boe-Bot működtető helyére.

10. lépés: További IR -párok hozzáadása

További IR -párok hozzáadása
További IR -párok hozzáadása

Ha nagyobb pontosságra vágyik Boe-Botjának mozgásában, érdemes további IR-párokat hozzáadni. 3 Jól javítja a teljesítményt kettőhöz képest; egy középső párral közvetlen akadályt kereshet, és két oldalsó IR segítségével meghatározhatja, hogy mennyit kell fordulnia. A 3 infravörös páros kialakítás bukása azonban az, hogy tudhatja, amikor a falnak csúszik, mivel a középső IR -pár az akadályok észlelésére szolgál. Ennek a problémának a megoldásához hozzáadhat egy IR-párt mindkét oldalához nagy ellenállási értékkel, ezért az infravörös jelet csak akkor észleli, ha a Boe-Bot közel van az oldalhoz vagy a falhoz enyhe szögben.

11. lépés: Öt IR -pár - áramkör

Öt IR -pár - áramkör
Öt IR -pár - áramkör

Legyen óvatos, amikor a két infravörös LED -et az oldalára irányítja, mivel azok elcsavarása a vezetékek érintését és rövidzárlatot okozhat.

12. lépés: Öt IR -pár - kód

Öt IR -pár - kód
Öt IR -pár - kód

Érdemes kipróbálni a Boe-Bot programozását a kód használata előtt:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw '2019. május 8. (Változat 7)' Objektumok észlelése és alapvető logikai feldolgozás a mazes megoldásához

irDetectLeft VAR Bit 'Változó balra

irDetectCentre VAR Bit 'Változó a középső irDetectRight VAR Bit' Változó a jobb irDetectLSide VAR Bit 'Változó a bal oldali irDetectRSide VAR Bit' Változó a jobb oldali irDetectLSideFar VAR Bit 'Változó a bal oldali alacsony ellenállás irDetectRSideFar VAR Bit' Változó a jobb oldali alacsony

mLoop VAR szó

Lmotor PIN 15 'A bal motor a 14 -es csaphoz van csatlakoztatva, az impulzusok itt mennek keresztül

Rmotor PIN 14 'jobb = 15

A sebesség-> 650-750-850

LFast CON 850 'Conastant a bal motorhoz teljes sebességgel RFast CON 650' Conastant a jobb motorhoz teljes sebességgel

LStop CON 750 'Conastant a bal motorhoz teljes sebességgel

RStop CON 650 'Castant a jobb motorhoz teljes sebességgel

LMid CON 830 'Conastant bal motorhoz közepes sebességgel

RMid CON 700 'Conastant a jobb motorhoz közepes sebességgel

LSlow CON 770 'Konsztáns a bal motorhoz minimális fordulatszámon

RSlow CON 730 'Conastant a jobb motorhoz minimális fordulatszámon

LRev CON 650 'Conastant a bal motorhoz teljes fordulatszámon hátramenetben

RRev CON 850 'Conastant bal motorhoz teljes fordulatszámon hátramenetben

FREQOUT 7, 1, 38500 'bal oldal

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'központ

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'jobb oldal

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Bal Bezárás

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'jobb Bezárás

irDetectRSide = IN0

FREKOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'jobb oldal

irDetectRSideFar = IN0

HA irDetectLSide = 0 ÉS IRDetectRSide = 0 Ekkor a fő 'INDÍTÁSI PARANCS a program elindításához intezzen a kezével a két oldalsó érzékelő mellett

Fő:

SZÜNET 1000 DO

PULSOUT Lmotor, LFast 'bal motorja teljes sebességgel jár

PULSOUT Rmotor, RFast 'A jobb motor teljes sebességgel működik

FREQOUT 6, 1, 38500 'központ

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Bal Bezárás

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'jobb oldal

irDetectRSide = IN0

HA irDetectLSide = 0 ÉS IRDetectRSide = 1 THEN

DO PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'központ

irDetectCentre = IN5 HA irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Bal Bezárás

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'jobb oldal

irDetectRight = IN2

LOOP MINDIG IRDETECTLSide = 1 VAGY irDetectRSide = 0

ELSEIF irDetectLSide = 1 ÉS IRDetectRSide = 0 THEN

DO PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'központ

irDetectCentre = IN5 IF irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Bal Bezárás

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'jobb oldal

irDetectRight = IN2

LOOP MINDIG IRDETECTLSide = 0 VAGY irDetectRSide = 1

„ENDIF

HA irDetectCentre = 0 THEN 'START

FREQOUT 7, 1, 38500 'bal oldal irDetectLeft = IN8

FREQOUT 6, 1, 38500 'központ

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 szünet az észlelt jel megjelenítéséhez

IF (irDetectLeft = 1 AND irDetectRight = 0) THEN 'értékelje az időtartamot

GOSUB fordulat Balra

ELSEIF (irDetectLeft = 0 ÉS irDetectRight = 1) AKKOR

GOSUB turnRight

ELSEIF (irDetectLeft = 1 ÉS irDetectRight = 1) AKKOR

GOSUB turnDecide

MÁS

GOSUB turnReverse

ENDIF

ENDIF 'VÉGE

HUROK

VÉGE

forduljon balra:

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

jobbra:

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

VISSZATÉRÉS

turnReverse:

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

VISSZATÉRÉS

turnDecide: 'alacsonyabb ellenállást alkalmaz a további látáshoz

FREKOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'jobb oldal

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 ÉS irDetectRSideFar = 0) THEN 'értékelje az időtartamot

GOSUB fordulat Balra

ELSEIF (irDetectLSideFar = 0 ÉS irDetectRSideFar = 1) AKKOR

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 ÉS irDetectRSideFar = 1) AKKOR

GOSUB fordulat Balra

MÁS

GOSUB turnReverse

ENDIF

VISSZATÉRÉS

Ajánlott: