Turinys:

LEGO robotas važiuoja per labirintą: 9 žingsniai
LEGO robotas važiuoja per labirintą: 9 žingsniai

Video: LEGO robotas važiuoja per labirintą: 9 žingsniai

Video: LEGO robotas važiuoja per labirintą: 9 žingsniai
Video: MANE UŽPUOLĖ PIKTAS ŠUO |VLOG #3 2024, Liepa
Anonim
Image
Image
Roboto bazė
Roboto bazė

Tai paprastas, autonominis robotas, sukurtas važiuoti per labirintą iki išėjimo. Jis pastatytas naudojant „LEGO Mindstorms EV3“. „EV3“programinė įranga veikia kompiuteryje ir sukuria programą, kuri vėliau atsisiunčiama į mikrovaldiklį, vadinamą „EV3 Brick“. Programavimo metodas pagrįstas piktogramomis ir yra aukšto lygio. Tai labai lengva ir universalu.

DALYS

  1. LEGO Mindstorms EV3 rinkinys
  2. LEGO ultragarso jutiklis „Mindstorms EV3“. Jis neįeina į EV3 rinkinį.
  3. Gofruotas kartonas labirintui. Dviejų dėžių turėtų pakakti.
  4. Mažas plono kartono gabalas, padedantis stabilizuoti kai kuriuos kampus ir sienas.
  5. Klijai ir juostelė, skirta sujungti kartono gabalus.
  6. Raudonas sveikinimo atviruko vokas, skirtas identifikuoti išėjimą iš labirinto.

ĮRANKIAI

  1. Naudingas peilis kartonui pjaustyti.
  2. Plieninė liniuotė, padedanti pjaustyti.

BURZO SPRENDIMO METODAS

Yra keletas būdų, kaip naršyti labirintą. Jei jus domina jų studijavimas, jie labai gerai aprašyti šiame Vikipedijos straipsnyje:

Aš pasirinkau kairiosios sienos sekimo taisyklę. Idėja yra ta, kad robotas laikys sieną kairėje pusėje, priimdamas šiuos sprendimus, eidamas per labirintą:

  1. Jei įmanoma pasukti į kairę, padarykite tai.
  2. Priešingu atveju, jei įmanoma, eikite tiesiai.
  3. Jei jis negali eiti į kairę arba tiesiai, jei įmanoma, pasukite į dešinę.
  4. Jei nė vienas iš aukščiau išvardytų dalykų neįmanomas, tai turi būti aklavietė. Apsisuk.

Vienas įspėjimas yra tas, kad metodas gali nepavykti, jei labirinte yra kilpa. Priklausomai nuo kilpos padėties, robotas galėtų nuolat judėti aplink ir aplink kilpą. Galimas šios problemos sprendimas būtų, jei robotas persijungtų į dešiniojo sienos sekimo taisyklę, jei suprastų, kad eina ciklu. Aš neįtraukiau šio patobulinimo į savo projektą.

ROBOTO STATYMO ŽINGSNIAI

Nors „LEGO Mindstorms EV3“yra labai universalus, prie vieno kaladėlės galima prijungti ne daugiau kaip vieną kiekvieno tipo jutiklį. Dvi ar daugiau plytų gali būti surištos grandine, bet aš nenorėjau pirkti kitos plytos, todėl naudoju šiuos jutiklius (vietoj trijų ultragarso jutiklių): infraraudonųjų spindulių jutiklį, spalvų jutiklį ir ultragarso jutiklį. Tai pavyko gerai. Žemiau pateiktos nuotraukų poros parodo, kaip sukurti robotą. Pirmoje kiekvienos poros nuotraukoje matomos reikalingos dalys, o antroje - tos pačios dalys, sujungtos kartu.

1 žingsnis: roboto pagrindas

Roboto bazė
Roboto bazė

Pirmasis žingsnis yra sukurti roboto pagrindą, naudojant parodytas dalis. Roboto bazė parodyta aukštyn kojom. Maža L formos dalis roboto gale yra atrama nugarai. Robotui judant jis slysta. Tai veikia gerai. EV3 komplekte nėra riedėjimo rutulio tipo detalės.

2 žingsnis: pagrindo viršuje

Bazės viršuje
Bazės viršuje
Bazės viršuje
Bazės viršuje
Bazės viršuje
Bazės viršuje

Kiti 3 veiksmai skirti roboto pagrindo viršuje, spalvų jutikliui ir kabeliams, kurie visi yra 10 colių (26 cm) kabeliai

3 žingsnis: infraraudonųjų spindulių ir ultragarso jutikliai

Infraraudonųjų spindulių ir ultragarso jutikliai
Infraraudonųjų spindulių ir ultragarso jutikliai
Infraraudonųjų spindulių ir ultragarso jutikliai
Infraraudonųjų spindulių ir ultragarso jutikliai

Toliau yra infraraudonųjų spindulių jutiklis (kairėje roboto pusėje) ir ultragarsinis jutiklis (dešinėje). Be to, 4 kaiščiai, skirti viršuje pritvirtinti plytą.

Infraraudonųjų spindulių ir ultragarso jutikliai yra vertikaliai, o ne įprastai horizontaliai. Tai leidžia geriau identifikuoti sienų kampus ar galus.

4 žingsnis: Kabeliai

Kabeliai
Kabeliai

Pritvirtinkite plytą ir prijunkite kabelius taip:

  • B prievadas: kairysis didelis variklis.
  • C prievadas: dešinysis didelis variklis.
  • 2 prievadas: ultragarso jutiklis.
  • 3 prievadas: spalvų jutiklis.
  • 4 prievadas: infraraudonųjų spindulių jutiklis.

5 žingsnis: Paskutinis roboto kūrimo žingsnis: dekoravimas

Paskutinis roboto kūrimo žingsnis: dekoravimas
Paskutinis roboto kūrimo žingsnis: dekoravimas
Paskutinis roboto kūrimo žingsnis: dekoravimas
Paskutinis roboto kūrimo žingsnis: dekoravimas
Paskutinis roboto kūrimo žingsnis: dekoravimas
Paskutinis roboto kūrimo žingsnis: dekoravimas

Sparnai ir pelekai skirti tik dekoravimui.

6 veiksmas: programos pseudokodas

  1. Palaukite 3 sekundes ir pasakykite „Eik“.
  2. Pradėkite robotą judėti tiesiai į priekį.
  3. Jei įmanoma pasukti į kairę (t. Y. Jei infraraudonųjų spindulių jutiklis nejaučia šalia esančio objekto), pasakykite „Kairė“ir eikite į kairę.
  4. Eikite į priekį apie 6 cm (15 cm), kad išvengtumėte klaidingo posūkio į kairę. Priežastis ta, kad pasukus robotą jutiklis matytų ilgą erdvę, iš kurios ką tik atėjo, ir robotas manytų, kad turėtų pasukti į kairę, o tai nėra tinkama priemonė. Grįžkite prie 2 veiksmo.
  5. Jei neįmanoma pasukti į kairę, patikrinkite, ką spalvų jutiklis mato prieš robotą.
  6. Jei nėra spalvos (ty nėra objekto), grįžkite prie 2 veiksmo.
  7. Jei spalva yra raudona, tai yra išėjimas. Sustabdykite robotą, paleiskite fanfarą ir sustabdykite programą.
  8. Jei spalva ruda (t. Y. Rudas kartonas priekyje), sustabdykite robotą.

    1. Jei įmanoma pasukti į dešinę (t. Y. Jei ultragarso jutiklis nejaučia šalia esančio objekto), pasakykite „Teisingai“ir eikite į dešinę. Grįžkite prie 2 veiksmo.
    2. Jei neįmanoma pasukti į dešinę, pasakykite „Uh-oh“, atsitraukite maždaug 12,5 cm atstumu ir apsisukite. Grįžkite prie 2 veiksmo.

7 žingsnis: programa

Programa
Programa

LEGO Mindstorms EV3 turi labai patogų piktogramų programavimo metodą. Blokai rodomi kompiuterio ekrano apačioje ir gali būti nuvilkti į programavimo langą, kad būtų sukurta programa. Ekrano kopijoje parodyta šio projekto programa. Blokeliai aprašyti kitame žingsnyje.

Aš negalėjau suprasti, kaip nustatyti programos atsisiuntimą jums, žmonės, todėl blokai aprašyti kitame žingsnyje. Kiekvienas blokas turi parinktis ir parametrus. Tai labai lengva ir universalu. Programos kūrimas ir (arba) pakeitimas pagal jūsų poreikius neturėtų užtrukti daug laiko. Kaip visada, kuriant programą verta periodiškai išsaugoti programą.

„EV3 Brick“gali būti prijungtas prie kompiuterio USB kabeliu, „Wi-Fi“arba „Bluetooth“. Kai jis prijungtas ir įjungtas, tai rodoma mažame lange, esančiame kompiuterio apatiniame dešiniajame EV3 lango kampe. Dešinėje pusėje esantis „EV3“tampa raudonas. Kai šis ekranas nustatytas kaip „Port View“, jis realiu laiku rodo, ką aptinka kiekvienas jutiklis. Tai naudinga eksperimentuojant.

Kuriant šią programą, siūlyčiau dirbti iš kairės į dešinę ir iš viršaus į apačią, o prieš tempdami kitus blokus, padidinti kilpų ir jungiklių blokus. Prieš padidindamas susidūriau su nepatogiomis problemomis, bandydamas įterpti papildomų blokų.

8 žingsnis: programų blokai

  1. Pradedant nuo kairiosios programos pusės, pradinis blokas automatiškai rodomas kuriant programą.
  2. Kitas yra laukimo blokas, suteikiantis mums 3 sekundes, kad pradėjus programą robotą pastatytume prie įėjimo į labirintą.
  3. Garso blokas priverčia robotą pasakyti „Eik“.
  4. „Loop Block“yra didžioji programos dalis. Prieš pradedant įterpti blokus, ekranas turėtų būti sumažintas 4 ar 5 kartus, o šis kilpų blokas turėtų būti padidintas beveik iki dešiniojo programavimo drobės krašto. Vėliau jį galima sumažinti.
  5. Pirmasis blokas kilpos viduje yra „Vairo vairo blokas“, kurio vairas nustatytas į nulį, o galia - į 20. Taip varikliai pradeda veikti tiesiai į priekį mažu greičiu. Didesnis greitis priverstų robotą judėti per toli, kai jis eina į priekį, kalbėdamas tolesniais žingsniais.
  6. Perjungimo blokas infraraudonųjų spindulių jutiklio artumo režimu patikrina, ar yra koks nors objektas, esantis toliau nei 30. Ši vertė atitinka maždaug 9 cm (23 cm) rudo kartono. Jei reikšmė yra didesnė nei 30, vykdomi 7, 8 ir 9 blokai, kitaip programa pereina prie 10 bloko.
  7. Garso blokas priverčia robotą pasakyti „Kairė“.
  8. „Vairo vairo blokas“, kai vairas nustatytas į -45, galia nustatyta į 20, sukimasis nustatytas į 1,26, o stabdymas pabaigoje nustatytas į „Tiesa“. Dėl to robotas pasuka į kairę.
  9. „Vairo valdymo blokas“, kai vairavimas nustatytas į nulį, galia nustatyta į 20, sukimasis nustatytas į 1,2, o stabdymas pabaigoje nustatytas į „Tiesa“. Dėl to robotas eina į priekį apie 6 colius (15 cm), kad išvengtų klaidingo posūkio į kairę.
  10. Spalvų jutiklio matavimo spalvų režime esantis jungiklio blokas patikrina, kokia spalva prieš robotą. Jei nėra spalvos (ty nėra objekto), programa eina į ciklo pabaigą. Jei spalva yra raudona, vykdomi 11, 12 ir 13 langeliai. Jei spalva ruda, programa pereina prie 14 bloko.
  11. A Perkelkite vairo bloką išjungtu režimu, kad sustabdytumėte variklius.
  12. Garso blokas vaidina fanfarus.
  13. Kilpos nutraukimo blokas išeina iš ciklo.
  14. A Perkelkite vairo bloką išjungtu režimu, kad sustabdytumėte variklius.
  15. Perjungimo blokas ultragarso jutiklyje, palyginti atstumo colių režimą, patikrina, ar yra koks nors objektas, esantis toliau nei 8 coliai (20 cm). Jei jis yra didesnis nei 8 coliai, vykdomi 16 ir 17 blokai, kitaip programa pereina prie 18 bloko.
  16. Garso blokas priverčia robotą pasakyti „Teisingai“.
  17. „Vairo vairo blokas“, kai vairas nustatytas į -55, galia nustatyta į -20, apsisukimai nustatyti į 1,1, o stabdymas pabaigoje nustatytas į „Tiesa“. Dėl to robotas sukasi į dešinę.
  18. Garso blokas priverčia robotą pasakyti „Uh-oh“.
  19. Perkėlimo bako blokas, kai kairioji galia nustatyta į -20, galia dešinėn nustatyta į -20, apsisukimai nustatyti į 1, o stabdymas pabaigoje nustatytas kaip tiesa. Dėl to robotas atsitraukia maždaug 5,5 colio (12,5 cm) aukštyje, kad liktų vietos apsisukti.
  20. Perkėlimo bako blokas, kai galia kairėje nustatyta į -20, galia dešinėn nustatyta į 20, sukimasis nustatytas į 1,14, o stabdymas pabaigoje nustatytas kaip tiesa. Dėl to robotas apsisuka.
  21. Prie kilpos išėjimo yra sustabdymo programos blokas.

9 veiksmas: sukurkite labirintą

KURTI MAZĄ
KURTI MAZĄ
KURTI MAZĄ
KURTI MAZĄ
KURTI MAZĄ
KURTI MAZĄ

Labirinte turėtų pakakti dviejų gofruoto kartono dėžių. Labirinto sienas padariau 5 colių (12,5 cm) aukščio, tačiau 4 coliai (10 cm) turėtų veikti taip pat gerai, jei trūksta gofruoto kartono.

Pirma, aš supjaustau dėžutės sienas, 10 colių (25 cm) nuo apačios. Tada aš supjaustiau aplink sienas 5 colius nuo apačios. Tai suteikia keletą 5 colių sienų. Be to, aš supjaustau dėžutės dugną, kad stabilumas būtų maždaug 2,5 cm.

Įvairūs gabalai gali būti supjaustyti ir klijuoti arba užklijuoti juostele, kur reikia, kad susidarytų labirintas. Bet kuriame kelyje su aklavietėmis tarp sienų turi būti 12 colių (30 cm) tarpas. Šis atstumas reikalingas robotui apsisukti.

Kai kuriuos labirinto kampus gali tekti sutvirtinti. Be to, kai kurios tiesios sienos turi būti sulenktos, jei jose yra ištiesintas kartoninis kampas. Mažos plono kartono dalys turėtų būti priklijuotos prie dugno tose vietose, kaip parodyta.

Išėjime yra raudona užtvara, kurią sudaro pusė raudono sveikinimo atviruko voko ir pagrindas, pagamintas iš 2 plono kartono dalių, kaip parodyta.

Vienas įspėjimas - labirintas neturėtų būti didelis. Jei roboto posūkiai yra šiek tiek kampu nuo tinkamo, neatitikimai padidėja po kelių posūkių. Pvz., Jei posūkis į kairę nukrypsta 3 laipsniais, po penkių posūkių į kairę robotas nusileis 15 laipsnių. Didelis labirintas turėtų daugiau posūkių ir ilgesnį kelią nei mažas, o robotas galėtų bėgti į sienas. Turėjau keletą kartų pagroti posūkių nustatymus, kad galėčiau sėkmingai važiuoti net ir nedideliu labirutu, kurį padariau.

BŪSIMI PATVIRTINIMAI

Akivaizdus tolesnis projektas-priversti robotą naršant juo nustatyti tiesioginį kelią per labirintą ir iškart po to važiuoti šiuo tiesioginiu keliu (vengiant aklavietės).

Tai daug sudėtingiau nei dabartinis projektas. Robotas turi prisiminti nuvažiuotą kelią, pašalinti aklavietes, išsaugoti naują kelią ir tada eiti nauju keliu. Artimiausiu metu planuoju dirbti su šiuo projektu. Tikiuosi, kad tai įmanoma pasiekti naudojant „LEGO Mindstorms EV3“naudojant masyvo operacijų blokus ir kai kuriuos su matematika susijusius blokus.

PABAIGA PASTABA

Tai buvo įdomus projektas. Tikiuosi, kad jums taip pat bus įdomu.

Rekomenduojamas: