Turinys:
Video: Buferių kūrimas robotui: 4 žingsniai
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Mano 11 klasės kompiuterių inžinerijos kursuose mums buvo duota užduotis priversti mūsų robotą eiti per labirintą. Norint kontroliuoti, ar jis eina tiesiai, pasuka į kairę ar į dešinę, mūsų buvo paprašyta padaryti buferius. Tokiu būdu, jei robotas palies sieną ir atsitrenks į dešinįjį buferį, robotas pasuks į kairę, o atsitrenkus į kairįjį buferį - į dešinę. Taigi iš esmės mūsų užduotis buvo sukurti buferį, kurį būtų galima įstumti, kad būtų galima apsisukti, ir man taip pat reikia grįžti atgal, kad jis nuolat neįsijungtų. Tačiau, norint nustatyti buferį, taip pat reikia nustatyti kodą ir grandinę. Atlikite šiuos veiksmus, kad sužinotumėte, kaip padaryti savo buferį robotui.
1 žingsnis: grandinė
Kad buferiai veiktų, turite sukurti grandinę savo roboto viršuje esančioje duonos lentoje.
(vadovaukitės aukščiau esančia nuotrauka, kad gautumėte 2 buferius)
Reikalingos medžiagos
- 2 mažos lemputės (kad buferiai veiktų)
- 8 laidai
- 2 rudos-juodos-geltonos spalvos rezistoriai
- 2 raudonai raudonai rudi rezistoriai
Kai kuriuos dalykus reikia nepamiršti
- Vss yra „žemė“, nes jis yra lygus nuliui, o Vdd yra lygus 1
- Kai grandinė veikia, reikšmė yra 0, kai ji neveikia, vertė yra 1
- Plokščioji šviesos diodo pusė yra neigiama, o kita - teigiama
Dažniausios klaidos grandinėse
- LED yra neteisingas būdas
- Šviesos diodas, rezistorius ir viela nėra išdėstyti tame pačiame stulpelyje
- LED nebeveikia
2 žingsnis: kodas
Kodas:
„{$ STAMP BS2}“{$ PBASIC 2.5}
LBump PIN 11
„RBump“PIN kodas 10
LMOTOR PIN 15
„RMOTOR PIN“14
„RFast CON 650“
LFast CON 850
„RSlow CON 700“
„LSLOW CON 800“
„MStop CON 750“
RFastRev CON 850
„LFastRev CON 650“
„RSlowRev CON 800“
„LSlowRev CON 700“
„MLoopC VAR Word“skirtas … Kitas kintamasis iki 65000 tūkst
DARYTI
„GOSUB Forwardfast“pirmyn
IF IN10 = 0 THEN ', jei du įvesties 10 laidai yra paspausti, pasukite į kairę
„GOSUB TurnLeft90“
ELSEIF IN11 = 0 THEN ', jei paspausti du įvesties 11 laidai, tada pasukite į dešinę
„GOSUB TurnRight90“
ENDIF
KILPAS
„TurnRight90“:
„Subprocedūra pasukti 90 laipsnių į dešinę
'**********************************************************
AUKŠTAS 1
MAŽAI 0
MLoopC = nuo 1 iki 22
„PULSOUT LMOTOR“, „LfastRev“juda vienu impulsu į priekį
PULSOUT RMOTOR, Rfast 'naudojant kaiščius ir konstantas
PAUZĖ 20
„20 mS leidžia robotui judėti“prieš KITĄ impulsą
KITAS
GRĄŽINTI
'*********************************************************
„TurnLeft90“:
„Subprocedūra pasukti 90 laipsnių į dešinę
'********************************************************
AUKŠTAS 0
ŽEMA 1
MLoopC = nuo 1 iki 22
„PULSOUT LMOTOR“, „Lfast“juda vienu impulsu į priekį
PULSOUT RMOTOR, RfastRev “naudojant kaiščius ir konstantas
PAUSE 20 '20mS leidžia robotui judėti' prieš KITĄ impulsą
KITAS
GRĄŽINTI
'***********************************************************
„ForwardFast“:
„Papildoma procedūra, skirta robotui greitai judėti į priekį vienu kvadratu
'**********************************************************
MLoopC = nuo 1 iki 70
PULSOUT LMOTOR, L Greitas PULSOUT
„RMOTOR“, „RFast“
PAUZĖ 20
KITAS
GRĄŽINTI
Trumpa apžvalga
Šio kodo tikslas yra užprogramuoti robotą pasukti į kairę, kai paspaudžiami dešiniai laidai (buferis), ir pasukti į dešinę, kai paspaudžiami kairieji laidai (buferis).
Ką reiškia kodas?
Prieš atsakydamas į šį klausimą, turėtumėte žinoti, ką reiškia kai kurie šioje programoje naudojami kodai.
GOSUB - taigi sub reiškia „eiti į paprogramę“(paprograma turi būti nurodyta jūsų kode)
ENDIF - naudojama užbaigti kelių eilučių komandą IF
_
paaiškina kodo reikšmę ….
DOGOSUB Persiųsti į priekį
- Ar liepia robotui eiti į priekį iškart, kai jis įjungtas
IF IN10 = 0 THEN
„GOSUB TurnLeft90“
- sako, kad jei du įvesties 10 laidai (dešinysis buferis) susilies, robotas pasuks į kairę 90 kampu.
ELSEIF
IN11 = 0 THAN GOSUB TurnRight90
- sako, kad jei du įvesties 11 laidai (kairysis buferis) susilies, robotas pasuks į dešinę 90 kampu.
„TurnRight90“: „Subprocedūra pasukti 90 laipsnių į dešinę
'**********************************************************
AUKŠTAS 1
MAŽAI 0
MLoopC = nuo 1 iki 22
PULSOUT LMOTOR, LfastRev
PULSOUT RMOTOR, „Rfast“
PAUZĖ 20
KITAS GRĄŽINIMAS '' **********
- tai yra paprogramės pavyzdys, kuris naudojamas, kad nereikėtų kartoti to paties ilgo kodo vėl ir vėl. tokiu būdu jūsų kodas atrodo tvarkingesnis ir sudėtingesnis.
- aukštas 1 / žemas nulis reiškia, kad robotui pasukus į dešinę (kairieji laidai paliečia), šviesos diodas įsijungia, todėl žinote, kad viskas veikia.
3 žingsnis: buferiai (reikalingos medžiagos)
Norėdami pagaminti buferį, jums reikės…
- 4 „Popsicle“lazdos pagrindinei konstrukcijai ir 2 „Popsicle“lazdelės buferiui pritvirtinti prie roboto
- 4 kempinės gabaliukai
- 4 sąvaržėlės
- taigi aliuminio folija
- 4 laidai (prijungti prie duonos lentos, paaiškinta 1 žingsnyje apie grandinę)
- karšto klijų pistoletas ir klijų lazdelės
- izoliacine juosta
4 žingsnis: buferių surinkimas
Norėdami pagaminti vieną buferį, paimkite 2 lazdeles ir nupjaukite suapvalintus galus (kaip pažymėta 1 paveiksle). Šios lazdelės bus buferio viršutinė ir apatinė dalys. Kad laidai liestųsi ir neliestų iškart, reikia kempinės. Paimkite kempinę ir nupjaukite 2 mažus kvadratėlius (kaip antrame paveikslėlyje, parodytame aukščiau). Tada karštu klijų pistoletu paimkite 1 popsiko lazdelę ir įklijuokite 1 kempinės kvadratą kairėje pusėje ir vieną kempinę dešinėje pusėje (kaip nuorodą naudokite 3 paveikslėlį). Tada paimkite 1 vielą ir apvyniokite vieną vielos galo galą aliuminio folija. Uždėkite vielą ant lazdelės vidurio ir užfiksuokite sąvaržėle. Pakartokite šį veiksmą su antrąja viela ir lazdelės lazdele. Paskutinį kartą priklijuokite popsicle be kempinių, prie popsicle su kempinėmis (kaip parodyta 3 paveikslėlyje aukščiau). Dabar jūsų pirmasis buferis baigtas
Pakartokite visą šį procesą antrą kartą, kad padarytumėte antrą buferį.
Norėdami pridėti buferius ant roboto, paimkite vieną lazdelę ir priklijuokite prie buferio apačios. Pasukite kairįjį buferį į kairę pusę, o dešinįjį - į dešinę. Buferius priklijavau maskavimo juostele. (4 paveikslėlis yra užbaigti buferiai, pritvirtinti prie roboto).