Mündəricat:

İnfraqırmızı Dedektorlu Boe-Bot: 12 Addım (Şəkillərlə birlikdə)
İnfraqırmızı Dedektorlu Boe-Bot: 12 Addım (Şəkillərlə birlikdə)

Video: İnfraqırmızı Dedektorlu Boe-Bot: 12 Addım (Şəkillərlə birlikdə)

Video: İnfraqırmızı Dedektorlu Boe-Bot: 12 Addım (Şəkillərlə birlikdə)
Video: ВКУСНАЯ ЕДА ИЗ ПРОСТЫХ ПРОДУКТОВ В КАЗАНЕ 2 РЕЦЕПТА Узбекский суп 2024, Iyul
Anonim
İnfraqırmızı Dedektorlu Boe-Bot
İnfraqırmızı Dedektorlu Boe-Bot

Bu təlimat, maneələrin qarşısını almaq üçün infraqırmızı detektorlardan istifadə edərək bir labirentdə gedə bilən bir Boe-Botun necə qurulacağını və kodlaşdırılmasını nümayiş etdirəcək. Bu, ehtiyaclarınıza uyğun olaraq asan dəyişikliklər etməyə imkan verən asan bir təlimatdır. Bunun üçün sxem və proqramlaşdırma haqqında əsas anlayış lazımdır. Bu layihə üçün BASIC Stamp IDE proqramına sahib olmalısınız. Buradan yükləmək üçün pulsuz. Həm də Boe-Bot Robotu

Addım 1: Resurslar

Elektron komponentlər

Bağlayıcı kabel ilə Boe -Bot Paralaks Mağazası - BoeBot Kit

5 İnfraqırmızı LED Paralaks Mağazası - İQ Verici Quraşdırma Kiti

5 İnfraqırmızı Qalxan Montajı

5 infraqırmızı detektor Parallax Mağazası - BoeBot IR Alıcısı

Rezistorlar

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

Çeşidli naqillər ABRA Electronics - 22 Ölçü Tel

3 LED ABRA Electronics - 5 mm Qırmızı LED

Dəstək

Kompüter

BASIC Damğa Redaktoru - (Pulsuz proqram)

Alətlər

Tel kəsici ABRA Electronics - Tel kəsici (İsteğe bağlı)

Tel Sıyırıcı ABRA Electronics - Tel Soyucu

Digər

Divarlar (labirent qurmaq üçün)

Addım 2: İnfraqırmızı algılamanın necə işlədiyini anlayın (İsteğe bağlı)

İnfraqırmızı Algılamanın Necə Çalışdığını Anlamaq (İsteğe bağlı)
İnfraqırmızı Algılamanın Necə Çalışdığını Anlamaq (İsteğe bağlı)

İnfraqırmızı faralar

Boe-Bot üzərində quracağımız infraqırmızı obyekt aşkarlama sistemi bir çox cəhətdən avtomobilin faralarına bənzəyir. Bir avtomobilin faralarından gələn işıq maneələri əks etdirdikdə, gözləriniz maneələri aşkar edir və beyniniz onları emal edir və bədəninizi buna uyğun olaraq idarə edir. Boe-Bot faralar üçün infraqırmızı LED-lərdən istifadə edəcək. İnfraqırmızı yayırlar və bəzi hallarda infraqırmızı cisimləri əks etdirir və Boe-Bot istiqamətində geri sıçrayır. Boe-Botun gözləri infraqırmızı detektorlardır. İnfraqırmızı detektorlar infraqırmızı obyektin əks olunduğunu aşkar edib -etmədiyini göstərən siqnallar göndərirlər. Boe-Botun beyni, BASIC Stamp, bu sensor girişinə əsasən qərar qəbul edir və servo mühərrikləri idarə edir. Şəkil 7-1 IR Fənərləri ilə Obyekt Tanıma IR detektorları daxili fotodiod sensoru ilə aşkar etmək istədiyimiz 980 nm infraqırmızı istisna olmaqla çox az işığa icazə verən daxili optik filtrlərə malikdir. İnfraqırmızı detektorda yalnız 38.5 kHz ətrafındakı siqnalların keçməsinə imkan verən elektron filtr var. Başqa sözlə, detektor yalnız saniyədə 38 500 dəfə yanıb sönən infraqırmızı axtarır. Bu, günəş işığı və daxili işıqlandırma kimi ümumi mənbələrdən IR müdaxiləsinin qarşısını alır. Günəş işığı DC müdaxiləsidir (0 Hz) və daxili işıqlandırma bölgədəki əsas enerji mənbəyindən asılı olaraq ya 100 və ya 120 Hz -də yanıb sönməyə meyllidir. 120 Hz elektron filtrin 38.5 kHz bant ötürmə tezliyindən kənarda olduğu üçün İR detektorları tərəfindən tamamilə nəzərə alınmır.

-Paralax Tələbə Bələdçisi

Addım 3: IR LED -lərinin yığılması

IR LED -lərin yığılması
IR LED -lərin yığılması

IR LEDini korpusun daha böyük hissəsinə daxil edin

LED -in aydın hissəsini korpusun daha kiçik hissəsi ilə bağlayın

Addım 4: İnfraqırmızı cütlərin sınanması - dövrə

İnfraqırmızı Çifti Test - Dövrə
İnfraqırmızı Çifti Test - Dövrə
İnfraqırmızı Çifti Test - Dövrə
İnfraqırmızı Çifti Test - Dövrə

Bir şeyə çox dərindən girməzdən əvvəl, İR cütlüyünün işlədiyini yoxlamaq üçün sınayacağıq (Bir infraqırmızı LED və bir infraqırmızı detektor).

Boe-Botunuzun üstünə quraşdırılmış çörək lövhəsində yuxarıdakı sxem quraraq başlayın

Addım 5: İnfraqırmızı cütlərin sınanması - Əsas Kod

Əlbəttə ki, IR cütlərimizin işləməsi üçün kod yazmalıyıq

Bunun üçün FREQOUT əmrindən istifadə edəcək. Bu əmr səs tonları üçün hazırlanmışdır, lakin infraqırmızı diapazonda tezliklər istehsal etmək üçün istifadə edilə bilər. Bu test üçün əmrdən istifadə edəcəyik:

FREQOUT 8, 1, 38500

bu, P8 -ə 1 ms davam edən 38.5 kHz tezliyi göndərəcək. P8 -ə qoşulan infraqırmızı LED dövrəsi bu tezliyi yayımlayacaq. Əgər infraqırmızı işıq yolundakı bir obyekt tərəfindən Boe-Bot-a geri əks olunarsa, infraqırmızı detektor əks olunan infraqırmızı işığın aşkarlandığını bildirmək üçün BASIC Damğasına siqnal göndərəcək.

Bir IR cütlüyünün işləməsinin açarı 1 ms 38.5 kHz FREQOUT göndərmək və dərhal IR detektorunun çıxışını dəyişəndə saxlamaqdır.

Bu nümunə, IR Detector dəyərinin irDectectLeft adlı bir bit dəyişənində saxlanmasını göstərir

FREQOUT 8, 1, 38500

irDetectLeft = IN9

İQ siqnalının yüksək olmadığını görəndə İK detektorunun çıxış vəziyyəti. İR detektoru 38500 Hz harmonik bir cisim tərəfindən əks olunduğunu görəndə çıxışı aşağı olur. IR detektorunun çıxışı, FREQOUT əmri harmonik göndərildikdən sonra bir milisaniyənin bir hissəsində aşağı qalır, buna görə də IR detektorunun çıxışını FREQOUT əmrini göndərdikdən dərhal sonra dəyişəndə saxlamaq vacibdir. Dəyişən tərəfindən saxlanılan dəyər daha sonra Debug Terminalında göstərilə bilər və ya Boe-Bot tərəfindən naviqasiya qərarları üçün istifadə edilə bilər.

Addım 6: İnfraqırmızı cütlərin sınanması - Hardware + Software

İnfraqırmızı şüaların sınanması - Hardware + Software
İnfraqırmızı şüaların sınanması - Hardware + Software

İndi əsasları bildiyiniz üçün, bir cütü birlikdə sınamaq və IR Pair-in aşkarladıqlarından real vaxtda geribildirim almaq üçün aparat və Proqram təminatını bir araya gətirə bilərik.

Kodu özünüz cəhd edə və ya aşağıdakı kodu istifadə edə bilərsiniz

'{$ STAMP BS2}

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

  1. Boe-Botu serial kabelinə bağlı olaraq buraxın, çünki IR cütlüyünüzü sınamaq üçün DEBUG Terminalından istifadə edəcəksiniz.
  2. Əlinizin və ya bir kağız vərəqi kimi bir obyekti sol İK cütlüyündən təxminən bir düym məsafədə yerləşdirin
  3. IR cütünün qarşısına bir obyekt qoyduğunuzda Debug Terminalının 0 göstərdiyini və obyekti İK cütlüyünün qarşısından çıxardığınızda 1 göstərdiyini doğrulayın.
  4. Hata Ayıklama Terminalı gözlənilən dəyərləri göstərmirsə, Problemi Giderme Adımındakı addımları sınayın.

Addım 7: Problemlərin aradan qaldırılması (Son addımda olan problemlər üçün)

DEBUG Terminalı gözlənilməz dəyərlər göstərir

Şortu, səhv yerləşdirilmiş və ya itkin bağlayıcıları, zədələnmiş komponentləri, səhv rezistorları və ya görünən hər hansı bir problemi yoxlayın

Proqramı məntiqi və ya sintaksis səhvlərindən yoxlayın - Son addım üçün öz kodunuzu istifadə etmisinizsə, verilən kodu istifadə etməyi düşünün

Boe-Botun qarşısına heç bir obyekt qoyulmasa belə, həmişə 0 alın

Yaxınlıqda infraqırmızı siqnalı əks etdirən obyektlərin olub olmadığını yoxlayın. Boe-Botun qarşısındakı masa səbəb ola bilər. Boe-Botu açıq yerə aparın ki, İQ LED və detektor yaxınlıqdakı heç bir obyekti əks etdirməsin.

Boe-Botun qarşısında heç bir obyekt olmadığı zaman oxumaq çox vaxt 1 olur, amma hərdən 0-a çalır.

Yaxınlıqdakı floresan işıqdan müdaxilə ola bilər; Yaxınlıqdakı floresan işıqları söndürün və testlərinizi təkrarlayın. Problem davam edərsə, 9 -cu addım problemi ortaya çıxara bilər

Addım 8: İkinci IR Çifti

İkinci IR Çifti
İkinci IR Çifti

İndi sol IR üçün proqrama sahib olduğunuz üçün, dövrəni düzəltmək və doğru IR Pair proqramlaşdırmaq sizin növbənizdir

  1. Doğru IR cütlüyünə istinad etmək üçün DEBUG ifadəsini, başlığını və şərhlərini dəyişdirin.
  2. İrDetectLeft -dən irDetectRight -a dəyişən adı dəyişdirin. Bunu proqramın dörd yerində etməlisiniz.
  3. FREQOUT əmrinin Pin arqumentini 8 -dən 2 -ə dəyişin.
  4. İrDetectRight dəyişəninin izlədiyi giriş qeydini IN9 -dan IN0 -a dəyişin.
  5. Doğru IR cütü üçün bu fəaliyyətdəki test addımlarını təkrarlayın; P2 -yə qoşulmuş IR LED dövrəsi və P0 -a qoşulan detektor ilə.

Addım 9: İnfraqırmızı müdaxilənin aşkarlanması (İsteğe bağlı)

İnfraqırmızı müdaxilənin aşkarlanması (İsteğe bağlı)
İnfraqırmızı müdaxilənin aşkarlanması (İsteğe bağlı)

İstifadə edilməməsi lazım olan siqnalların aşkarlanması ilə bağlı problemlərlə qarşılaşsanız və ya İQ algılamanızı başqa bir yerdə nümayiş etdirməyi planlaşdırsanız, müdaxilə üçün test etmək istəyə bilərsiniz.

Bu test proqramının konsepsiyası olduqca sadədir, heç bir şey göndərmədən infraqırmızı siqnalları aşkar edirsiniz.

Eyni sxemdən istifadə edə bilərsiniz, ancaq kodu dəyişdirməlisiniz. öz kodunuzu yazmağı seçə bilərsiniz, ancaq aşağıda göstərilən kodu istifadə edə bilərsiniz:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IN9 = 0 VƏ IN0 = 0 OLDUĞU təqdirdə "Müdaxilə aşkarlandı" DURDUR 100 LOOP

Müdaxilə ilə qarşılaşırsınızsa, ehtimal olunan mənbəyi müəyyənləşdirin və söndürün/silin və ya Boe-Botunuzu işlədiyiniz yerə köçürün.

Addım 10: Daha çox IR cütlüyü əlavə edin

Daha çox IR cütlüyü əlavə edin
Daha çox IR cütlüyü əlavə edin

Boe-Botunuzun hərəkətində daha çox dəqiqlik istəyirsinizsə, daha çox İK cütü əlavə edə bilərsiniz. 3 İki ilə müqayisədə performansı çox yaxşılaşdırır; birbaşa maneəni taramaq üçün bir mərkəz cütü istifadə edə bilərsiniz və nə qədər dönəcəyinizi təyin etmək üçün iki yan IR istifadə edə bilərsiniz. Bununla birlikdə, 3 IR cüt dizaynının çatışmazlığı, divarın üzərinə sürüşərkən bilirsiniz, çünki mərkəzi İK cütü maneələri aşkar etmək üçün istifadə olunur. Bu problemi həll etmək üçün hər tərəfə yüksək müqavimət dəyəri olan bir İK cütü əlavə edə bilərsiniz və buna görə də Boe-Bot yan tərəfə və ya divara yumşaq bir açıda yaxın olduqda infraqırmızı siqnal algılanacaq.

Addım 11: Beş IR İkili - Dövrə

Beş IR Çifti - Dövrə
Beş IR Çifti - Dövrə

Yan tərəfdəki iki İQ LEDini istiqamətləndirərkən diqqətli olun, çünki onları əymək ucların toxunmasına və qısa qapanmaya səbəb ola bilər.

Addım 12: Beş IR cütü - Kod

Beş IR cütü - Kod
Beş IR cütü - Kod

Bu kodu istifadə etməzdən əvvəl Boe-Botunuzu proqramlaşdırmağa cəhd edə bilərsiniz:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Beş IR Cüt Deatection Kodu' Matthew Shaw '8 May 2019 (Versiya 7)' Cisimlərin aşkarlanması və labirentləri həll etmək üçün əsas məntiqi emal

irDetectLeft VAR Bit 'Sol üçün Dəyişən

irDetectCentre VAR Bit 'Mərkəz üçün Dəyişkən irDetectRight VAR Bit' Sağ üçün Dəyişkən irDetectLSide VAR Bit 'Sol tərəf üçün Dəyişkən

mLoop VAR Word

Lmotor PIN 15 'Sol motor pin 14 -ə bağlıdır, pulslar buradan keçir

Rmotor PIN 14 'sağ = 15

'sürətləri-> 650-750-850

LFast CON 850 'Tam sürətlə sol motor üçün sabit RFast CON 650' Tam sürətlə sağ motor üçün sabit

LStop CON 750 'Sol motor üçün tam sürətlə sabit

RStop CON 650 'Tam sürətlə sağ motor üçün sabit

LMid CON 830 'Orta sürətdə sol motor üçün sabit

RMid CON 700 'Orta sürətdə sağ motor üçün sabit

LSlow CON 770 'Minimum sürətlə sol motor üçün sabit

RSlow CON 730 'Minimum sürətlə sağ motor üçün sabit

LRev CON 650 'Tam sürətlə sol mühərrik üçün sabit

RRev CON 850 'Sol mühərrik üçün tam sürətlə sabit tərs

FREQOUT 7, 1, 38500 'sol tərəf

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'mərkəzi

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'sağ tərəf

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Sol Bağla

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'sağ Bağlayın

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'sağ tərəfdə

irDetectRSideFar = IN0

İRDetectLSide = 0 VƏ irDetectRSide = 0 SONRA əsas 'BAŞLAYAN ƏMRİ proqramı işə salmaq üçün əllərinizi iki tərəfli detektorların yanından yelləyin.

Əsas:

PAUSE 1000 DO

PULSOUT Lmotor, LFastın sol mühərriki tam sürətlə çalışır

PULSOUT Rmotor, RFast 'Sağ motor tam sürətlə işləyir

FREQOUT 6, 1, 38500 'mərkəzi

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Sol Bağla

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'sağ tərəfdə

irDetectRSide = IN0

İRDetectLSide = 0 VƏ irDetectRSide = 1 SONRA

Lmotor, LFast çəkin

FREQOUT 6, 1, 38500 'mərkəzi

irDetectCentre = IN5 İRDetectCentre = 0 SONRA sent

FREQOUT 10, 1, 38500 'Sol Bağla

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'sağ tərəf

irDetectRight = IN2

İrDetectLSide = 1 VƏ irDetectRSide = 0 Qədər döngə

ELSEIF irDetectLSide = 1 VƏ irDetectRSide = 0 SONRA

Rmotor, RFast çəkin

FREQOUT 6, 1, 38500 'mərkəzi

irDetectCentre = IN5 İRDetectCentre = 0 SONRA

FREQOUT 10, 1, 38500 'Sol Bağla

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'sağ tərəf

irDetectRight = IN2

İrDetectLSide = 0 VEYA irDetectRSide = 1 qədər döngə edin

ENDIF

İRDetectCentre = 0 SONRA BAŞLAYIN

FREQOUT 7, 1, 38500 'sol tərəfi irDetectLeft = IN8

FREQOUT 6, 1, 38500 'mərkəzi

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

Siqnal aşkarlandığını göstərmək üçün PAUSE 1000 'pauzası

IF (irDetectLeft = 1 VƏ irDetectRight = 0) SONRA 'müddəti qiymətləndirin

GOSUB dönüş sola

ELSEIF (irDetectLeft = 0 VƏ irDetectRight = 1) SONRA

GOSUB turnRight

ELSEIF (irDetectLeft = 1 VƏ irDetectRight = 1) SONRA

GOSUB növbəsində qərar verin

BAŞQA

GOSUB döndərin

ENDIF

ENDIF 'SON

LOOP

SON

sola dön:

Lmotor PULSOUT, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 INO = 1 QAYIT

sağa dönün:

Rmotor PULSOUT, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 IN9 = 1 QƏDƏR

QAYIT

döndərin:

MLoop İÇİN = 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 1, 38 FREQO00 5 INR 1, 38500 irDetectRight = IN9 = 1 -ə qədər IN0 döngə

QAYIT

turnDecide: 'daha ətraflı görmək üçün aşağı müqavimətdən istifadə edir

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'sağ tərəfdə

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 VƏ irDetectRSideFar = 0) SONRA 'müddəti qiymətləndirin

GOSUB dönüş sola

ELSEIF (irDetectLSideFar = 0 VƏ irDetectRSideFar = 1) SONRA

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 VƏ irDetectRSideFar = 1) SONRA

GOSUB dönüş sola

BAŞQA

GOSUB döndərin

ENDIF

QAYIT

Tövsiyə: