Talaan ng mga Nilalaman:

Boe-Bot Na May Mga Infrared Detector: 12 Hakbang (na may Mga Larawan)
Boe-Bot Na May Mga Infrared Detector: 12 Hakbang (na may Mga Larawan)

Video: Boe-Bot Na May Mga Infrared Detector: 12 Hakbang (na may Mga Larawan)

Video: Boe-Bot Na May Mga Infrared Detector: 12 Hakbang (na may Mga Larawan)
Video: 15 полезных советов по демонтажным работам. Начало ремонта. Новый проект.# 1 2024, Nobyembre
Anonim
Boe-Bot Sa Mga Infrared Detector
Boe-Bot Sa Mga Infrared Detector

Ang itinuturo na ito ay magpapakita kung paano bumuo at mag-code ng isang Boe-Bot na maaaring mag-navigate sa isang maze gamit ang mga infrared detector upang maiwasan ang mga hadlang. Ito ay isang madaling sundin ang gabay na nagbibigay-daan sa madaling pagbabago upang umangkop sa iyong mga pangangailangan. Nangangailangan ito ng isang pangunahing pag-unawa sa circuitry at programa. Kakailanganin mong magkaroon ng BASIC Stamp IDE software para sa proyektong ito. Libre para sa pag-download dito. Pati na rin ang Boe-Bot Robot

Hakbang 1: Mga Mapagkukunan

Mga Elektronikong Bahagi

Boe-Bot na may konektor cable Parallax Store - BoeBot Kit

5 Infrared LED's Parallax Store - IR Transmitter Assembly Kit

5 Mga Infrared Shield Assembly

5 infrared Detector Parallax Store - BoeBot IR Receiver

Mga lumalaban

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

Iba't ibang mga kable ng ABRA Electronics - 22 Gauge Wire

3 LED's ABRA Electronics - 5mm Red LED

Suporta

Computer

BASIC Stamp Editor - (Freeware)

Mga kasangkapan

Wire Cutter ABRA Electronics - Wire Cutter (Opsyonal)

Wire Stripper ABRA Electronics - Wire Stripper

Misc

Mga pader (upang mabuo ang maze)

Hakbang 2: Pag-unawa sa Paano Gumagana ang Infrared Detection (Opsyonal)

Pag-unawa sa Paano Gumagana ang Infrared Detection (Opsyonal)
Pag-unawa sa Paano Gumagana ang Infrared Detection (Opsyonal)

Mga Infrared Headlight

Ang sistema ng pagtuklas ng infrared na bagay na itatayo namin sa Boe-Bot ay tulad ng mga headlight ng kotse sa maraming aspeto. Kapag ang ilaw mula sa mga headlight ng kotse ay sumasalamin sa mga hadlang, ang iyong mga mata ay nakakakita ng mga hadlang at pinoproseso ito ng iyong utak at ginagawang gabay ng iyong katawan ang kotse nang naaayon. Ang Boe-Bot ay gagamit ng infrared LEDs para sa mga headlight. Naglalabas sila ng infrared, at sa ilang mga kaso, ang infrared ay sumasalamin ng mga bagay at tumatalbok pabalik sa direksyon ng Boe-Bot. Ang mga mata ng Boe-Bot ay ang mga infrared detector. Ang mga infrared detector ay nagpapadala ng mga signal na nagpapahiwatig kung nakakita o hindi nila nakita ang infrared na nakalarawan sa isang bagay. Ang utak ng Boe-Bot, ang BASIC Stamp, ay gumagawa ng mga desisyon at pinapatakbo ang mga servo motor batay sa input ng sensor na ito. Larawan 7-1 Pagtuklas ng Bagay na may mga IR Headlight Ang mga detektor ng IR ay may built-in na mga filter na salamin sa mata na pinapayagan ang napakakaunting ilaw maliban sa 980 nm infrared na nais naming tuklasin gamit ang panloob na sensor ng photodiode. Ang infrared detector ay mayroon ding isang electronic filter na pinapayagan lamang ang mga signal sa paligid ng 38.5 kHz na dumaan. Sa madaling salita, ang detektor ay naghahanap lamang ng infrared na kumikislap sa at off 38, 500 beses bawat segundo. Pinipigilan nito ang pagkagambala ng IR mula sa mga karaniwang mapagkukunan tulad ng sikat ng araw at pag-iilaw sa panloob. Ang sikat ng araw ay pagkagambala ng DC (0 Hz), at ang pag-iilaw sa panloob ay may posibilidad na mag-flash on at off sa alinman sa 100 o 120 Hz, depende sa pangunahing mapagkukunan ng kuryente sa rehiyon. Dahil ang 120 Hz ay nasa labas ng dalas ng 38.5 kHz band pass ng elektronikong filter, ganap na hindi ito pinapansin ng mga IR detector.

-Paralax Student Guide

Hakbang 3: Pag-iipon ng IR LED's

Pagtitipon ng IR LED's
Pagtitipon ng IR LED's

Ipasok ang IR LED sa mas malaking bahagi ng pambalot

Isara ang malinaw na bahagi ng LED na may mas maliit na bahagi ng pambalot

Hakbang 4: Pagsubok ng Mga Pares na Infrared - Circuit

Pagsubok ng Mga Infrared na Pares - Circuit
Pagsubok ng Mga Infrared na Pares - Circuit
Pagsubok ng Mga Infrared na Pares - Circuit
Pagsubok ng Mga Infrared na Pares - Circuit

Bago kami lumalim sa anumang bagay, susubukan namin upang matiyak na gagana ang pares ng IR (Isang infrared LED at isang infrared detector).

Magsimula sa pamamagitan ng pagbuo ng circuit sa itaas sa breadboard na naka-mount sa tuktok ng iyong Boe-Bot

Hakbang 5: Pagsubok ng Mga Pares na Infrared - Pangunahing Code

Siyempre, kakailanganin naming magsulat ng code upang gumana ang aming mga pares ng IR

Upang gawin ito, gagamitin ang FREQOUT na utos. Ang utos na ito ay idinisenyo para sa mga audio tone, subalit maaari itong magamit upang makabuo ng mga frequency sa infrared range. Para sa pagsubok na ito gagamitin namin ang utos:

FREQOUT 8, 1, 38500

magpapadala ito ng 38.5 kHz dalas na tumatagal ng 1 ms hanggang P8. Ang infrared LED circuit na konektado sa P8 ay mag-broadcast ng dalas na ito. Kung ang infrared light ay masasalamin pabalik sa Boe-Bot ng isang bagay sa daanan nito, ang infrared detector ay magpapadala sa BASIC Stamp ng isang senyas upang ipaalam na nakita ang nasasalamin na ilaw na infrared.

Ang susi sa paggawa ng trabaho ng pares ng IR ay upang magpadala ng 1 ms ng 38.5 kHz FREQOUT at iimbak kaagad ang output ng IR detector sa isang variable.

Ipinapakita ng halimbawang ito ang pagtatago ng halaga ng IR Detector sa isang medyo variable na pinangalanang irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

Ang estado ng output ng IR detector kapag nakakita ito ng walang signal ng IR na mataas. Kapag nakita ng IR detector ang 38500 Hz na harmonic na nasasalamin ng isang bagay, ang output nito ay mababa. Ang output ng IR detector ay mananatiling mababa lamang para sa isang maliit na bahagi ng isang millisecond matapos ang utos ng FREQOUT ay tapos na sa pagpapadala ng maayos, kaya mahalaga na maiimbak ang output ng IR detector sa isang variable kaagad pagkatapos maipadala ang utos ng FREQOUT. Ang halagang nakaimbak ng variable ay maaaring ipakita sa Debug Terminal o magamit para sa mga desisyon sa pag-navigate ng Boe-Bot.

Hakbang 6: Pagsubok ng Mga Pares na Infrared - Hardware + Software

Pagsubok ng Mga Pares na Infrared - Hardware + Software
Pagsubok ng Mga Pares na Infrared - Hardware + Software

Ngayong alam mo na ang mga pangunahing kaalaman, maaari naming pagsamahin ang hardware at Software upang subukan ang isang pares nang magkasama at makakuha ng feedback na real-time mula sa nakita ng IR Pair

Maaari mong subukan at gawin ang iyong code mismo, o gamitin ang code sa ibaba

'{$ STAMP BS2}

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

  1. Iwanan ang Boe-Bot na konektado sa serial cable, dahil gagamitin mo ang DEBUG Terminal upang subukan ang iyong pares ng IR.
  2. Maglagay ng isang bagay, tulad ng iyong kamay o isang sheet ng papel, halos isang pulgada mula sa kaliwang pares ng IR
  3. I-verify na kapag inilagay mo ang isang bagay sa harap ng pares ng IR ang Debug Terminal ay nagpapakita ng isang 0, at kapag tinanggal mo ang bagay mula sa harap ng pares ng IR, nagpapakita ito ng 1.
  4. Kung ang Debug Terminal ay hindi nagpapakita ng mga inaasahang halaga, subukan ang mga hakbang sa Hakbang sa Pag-shoot ng Troubles.

Hakbang 7: Pag-shoot ng Problema (Para sa Mga Isyu Na May Huling Hakbang)

Nagpapakita ang DEBUG Terminal ng hindi inaasahang mga halaga

Suriin ang circuit para sa mga maikli, maling lugar o nawawalang mga konektor, napinsalang mga sangkap, maling resistors, o anumang iba pang nakikitang isyu

Suriin ang programa mula sa mga error na lohikal o syntax - Kung gumamit ka ng iyong sariling code para sa huling hakbang, isaalang-alang ang paggamit ng ibinigay na code

Palaging nakakakuha ng 0, kahit na walang mga bagay na inilalagay sa harap ng Boe-Bot

Suriin kung mayroong anumang mga kalapit na bagay na sumasalamin ng infrared signal. Ang mesa sa harap ng Boe-Bot ay maaaring maging sanhi. Ilipat ang Boe-Bot sa bukas na espasyo upang ang IR LED at detector ay hindi maaaring sumalamin sa anumang kalapit na bagay.

Ang pagbabasa ay 1 halos lahat ng oras kapag walang object sa harap ng Boe-Bot, ngunit pumitik sa 0 paminsan-minsan

Maaaring may pagkagambala mula sa isang kalapit na ilaw na fluorescent; Patayin ang anumang malapit na mga ilaw na fluorescent at ulitin ang iyong mga pagsubok. Kung magpapatuloy ang problema, maaaring isiwalat ng hakbang 9 ang problema

Hakbang 8: Pangalawang IR Pair

Pangalawang IR Pair
Pangalawang IR Pair

Ngayon na mayroon ka ng programa para sa kaliwang IR, iyong tungkulin na gawin ang circuit at programa ng tamang IR Pair

  1. Baguhin ang pahayag ng DEBUG, pamagat at mga komento upang mag-refer sa tamang pares ng IR.
  2. Palitan ang variable na pangalan mula sa irDetectLeft patungong irDetectRight. Kakailanganin mong gawin ito sa apat na lugar sa programa.
  3. Baguhin ang Pin argument ng utos na FREQOUT mula 8 hanggang 2.
  4. Baguhin ang pagrehistro ng input na sinusubaybayan ng variable ng irDetectRight mula IN9 hanggang IN0.
  5. Ulitin ang mga hakbang sa pagsubok sa aktibidad na ito para sa tamang pares ng IR; kasama ang IR LED circuit na konektado sa P2 at ang detector ay konektado sa P0.

Hakbang 9: Pagtuklas ng Pamamagitan ng Infrared (Opsyonal)

Pagtuklas ng Infrared Interferensi (Opsyonal)
Pagtuklas ng Infrared Interferensi (Opsyonal)

Kung nakakaranas ka man ng mga isyu sa pagtuklas ng mga senyas na hindi dapat makita o balak mong ipakita ang iyong pagtuklas ng IR sa isang kahaliling lokasyon, baka gusto mong subukan ang pagkagambala.

Ang konsepto ng programang ito sa pagsubok ay medyo simple, nakita mo para sa mga infrared signal nang hindi nagpapadala ng anumang.

Maaari mong gamitin ang eksaktong parehong circuit ngunit kailangan mong baguhin ang code. maaari kang pumili upang sumulat ng iyong sariling code, ngunit maaari mong gamitin ang ibinigay na code sa ibaba:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 KUNG IN9 = 0 O IN0 = 0 THEN DEBUG "Nakita ang pagkagambala" PAUSE 100 LOOP

Kung nakakaranas ka ng pagkagambala, tukuyin ang malamang na mapagkukunan at patayin ito / alisin ito o ilipat kung saan mo pinapatakbo ang iyong Boe-Bot.

Hakbang 10: Pagdaragdag ng Higit pang mga Pares ng IR

Pagdaragdag ng Higit Pang Mga Pares ng IR
Pagdaragdag ng Higit Pang Mga Pares ng IR

Kung nais mo ng higit na kawastuhan sa paggalaw ng iyong Boe-Bot, baka gusto mong magdagdag ng higit pang mga Pares ng IR. 3 Mas mahusay na nagpapabuti sa pagganap kumpara sa dalawa; maaari mong gamitin ang isang gitnang pares upang mag-scan para sa isang direktang balakid, at gumamit ng dalawang panig na IR upang matukoy kung magkano ang likoin. Gayunpaman, ang pagbagsak ng disenyo ng 3 IR na pares ay maaaring malaman mo kapag dumadausdos ka sa isang pader, dahil ginagamit ang gitnang pares ng IR upang makita ang mga hadlang. Upang malutas ang problemang ito, maaari kang magdagdag ng isang pares ng IR sa bawat panig na may mataas na halaga ng paglaban-samakatuwid at ang infrared signal ay makikita lamang kung ang Boe-Bot ay malapit sa gilid o isang pader sa isang banayad na anggulo.

Hakbang 11: Limang IR Pares - Circuit

Limang Pares ng IR - Circuit
Limang Pares ng IR - Circuit

Mag-ingat kapag ididirekta ang dalawang IR LEDs sa gilid habang ang pagikot sa kanila ay maaaring maging sanhi ng paghawak ng mga lead at maging sanhi ng isang maikling circuit.

Hakbang 12: Limang Mga Pares ng IR - Code

Limang Pares ng IR - Code
Limang Pares ng IR - Code

Maaari mong subukang i-program ang iyong Boe-Bot bago gamitin ang code na ito:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Limang IR Pair Deatection Code' Matthew Shaw 'Mayo 8 2019 (Bersyon 7)' Pagtuklas para sa mga bagay at pangunahing pagproseso ng lohikal upang malutas ang mga maze

irDetectLeft VAR Bit 'Variable para sa kaliwa

irDetectCentre VAR Bit 'Variable para sa gitna irDetectRight VAR Bit' Variable para sa kanang irDetectLSide VAR Bit 'Variable para sa left side irDetectRSide VAR Bit' Variable para sa kanang bahagi irDetectLSideFar VAR Bit 'Variable para sa left side low resistensya irDetectRSideFar VAR Bit' na variable

mLoop VAR Word

Lmotor PIN 15 'Ang kaliwang motor ay konektado sa pin 14, dumaan ang mga pulso dito

Rmotor PIN 14 'kanan = 15

'ang bilis ay -> 650-750-850

LFast CON 850 'Conastant para sa kaliwang motor nang buong bilis RFast CON 650' Conastant para sa tamang motor nang buong bilis

LStop CON 750 'Conastant para sa kaliwang motor nang buong bilis

RStop CON 650 'Conastant para sa tamang motor nang buong bilis

LMid CON 830 'Conastant para sa kaliwang motor na may katamtamang bilis

RMid CON 700 'Conastant para sa tamang motor sa katamtamang bilis

LSlow CON 770 'Conastant para sa kaliwang motor sa pinakamaliit na bilis

Ang RSlow CON 730 'Conastant para sa tamang motor sa minimum na bilis

LRev CON 650 'Conastant para sa kaliwang motor sa buong bilis ng pabaliktad

RRev CON 850 'Conastant para sa kaliwang motor sa buong bilis ng pabaliktad

FREQOUT 7, 1, 38500 'kaliwang bahagi

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'kanang bahagi

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Kaliwa Isara

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'tamang Isara

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'kanang bahagi

irDetectRSideFar = IN0

KUNG irDetectLSide = 0 AT irDetectRSide = 0 THEN pangunahing 'PAGSIMULA SA utos iwagaywas ang iyong mga kamay sa dalawang mga detektor ng panig upang simulan ang programa

Pangunahing:

PAUSE 1000 GAWIN

PULSOUT Lmotor, ang kaliwang motor ng LFast ay tumatakbo sa buong bilis

PULSOUT Rmotor, RFast 'Right motor ay tumatakbo sa buong bilis

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Kaliwa Isara

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'kanang bahagi

irDetectRSide = IN0

KUNG irDetectLSide = 0 AT irDetectRSide = 1 THEN

GAWIN PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5 KUNG irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Kaliwa Isara

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'kanang bahagi

irDetectRight = IN2

LOOP HANGGANG sa irDetectLSide = 1 O irDetectRSide = 0

ELSEIF irDetectLSide = 1 AT irDetectRSide = 0 TAPOS

GAWIN PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5 KUNG irDetectCentre = 0 THEN cent

FREQOUT 10, 1, 38500 'Kaliwa Isara

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'kanang bahagi

irDetectRight = IN2

TINGNAN HANGGANG sa irDetectLSide = 0 O irDetectRSide = 1

'TAPUSIN KUNG

KUNG irDetectCentre = 0 NOON 'MAGSIMULA

FREQOUT 7, 1, 38500 'kaliwang bahagi irDetectLeft = IN8

FREQOUT 6, 1, 38500 'center

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

I-pause ang 1000 'pause upang ipakita ang nakita na signal

KUNG (irDetectLeft = 1 AT irDetectRight = 0) Pagkatapos 'suriin ang tagal

Kaliwa ang GOSUB

ELSEIF (irDetectLeft = 0 AT irDetectRight = 1) TAPOS

Pag-kanan ng GOSUB

ELSEIF (irDetectLeft = 1 AT irDetectRight = 1) TAPOS

GOSUB turnDecide

IBA PA

GOSUB turnReverse

TAPUSIN KUNG

ENDIF 'END

LOOP

WAKAS

lumiko pakaliwa:

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

lumiko pakanan:

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

BUMALIK

turnReverse:

PARA mLoop = 0 TO 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 SA SUSUNOD NA PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCent, 38500 irDetectRight = IN0 LOOP HANGGANG IN9 = 1

BUMALIK

turnDecide: 'Gumagamit ng mas mababang pagtutol upang makita ang karagdagang

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'kanang bahagi

irDetectRSideFar = IN0

KUNG (irDetectLSideFar = 1 AT irDetectRSideFar = 0) Pagkatapos 'suriin ang tagal

Kaliwa ang GOSUB

ELSEIF (irDetectLSideFar = 0 AT irDetectRSideFar = 1) THEN

Pag-kanan ng GOSUB

ELSEIF (irDetectLSideFar = 1 AT irDetectRSideFar = 1) THEN

Kaliwa ang GOSUB

IBA PA

GOSUB turnReverse

TAPUSIN KUNG

BUMALIK

Inirerekumendang: