Satura rādītājs:

Boe-Bot ar infrasarkanajiem detektoriem: 12 soļi (ar attēliem)
Boe-Bot ar infrasarkanajiem detektoriem: 12 soļi (ar attēliem)

Video: Boe-Bot ar infrasarkanajiem detektoriem: 12 soļi (ar attēliem)

Video: Boe-Bot ar infrasarkanajiem detektoriem: 12 soļi (ar attēliem)
Video: Boe-Bot robot with Arduino shield robot swarm task 2024, Novembris
Anonim
Boe-Bot ar infrasarkanajiem detektoriem
Boe-Bot ar infrasarkanajiem detektoriem

Šī pamācība parādīs, kā izveidot un kodēt Boe-Bot, kas var pārvietoties labirintā, izmantojot infrasarkano staru detektorus, lai izvairītos no šķēršļiem. Šis ir viegli izpildāms ceļvedis, kas ļauj viegli veikt izmaiņas atbilstoši jūsu vajadzībām. Tam nepieciešama pamatzināšanas par shēmām un programmēšanu. Šim projektam jums būs nepieciešama BASIC Stamp IDE programmatūra. Bezmaksas lejupielādei šeit. Kā arī Boe-Bot robots

1. darbība. Resursi

Elektroniskās sastāvdaļas

Boe -Bot ar savienotāja kabeli Parallax Store - BoeBot komplekts

5 infrasarkanās gaismas diodes paralaksu veikals - IR raidītāju montāžas komplekts

5 Infrasarkanā vairoga mezgli

5 infrasarkano staru detektori Parallax Store - BoeBot IR uztvērējs

Rezistori

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

Elektroinstalācijas asorti ABRA Electronics - 22 gabarītu vads

3 gaismas diodes ABRA Electronics - 5 mm sarkana gaismas diode

Atbalsts

Dators

BASIC Zīmogu redaktors - (bezmaksas programmatūra)

Rīki

Stiepļu griezējs ABRA Electronics - stieples griezējs (pēc izvēles)

Stiepļu noņēmējs ABRA Electronics - Stiepļu noņēmējs

Dažādi

Sienas (labirinta celtniecībai)

2. darbība. Izpratne par infrasarkano staru noteikšanas darbību (pēc izvēles)

Izpratne par infrasarkano staru noteikšanas darbību (pēc izvēles)
Izpratne par infrasarkano staru noteikšanas darbību (pēc izvēles)

Infrasarkanie lukturi

Infrasarkano objektu noteikšanas sistēma, kuru mēs veidosim uz Boe-Bot, vairākos aspektos ir kā automašīnas lukturi. Kad automašīnas priekšējo lukturu gaisma atspoguļo šķēršļus, jūsu acis atklāj šķēršļus un jūsu smadzenes tos apstrādā un liek jūsu ķermenim atbilstoši vadīt automašīnu. Boe-Bot priekšējiem lukturiem izmantos infrasarkanās gaismas diodes. Tie izstaro infrasarkano staru, un dažos gadījumos infrasarkanais starojums atstarojas no objektiem un atlec Boe-Bot virzienā. Boe-Bot acis ir infrasarkanie detektori. Infrasarkanie detektori sūta signālus, norādot, vai tie nosaka no objekta atstaroto infrasarkano staru. Boe-Bot smadzenes, BASIC Stamp, pieņem lēmumus un darbina servodzinējus, pamatojoties uz šo sensora ieeju. 7-1. Attēls Objektu noteikšana ar IR priekšējiem lukturiem IR detektoros ir iebūvēti optiskie filtri, kas nodrošina ļoti maz gaismas, izņemot 980 nm infrasarkano staru, ko vēlamies noteikt ar tā iekšējo fotodiodes sensoru. Infrasarkanajam detektoram ir arī elektronisks filtrs, kas ļauj iziet tikai aptuveni 38,5 kHz signāliem. Citiem vārdiem sakot, detektors meklē tikai infrasarkano staru, kas mirgo 38 500 reizes sekundē. Tas novērš IS traucējumus no tādiem izplatītiem avotiem kā saules gaisma un iekštelpu apgaismojums. Saules gaisma ir līdzstrāvas traucējumi (0 Hz), un iekštelpu apgaismojums mēdz ieslēgties un izslēgties ar 100 vai 120 Hz frekvenci atkarībā no reģiona galvenā barošanas avota. Tā kā 120 Hz atrodas ārpus elektroniskā filtra 38,5 kHz joslas caurlaides frekvences, IR detektori to pilnībā ignorē.

-Paralaksa studentu ceļvedis

3. solis: IR gaismas diožu montāža

IR LED montāža
IR LED montāža

Ievietojiet IR gaismas diodi korpusa lielākajā daļā

Pievienojiet gaismas diodes caurspīdīgo daļu ar mazāko korpusa daļu

4. solis: Infrasarkano staru pāru pārbaude - ķēde

Infrasarkano staru pāru pārbaude - ķēde
Infrasarkano staru pāru pārbaude - ķēde
Infrasarkano staru pāru pārbaude - ķēde
Infrasarkano staru pāru pārbaude - ķēde

Pirms kaut kā pārāk dziļi iedziļināties, mēs pārbaudīsim, vai IR pāris darbojas (viens infrasarkanais LED un viens infrasarkanais detektors).

Sāciet, izveidojot iepriekš minēto ķēdi uz maizes dēļa, kas uzstādīts jūsu Boe-Bot augšpusē

5. solis: Infrasarkano staru pāru pārbaude - pamata kods

Protams, mums būs jāraksta kods, lai mūsu IR pāri darbotos

Lai to izdarītu, tiks izmantota komanda FREQOUT. Šī komanda bija paredzēta audio signāliem, tomēr to var izmantot, lai radītu infrasarkanā diapazona frekvences. Šim testam mēs izmantosim komandu:

FREQOUT 8, 1, 38500

tas uz P8 nosūtīs 38,5 kHz frekvenci, kas ilgst 1 ms. Infrasarkanā LED ķēde, kas savienota ar P8, pārraidīs šo frekvenci. Ja infrasarkano gaismu atstaro atpakaļ Boe-Bot objekts, kas atrodas tā ceļā, infrasarkanais detektors nosūtīs BASIC zīmoga signālu, lai informētu, ka atstarotā infrasarkanā gaisma ir konstatēta.

Galvenais, lai IR pāris darbotos, ir nosūtīt 1 ms 38,5 kHz FREQOUT un nekavējoties saglabāt IR detektora izeju mainīgā.

Šis piemērs parāda IR detektora vērtības saglabāšanu bitu mainīgajā ar nosaukumu irDectectLeft

FREQOUT 8, 1, 38500

irDetectLeft = IN9

IR detektora izejas stāvoklis, kad neredz IR signālu, ir augsts. Kad IR detektors redz 38500 Hz harmoniku, ko atspoguļo objekts, tā izvade ir zema. Pēc detektora FREQOUT nosūtīšanas IS detektora izeja paliek zema tikai milisekundes daļu, tāpēc ir svarīgi saglabāt IR detektora izeju mainīgā uzreiz pēc FREQOUT komandas nosūtīšanas. Mainīgā saglabāto vērtību pēc tam var parādīt atkļūdošanas terminālī vai izmantot Boe-Bot navigācijas lēmumu pieņemšanai.

6. darbība. Infrasarkano staru pāru pārbaude - aparatūra + programmatūra

Infrasarkano staru pāru pārbaude - aparatūra + programmatūra
Infrasarkano staru pāru pārbaude - aparatūra + programmatūra

Tagad, kad jūs zināt pamatus, mēs varam apvienot aparatūru un programmatūru, lai kopā pārbaudītu pāri un iegūtu reāllaika atsauksmes par to, ko IR pāris nosaka

Jūs varat mēģināt izveidot kodu pats vai izmantot zemāk esošo kodu

'{$ STAMP BS2}

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

  1. Atstājiet Boe-Bot savienotu ar seriālo kabeli, jo jūs izmantosit DEBUG termināli, lai pārbaudītu savu IR pāri.
  2. Novietojiet priekšmetu, piemēram, roku vai papīra lapu, apmēram collas attālumā no kreisā IR pāra
  3. Pārliecinieties, ka, novietojot objektu IS pāra priekšā, atkļūdošanas terminālis parāda 0, un, noņemot objektu no IR pāra, tas parāda 1.
  4. Ja atkļūdošanas terminālī netiek parādītas paredzamās vērtības, izmēģiniet problēmu novēršanas darbības.

7. darbība. Problēmu novēršana (ja rodas pēdējās darbības problēmas)

DEBUG terminālis parāda negaidītas vērtības

Pārbaudiet, vai ķēdē nav īssavienojumu, nepareizi novietoti vai trūkst savienotāju, bojāti komponenti, nepareizi rezistori vai kāda cita redzama problēma

Pārbaudiet, vai programmā nav loģisku vai sintakses kļūdu - ja pēdējā posmā izmantojāt savu kodu, apsveriet iespēju izmantot norādīto kodu

Vienmēr iegūstot 0, pat ja objektu nav novietots Boe-Bot priekšā

Pārbaudiet, vai tuvumā atrodas objekti, kas atspoguļo infrasarkano signālu. Cēlonis varētu būt galds Boe-Bot priekšā. Pārvietojiet Boe-Bot atklātā telpā, lai IR gaismas diode un detektors nevarētu atstarot nevienu tuvumā esošu objektu.

Lasīšana notiek 1 reizi, kad Boe-Bot priekšā nav objekta, bet laiku pa laikam mirgo līdz 0

Var rasties traucējumi no tuvumā esošās dienasgaismas gaismas; Izslēdziet tuvumā esošās dienasgaismas lampas un atkārtojiet testus. Ja problēma joprojām pastāv, 9. darbība var atklāt problēmu

8. solis: otrais IR pāris

Otrais IR pāris
Otrais IR pāris

Tagad, kad jums ir kreisā IS programma, ir jūsu kārta izveidot ķēdi un ieprogrammēt pareizo IR pāri

  1. Mainiet DEBUG paziņojumu, nosaukumu un komentārus, lai atsauktos uz labo IR pāri.
  2. Mainiet mainīgā nosaukumu no irDetectLeft uz irDetectRight. Jums tas būs jādara četrās programmas vietās.
  3. Mainiet komandas FREQOUT Pin pin argumentu no 8 uz 2.
  4. Mainiet ievades reģistru, ko uzrauga mainīgais irDetectRight, no IN9 uz IN0.
  5. Atkārtojiet testēšanas darbības šajā darbībā labajam IR pārim; ar IR LED ķēdi, kas savienota ar P2, un detektoru ar P0.

9. darbība. Infrasarkano staru traucējumu noteikšana (pēc izvēles)

Infrasarkano staru traucējumu noteikšana (pēc izvēles)
Infrasarkano staru traucējumu noteikšana (pēc izvēles)

Neatkarīgi no tā, vai rodas problēmas ar tādu signālu noteikšanu, kurus nevajadzētu atklāt, vai plānojat demonstrēt savu IR noteikšanu citā vietā, iespējams, vēlēsities pārbaudīt traucējumus.

Šīs testēšanas programmas koncepcija ir diezgan vienkārša, jūs atklājat infrasarkanos signālus, tos nesūtot.

Jūs varat izmantot tieši to pašu shēmu, bet jums būs jāmaina kods. jūs varat izvēlēties rakstīt savu kodu, bet varat izmantot tālāk norādīto kodu:

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR bits DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 VAI IN0 = 0 THEN DEBUG "Traucējumi konstatēti" PAUSE 100 LOOP

Ja rodas traucējumi, nosakiet iespējamo avotu un izslēdziet/noņemiet to vai pārvietojiet vietu, kur izmantojat savu Boe-Bot.

10. darbība. Papildu IR pāru pievienošana

Papildu IR pāru pievienošana
Papildu IR pāru pievienošana

Ja vēlaties lielāku precizitāti Boe-Bot kustībā, iespējams, vēlēsities pievienot vairāk IR pāru. 3 ievērojami uzlabo veiktspēju salīdzinājumā ar diviem; jūs varat izmantot centra pāri, lai meklētu tiešus šķēršļus, un izmantot divus sānu IR, lai noteiktu, cik daudz jāgriežas. Tomēr 3 IR pāru konstrukcijas sabrukums ir tāds, ka jūs, iespējams, zināt, kad slīdat pret sienu, jo centrālais IR pāris tiek izmantots šķēršļu noteikšanai. Lai atrisinātu šo problēmu, katrai pusei varat pievienot infrasarkano staru pāri ar augstu pretestības vērtību, tāpēc infrasarkanais signāls tiks atklāts tikai tad, ja Boe-Bot ir tuvu sānam vai maigā leņķī.

11. solis: pieci IR pāri - ķēde

Pieci IR pāri - ķēde
Pieci IR pāri - ķēde

Esiet piesardzīgs, novirzot abas IR gaismas diodes uz sāniem, jo to pagriešana var izraisīt vadu pieskārienu un īssavienojumu.

12. solis: pieci IR pāri - kods

Pieci IR pāri - kods
Pieci IR pāri - kods

Pirms šī koda izmantošanas, iespējams, vēlēsities programmēt savu Boe-Bot:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw ', 2019. gada 8. maijs (7. versija)' Objektu noteikšana un pamata loģiskā apstrāde, lai atrisinātu labirintus

irDetectLeft VAR Bit 'Mainīgais pa kreisi

irDetectCentre VAR Bit 'Mainīgais centrālajam irDetectRight VAR Bit' Mainīgais labajam irDetectLSide VAR Bit 'Mainīgais kreisajai pusei irDetectRSide VAR Bit' Mainīgais labajai pusei irDetectLSideFar VAR Bit 'Mainīgais kreisās puses zemas pretestības irDetectRSideFar VAR Bit' Mainīgais labajai pusei

mLoop VAR vārds

Lmotora PIN 15 'Kreisais motors ir savienots ar tapu 14, impulsi iet šeit

Rotora PIN 14 'pa labi = 15

"ātrumi ir-> 650-750-850

LFast CON 850 'Conastant kreisajam motoram ar pilnu ātrumu RFast CON 650' Conastant labajam motoram ar pilnu ātrumu

LStop CON 750 'Konstants kreisajam motoram ar pilnu ātrumu

RStop CON 650 'Konstatants labajam motoram ar pilnu ātrumu

LMid CON 830 'Konstants kreisajam motoram vidējā ātrumā

RMid CON 700 'Konstatants labajam motoram vidējā ātrumā

LSlow CON 770 'Konstants kreisajam motoram ar minimālu ātrumu

RSlow CON 730 'Konstants pareizajam motoram ar minimālu ātrumu

LRev CON 650 'Konstants kreisajam motoram ar pilnu ātrumu atpakaļgaitā

RRev CON 850 'Konstants kreisajam motoram ar pilnu ātrumu atpakaļgaitā

FREQOUT 7, 1, 38500 'kreisā puse

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'centrs

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'labā puse

irDetectRight = IN2

FREQOUT 10, 1, 38500 'Aizvērt pa kreisi

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'pa labi Aizvērt

irDetectRSide = IN0

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'labā puse

irDetectRSideFar = IN0

IF irDetectLSide = 0 UN irDetectRSide = 0 TAD galvenā 'STARTING COMMAND' lai sāktu programmu, pamāj ar rokām gar abiem sānu detektoriem

Galvenais:

PAUZE 1000 DARĪT

PULSOUT Lmotor, LFast 'kreisais motors darbojas ar pilnu ātrumu

PULSOUT Rmotor, RFast 'Labais motors darbojas ar pilnu ātrumu

FREQOUT 6, 1, 38500 'centrs

irDetectCentre = IN5

FREQOUT 10, 1, 38500 'Aizvērt pa kreisi

irDetectLSide = IN11

FREQOUT 1, 1, 38500 'labā puse

irDetectRSide = IN0

IF irDetectLSide = 0 UN irDetectRSide = 1 THEN

DO PULSOUT Lmotor, LFast

FREQOUT 6, 1, 38500 'centrs

irDetectCentre = IN5 IF irDetectCentre = 0 THEN centi

FREQOUT 10, 1, 38500 'Aizvērt pa kreisi

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'labā puse

irDetectRight = IN2

CILPT LĪDZ IRDetectLSide = 1 VAI irDetectRSide = 0

ELSEIF irDetectLSide = 1 UN irDetectRSide = 0 THEN

DO PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'centrs

irDetectCentre = IN5 IF irDetectCentre = 0 THEN centi

FREQOUT 10, 1, 38500 'Aizvērt pa kreisi

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'labā puse

irDetectRight = IN2

CILPT LĪDZ IRDetectLSide = 0 VAI IRDetectRSide = 1

“ENDIF

IF irDetectCentre = 0 THEN 'START

FREQOUT 7, 1, 38500 'kreisā puse irDetectLeft = IN8

FREQOUT 6, 1, 38500 'centrs

irDetectCentre = IN5

FREQOUT 3, 1, 38500

irDetectRight = IN2

PAUSE 1000 'pauze, lai parādītu konstatēto signālu

IF (irDetectLeft = 1 UN irDetectRight = 0) THEN 'novērtē ilgumu

GOSUB pagrieziens pa kreisi

ELSEIF (irDetectLeft = 0 UN irDetectRight = 1) TAD

GOSUB pagrieziena tiesības

ELSEIF (irDetectLeft = 1 UN irDetectRight = 1) TAD

GOSUB turnDecide

CITI

GOSUB pagrieziens

ENDIF

ENDIF 'END

LOOP

BEIGAS

pagriezies pa kreisi:

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

nogriezieties pa labi:

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

ATGRIEZTIES

turnReverse:

FOR mLoop = 0 līdz 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 2 INDETC, 38500 irDetectRight = IN0 LOOP LĪDZ IN9 = 1

ATGRIEZTIES

turnDecide: 'izmanto zemāku pretestību, lai redzētu tālāk

FREQOUT 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'labā puse

irDetectRSideFar = IN0

IF (irDetectLSideFar = 1 UN irDetectRSideFar = 0) THEN 'novērtē ilgumu

GOSUB pagrieziens pa kreisi

ELSEIF (irDetectLSideFar = 0 UN irDetectRSideFar = 1) TAD

GOSUB pagrieziena tiesības

ELSEIF (irDetectLSideFar = 1 UN irDetectRSideFar = 1) TAD

GOSUB pagrieziens pa kreisi

CITI

GOSUB pagrieziens

ENDIF

ATGRIEZTIES

Ieteicams: