Priešgaisrinės saugos enciklopedija

Juodosios linijos judėjimo matematikos blokas ev3. Lego EV3. Juodosios linijos judėjimas. Spalvų jutiklis – aplinkos šviesos intensyvumo režimas

Darbo tekstas patalpintas be vaizdų ir formulių.
Pilna versija darbą galima rasti skirtuke „Darbo failai“ PDF formatu

Lego Mindstorms EV3

Parengiamasis etapas

Programos kūrimas ir kalibravimas

Išvada

Literatūra

1. Įvadas.

Robotika yra viena iš svarbiausių mokslo ir technologijų pažangos sričių, kurioje mechanikos ir naujų technologijų problemos liečiasi su dirbtinio intelekto problemomis.

Per pastaraisiais metais pažanga robotikos ir automatizuotos sistemos pasikeitė asmeninis ir verslo sfera mūsų gyvenimas. Robotai plačiai naudojami transporte, Žemės ir kosmoso tyrimuose, chirurgijoje, karinėje pramonėje, atliekant laboratoriniai tyrimai, saugumo srityje, masinėje pramoninių prekių ir plataus vartojimo prekių gamyboje. Robotais galima laikyti ir daugelį įrenginių, kurie sprendimus priima remdamiesi iš jutiklių gautais duomenimis – tokie, pavyzdžiui, liftai, be kurių mūsų gyvenimas jau neįsivaizduojamas.

Mindstorms EV3 konstruktorius kviečia įžengti į žavų robotų pasaulį, pasinerti į sudėtingą informacinių technologijų aplinką.

Tikslas: Išmokti užprogramuoti robotą judėti tiesia linija.

    Susipažinkite su Mindstorms EV3 konstruktoriumi ir jo programavimo aplinka.

    Parašykite programas roboto judėjimui tiesia linija 30 cm, 1 m 30 cm ir 2 m 17 cm.

    Mindstorms EV3 konstruktorius.

Dizainerinės dalys - 601 vnt., Servo variklis - 3 vnt., spalvų jutiklis, judesio jutiklis, infraraudonųjų spindulių jutiklis ir jutiklinis jutiklis. mikroprocesoriaus blokas EV3 yra LEGO Mindstorms smegenys.

Už roboto judėjimą atsakingas didelis servo variklis, kuris jungiasi prie EV3 Brick ir priverčia robotą judėti: eiti pirmyn ir atgal, apsisukti ir važiuoti nurodyta trajektorija. Šiame servovariklyje yra įmontuotas sukimosi jutiklis, kuris leidžia labai tiksliai valdyti roboto judėjimą ir jo greitį.

Galite priversti robotą atlikti veiksmą su kompiuterio programa EV3. Programa susideda iš įvairių valdymo blokų. Dirbsime su judėjimo bloku.

Judesio blokas valdo roboto variklius, jį įjungia, išjungia, priverčia dirbti pagal užduotis. Galima užprogramuoti judėti tam tikras kiekis apsisukimų ar laipsnių.

    Parengiamasis etapas.

    Techninės srities sukūrimas.

Pažymėsime roboto darbo lauką, naudojant elektros juostą ir liniuotę sukursime tris 30 cm ilgio linijas - žalią, 1 m 15 cm - raudoną ir 2 m 17 cm - juodas linijas.

    Būtini skaičiavimai:

Roboto rato skersmuo - 5 cm 7 mm = 5,7 cm.

Vienas roboto rato apsisukimas lygus 5,7 cm skersmens apskritimo perimetrui.Apimtis randamas pagal formulę

Kur r yra rato spindulys, d yra skersmuo, π = 3,14

l = 5,7 * 3,14 = 17,898 = 17,9.

Tie. Vienu rato apsisukimu robotas nuvažiuoja 17,9 cm.

Apskaičiuokite apsisukimų skaičių, reikalingą pravažiuoti:

N = 30: 17,9 = 1,68.

    1m 30cm = 130cm

N = 130: 17,9 = 7,26.

    2 m 17 cm = 217 cm.

N = 217: 17,9 = 12,12.

    Programos kūrimas ir kalibravimas.

Sukursime programą pagal šį algoritmą:

Algoritmas:

    Pasirinkite judesio bloką Mindstorms EV3 programinėje įrangoje.

    Įjunkite abu variklius nurodyta kryptimi.

    Palaukite, kol vieno iš variklių sukimosi jutiklio rodmenys pasikeis į nurodytą vertę.

    Išjunkite variklius.

Baigta programa įkeliama į roboto valdymo bloką. Pastatome robotą į lauką ir spaudžiame starto mygtuką. EV3 važiuoja per lauką ir sustoja nurodytos linijos pabaigoje. Tačiau norint pasiekti tikslią apdailą, reikia sukalibruoti, nes išoriniai veiksniai turi įtakos judėjimui.

    Laukas įrengtas ant mokinių stalų, todėl galimas nedidelis paviršiaus įlinkis.

    Lauko paviršius lygus, todėl neatmetama prastas roboto ratų sukibimas su lauku.

    Skaičiuodami apsisukimų skaičių turėjome suapvalinti skaičius, todėl, pakeitę apsisukimų šimtąsias dalis, pasiekėme reikiamą rezultatą.

5. Išvada.

Galimybė užprogramuoti robotą judėti tiesia linija bus naudinga kuriant sudėtingesnes programas. Paprastai visi judėjimo matmenys yra nurodyti robotikos varžybų techninėje užduotyje. Jie būtini, kad programa nebūtų perkrauta loginėmis sąlygomis, kilpomis ir kitais sudėtingais valdymo blokais.

Ant Kitas žingsnis pažintį su Lego Mindstorms EV3 robotu teks išmokti programuoti posūkius tam tikru kampu, judėjimą ratu, spirales.

Labai įdomu dirbti su dizaineriu. Sužinoję daugiau apie jo galimybes, galite išspręsti bet kurią technines užduotis. O ateityje galbūt sukurkite savo įdomius Lego Mindstorms EV3 roboto modelius.

Literatūra.

    Koposovas D. G. „Pirmasis žingsnis į robotiką 5–6 klasėms“. - M.: Binomas. Žinių laboratorija, 2012 - 286 p.

    Filippov S. A. "Robotika vaikams ir tėvams" - "Mokslas" 2010 m

    Interneto ištekliai

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. lego. com/education/

Šioje pamokoje toliau tyrinėsime spalvų jutiklio naudojimą. Toliau pateikta medžiaga yra labai svarbi tolesniam robotikos kurso studijavimui. Išmokę panaudoti visus Lego mindstorms EV3 jutiklius sprendžiant daugelį praktinių problemų, remsimės šioje pamokoje įgytomis žiniomis.

6.1. Spalvų jutiklis – atspindėtos šviesos intensyvumo režimas

Taigi, mes pradedame tyrinėti kitą spalvų jutiklio veikimo režimą, kuris vadinamas "Atspindėtos šviesos ryškumas". Šiuo režimu spalvų jutiklis nukreipia raudonos šviesos spindulį į netoliese esantį objektą ar paviršių ir matuoja atspindėtos šviesos kiekį. Tamsesni objektai sugers šviesą, todėl jutiklis rodys mažesnę reikšmę nei šviesesni paviršiai. Jutiklio vertės diapazonas matuojamas nuo 0 (labai tamsu) iki 100 (labai šviesus). Šis spalvų jutiklio veikimo režimas naudojamas daugelyje robotikos užduočių, pavyzdžiui, norint organizuoti roboto judėjimą tam tikru maršrutu juoda linija, nubrėžta ant baltos dangos. Naudojant šį režimą, jutiklį rekomenduojama pastatyti taip, kad atstumas nuo jo iki tiriamo paviršiaus būtų apytikslis 1 cm (1 pav.).

Ryžiai. vienas

Pereikime prie praktinis mokymas: spalvų jutiklis jau sumontuotas mūsų robote ir nukreiptas į grindinio paviršių, kuriuo mūsų robotas vaikščios. Atstumas tarp jutiklio ir grindų yra toks, kaip rekomenduojama. Spalvų jutiklis jau prijungtas prie prievado "2" EV3 plyta. Įkelkime programavimo aplinką, prijungkime robotą prie aplinkos ir atlikdami 5 pamokos 5.4 skiltyje pateiktus uždavinius naudokime sukurtą spalvotų juostelių lauką, kad atliktume matavimus. Sumontuokite robotą taip, kad spalvų jutiklis būtų virš balto paviršiaus. "Aparatūros puslapis" programavimo aplinkos persijungia į režimą „Žiūrėti prievadus“ (2 pav. 1 poz.). Šiame režime galime stebėti visus užmegztus ryšius. Ant Ryžiai. 2 rodomi prijungti prievadai "B" ir "C" du dideli varikliai, ir į uostą "2" - spalvų jutiklis.

Ryžiai. 2

Norėdami pasirinkti jutiklio rodmenų rodymo parinktį, spustelėkite jutiklio vaizdą ir pasirinkite norimą režimą (3 pav.)

Ryžiai. 3

Ant Ryžiai. 2 poz. 2 matome, kad spalvos jutiklio rodmens virš balto paviršiaus reikšmė yra 84 . Jūsų atveju galite gauti kitokią reikšmę, nes tai priklauso nuo paviršiaus medžiagos ir patalpos apšvietimo: dalis šviesos, atsispindėjusi nuo paviršiaus, patenka į jutiklį ir paveikia jo rodmenis. Sumontavę robotą taip, kad spalvų jutiklis būtų virš juodos juostos, sureguliuojame jo rodmenis (4 pav.). Pabandykite patys išmatuoti atspindėtos šviesos vertes virš likusių spalvų juostų. Kokias vertybes gavai? Parašykite savo atsakymą šios pamokos komentaruose.

Ryžiai. keturi

Dabar spręskime praktines problemas.

11 užduotis: reikia parašyti roboto judėjimo programą, kuri sustoja pasiekusi juodą liniją.

Sprendimas:

Eksperimentas mums parodė, kad kertant juodą liniją, spalvų jutiklio reikšmė režime "Atspindėtos šviesos ryškumas" lygus 6 . Taigi, norint įvykdyti 11 užduotys mūsų robotas turėtų judėti tiesia linija, kol norima spalvų jutiklio reikšmė sumažės 7 . Pasinaudokime mums jau pažįstamu programos bloku "Lūkesčiai" Oranžinė paletė. Pasirinkime programos bloko veikimo režimą, kurio reikia pagal uždavinio sąlygą „Laukiu“ (5 pav.).

Ryžiai. 5

Taip pat turite sukonfigūruoti programos bloko parametrus "Lūkesčiai". Parametras „Palyginimo tipas“ (6 pav. 1 poz.) gali turėti šias reikšmes: "Lygi"=0, "Nėra lygus"=1, "Daugiau"=2, "Daugiau ar lygus"=3, "Mažiau"=4, "Mažiau arba lygus"=5. Mūsų atveju mes nustatome „Palyginimo tipas“į prasmę "Mažiau". Parametras "Slenkstis" nustatyti lygūs 7 (6 pav., 2 poz.).

Ryžiai. 6

Kai tik spalvų jutiklio reikšmė nustatoma į mažesnę nei 7 , kas atsitiks, kai spalvų jutiklis yra virš juodos linijos, turėsime išjungti variklius, sustabdydami robotą. Problema išspręsta (7 pav.).

Ryžiai. 7

Norėdami tęsti studijas, turėsime padaryti naują lauką, kuris yra juodas maždaug 1 metro skersmens apskritimas, pritaikytas baltam laukui. Apskritimo linijos storis 2 - 2,5 cm Lauko pagrindui galite paimti vieną A0 (841x1189 mm) dydžio popieriaus lapą, suklijuoti du A1 (594x841 mm) dydžio popieriaus lapus. Šiame lauke pažymėkite apskritimo liniją ir nudažykite ją juodu rašalu. Taip pat galite atsisiųsti „Adobe Illustrator“ formatu padarytą lauko maketą ir spaustuvėje užsisakyti jo spausdinimą ant banerio audinio. Išdėstymo dydis 1250x1250 mm. (Galite peržiūrėti toliau atsisiųstą maketą atidarę jį „Adobe Acrobat Reader“)

Ši sritis mums pravers sprendžiant keletą klasikinių robotikos kurso užduočių.

12 užduotis: reikia parašyti programą robotui, judančiam apskritime, kurį riboja juodas apskritimas, pagal šią taisyklę:

  • robotas juda pirmyn tiesia linija;
  • pasiekęs juodą liniją, robotas sustoja;
  • robotas pajudina du variklių apsisukimus atgal;
  • robotas pasisuka į dešinę 90 laipsnių kampu;
  • kartojamas roboto judesys.

Ankstesnėse pamokose įgytos žinios padės jums pačiam susikurti programą, lemiamas uždavinys №12.

12 uždavinio sprendimas

  1. Pradėti tiesinis judėjimas Persiųsti (8 pav. 1 poz.);
  2. Palaukite, kol spalvų jutiklis peržengs juodą liniją (8 pav. 2 poz.);
  3. Pasukite 2 apsisukimus atgal (8 pav. 3 poz.);
  4. Pasukite į dešinę 90 laipsnių (8 pav. 4 poz.); sukimosi kampo reikšmė apskaičiuojama robotui, surinktam pagal instrukciją mažas robotas-45544 (8 pav. 5 poz.);
  5. Kartokite 1–4 komandas be galo (8 pav. 6 poz.).

Ryžiai. aštuoni

Į spalvų jutiklio veikimą režimu "Atspindėtos šviesos ryškumas" grįšime daug kartų, kai svarstysime algoritmus, kaip judėti palei juodą liniją. Tuo tarpu išanalizuokime trečiąjį spalvų jutiklio veikimo režimą.

6.2. Spalvų jutiklis – aplinkos šviesos intensyvumo režimas

Spalvų jutiklio režimas "Aplinkos šviesos ryškumas" labai panašus į režimą "Atspindėtos šviesos ryškumas", tik tokiu atveju jutiklis neskleidžia šviesos, o matuoja natūralią šviesą aplinką. Vizualiai tokį jutiklio veikimo režimą galima nustatyti pagal silpnai šviečiantį mėlyną šviesos diodą. Jutiklio rodmenys skiriasi nuo 0 (šviesos trūkumas) į 100 (ryškiausia šviesa). Sprendžiant praktines problemas, reikalaujančias matuoti aplinkos apšvietimą, daviklį rekomenduojama išdėstyti taip, kad jutiklis liktų kuo atviresnis ir jo netrukdytų kitos dalys ir konstrukcijos.

Pritvirtinkite spalvų jutiklį prie savo roboto taip pat, kaip pritvirtinome jutiklinį jutiklį 4 pamokoje (9 pav.). Prijunkite spalvų jutiklį kabeliu prie prievado "2" EV3 plyta. Pereikime prie praktinių problemų sprendimo.

Ryžiai. 9

13 užduotis: reikia parašyti programą, kuri keičia mūsų roboto greitį priklausomai nuo išorinio apšvietimo intensyvumo.

Norėdami išspręsti šią problemą, turime išmokti gauti dabartinę jutiklio vertę. Ir Geltonoji programų blokų paletė, kuri vadinasi "Jutikliai".

6.3. Geltona paletė - "Jutikliai"

Geltonoje Lego mindstorms EV3 programavimo aplinkos paletėje yra programavimo blokai, leidžiantys gauti esamus jutiklių rodmenis tolesnis apdorojimas programoje. Skirtingai nuo, pavyzdžiui, programos bloko "Lūkesčiai" Oranžinės paletės, geltonos paletės programų blokai iš karto perkelia valdymą į sekančius programų blokus.

Programavimo blokų skaičius Geltonojoje paletėje skiriasi namų ir mokomojoje programavimo aplinkos versijose. Naminėje programavimo aplinkos versijoje nėra jutiklių programavimo blokų, kurie nėra įtraukti į namų konstruktoriaus versiją. Tačiau, jei reikia, juos galima prijungti atskirai.

Mokomojoje programavimo aplinkos versijoje yra programavimo blokai visiems jutikliams, su kuriais galima naudotis Lego konstruktorius Mindstorms EV3.

Grįžkime prie sprendimo. 13 užduotys ir sužinokite, kaip galite gauti ir apdoroti spalvų jutiklio rodmenis. Kaip jau žinome: spalvų jutiklio verčių diapazonas režime "Aplinkos šviesos ryškumas" yra diapazone 0 prieš 100 . Variklių galią reguliuojantis parametras turi tą patį diapazoną. Pabandykime reguliuoti programų bloko variklių galią skaitydami spalvų jutiklį "Vairavimas".

Sprendimas:


Ryžiai. dešimt

Įkelkime gautą programą į robotą ir paleiskime ją vykdyti. Ar robotas judėjo lėtai? Įjunkite LED žibintuvėlį ir pabandykite įjungti spalvų jutiklį skirtingas atstumas. Kas vyksta su robotu? Delnu uždarykite spalvų jutiklį – kas nutiko šiuo atveju? Atsakymus į šiuos klausimus rašykite pamokos komentaruose.

Užduotis – premija

Įkelkite į robotą ir vykdykite užduotį, parodytą paveikslėlyje žemiau. Pakartokite eksperimentus su LED žibintuvėliu. Pasidalinkite savo įspūdžiais pamokos komentaruose.

Ši užduotis yra klasikinė, idėjiškai paprasta, ją galima išspręsti daugybę kartų, ir kiekvieną kartą atrasite kažką naujo.

Yra daug būdų, kaip išspręsti šią problemą. Vieno iš jų pasirinkimas priklauso nuo konkrečios roboto konstrukcijos, nuo jutiklių skaičiaus, jų padėties ratų ir vienas kito atžvilgiu.

Mūsų pavyzdyje trys robotų pavyzdžiai bus išardyti remiantis pagrindiniu Robot Educator mokymo modeliu.

Norėdami pradėti, mes renkame bazinis modelis mokomasis robotas Robot Educator, tam galite naudoti instrukcijas programinė įranga MINDSTORMS EV3.

Taip pat, pavyzdžiui, mums reikia EV3 šviesos spalvų jutiklių. Šie šviesos jutikliai, kaip niekas kitas, geriausias būdas tinka mūsų užduočiai, dirbdami su jais neturime jaudintis dėl aplinkos šviesos intensyvumo. Šiam jutikliui programose naudosime atspindėtos šviesos režimą, kuriame įvertinamas jutiklio raudono apšvietimo atspindimos šviesos kiekis. Jutiklio rodmenų ribos nuo 0 iki 100 vienetų, „neatspindėti“ ir „ visiškas atspindys“ atitinkamai.

Pavyzdžiui, analizuosime 3 programų, skirtų judėti juodu keliu, pavaizduotu lygiame šviesiame fone, pavyzdžius:

· Vienas jutiklis su P reguliatoriumi.

· Vienas jutiklis, su PK reguliatoriumi.

· Du jutikliai.

1 pavyzdys. Vienas jutiklis su P reguliatoriumi.

Dizainas

Šviesos jutiklis sumontuotas ant modelio patogiai išdėstyto pluošto.


Algoritmas

Algoritmo veikimas pagrįstas tuo, kad, priklausomai nuo persidengimo laipsnio, jutiklio apšvietimo spindulys su juoda linija, jutiklio grąžinami rodmenys skiriasi gradientu. Robotas išlaiko šviesos jutiklio padėtį ant juodos linijos ribos. Konvertuodama įvesties duomenis iš šviesos jutiklio, valdymo sistema generuoja roboto sukimosi greičio reikšmę.


Kadangi tikroje trajektorijoje jutiklis generuoja reikšmes visame savo veikimo diapazone (0-100), reikšmė, kurios robotas siekia, yra 50. Tokiu atveju reikšmės, perduodamos sukimosi funkcijai, formuojamos diapazone -50 - 50, tačiau šių verčių nepakanka stačiam trajektorijos sukimuisi. Todėl diapazonas turėtų būti išplėstas pusantro karto iki -75 - 75.

Galiausiai programoje skaičiuotuvo funkcija yra paprastas proporcinis valdiklis. kurio funkcija ( (a-50)*1,5 ) šviesos jutiklio veikimo diapazone generuoja sukimosi vertes pagal grafiką:

Algoritmo pavyzdys

2 pavyzdys. Vienas jutiklis su PK valdikliu.

Šis pavyzdys sudarytas pagal tą patį dizainą.

Tikriausiai pastebėjote, kad ankstesniame pavyzdyje robotas per daug siūbavo, o tai neleido jam pakankamai įsibėgėti. Dabar bandysime šiek tiek pagerinti šią situaciją.

Mūsų proporcingas valdiklis taip pat pridedame paprastą kubo valdiklį, kuris šiek tiek pakeis valdiklio funkciją. Tai sumažins roboto siūbavimą šalia norimos trajektorijos ribos, taip pat atliks stipresnius trūktelėjimus dideliu atstumu nuo jo.

Panagrinėkime paprasčiausią algoritmą, kaip judėti juoda linija ant vienos spalvos jutiklio EV3.

Šis algoritmas yra lėčiausias, bet stabiliausias.

Robotas judės ne griežtai palei juodą liniją, o palei jos kraštą, sukdamasis arba į kairę, arba į dešinę ir palaipsniui judės į priekį.

Algoritmas labai paprastas: jei jutiklis mato juodą, tai robotas sukasi viena kryptimi, jei baltas – kita.

Diegimas Lego Mindstorms EV3 aplinkoje

Abiejuose judesio blokuose pasirinkite „įjungti“ režimą. Jungiklis nustatytas į spalvų jutiklį – matavimas – spalva. Apačioje nepamirškite pakeisti „be spalvos“ į baltą. Be to, turite teisingai nurodyti visus prievadus.

Nepamirškite pridėti kilpos, be jos robotas niekur nedings.

Patikrinti. Už pasiekimus geriausias rezultatas pabandykite pakeisti vairo ir galios nustatymus.

Judėjimas su dviem jutikliais:

Jūs jau žinote algoritmą, kaip robotą perkelti išilgai juodos linijos naudojant vieną jutiklį. Šiandien mes apsvarstysime judėjimą išilgai linijos naudodami du spalvų jutiklius.
Jutikliai turi būti sumontuoti taip, kad tarp jų eitų juoda linija.


Algoritmas bus toks:
Jei abu jutikliai mato balta spalva- judeti i prieki;
Jei vienas iš jutiklių mato baltą, o kitas juodą, pasukame juodos spalvos link;
Jei abu jutikliai mato juodą spalvą, mes esame sankryžoje (pavyzdžiui, sustokite).

Norėdami įgyvendinti algoritmą, turime sekti abiejų jutiklių rodmenis ir tik po to nustatyti robotą judėti. Norėdami tai padaryti, naudosime kitame jungiklyje įdėtus jungiklius. Taigi pirmiausia apklaussime pirmąjį jutiklį, o tada, neatsižvelgdami į pirmojo jutiklio rodmenis, apklaussime antrąjį jutiklį, po kurio nustatysime veiksmą.
Prijunkite kairįjį jutiklį prie prievado Nr. 1, dešinįjį prie prievado Nr. 4.

Programa su komentarais:

Nepamirškite, kad variklius paleidžiame režimu „Įjungti“, kad jie veiktų tiek laiko, kiek reikia, atsižvelgiant į jutiklių rodmenis. Taip pat dažnai pamirštamas kilpos poreikis – be jos programa iškart pasibaigs.

http://studrobots.ru/

Ta pati programa skirta NXT modeliui:

Išstudijuokite judėjimo programą. Užprogramuokite robotą. Įkelti modelio bandomąjį vaizdo įrašą

15.01.2012, 18:51

Iki šiol straipsniuose apie algoritmus, naudojamus judant išilgai linijos, toks metodas buvo svarstomas, kai šviesos jutiklis tarsi sekė kairiąją arba dešiniąją kraštą: kai tik robotas pajuda į balta dalis laukas - valdiklis grąžino robotą prie ribos, jutiklis pajudės giliai į juodą liniją - valdiklis ištiesė ją atgal.
Nepaisant to, kad aukščiau pateiktas paveikslėlis skirtas relės valdikliui, bendras proporcinio (P reguliatoriaus) judėjimo principas bus toks pat. Kaip jau minėta, vidutinis tokio judėjimo greitis nėra labai didelis ir kelis kartus buvo bandoma jį padidinti šiek tiek apsunkinant algoritmą: vienu atveju buvo naudojamas „minkštas“ stabdymas, kitu, be posūkių, į priekį. buvo įvestas judėjimas.
Tam, kad robotas galėtų judėti į priekį kai kuriose srityse, šviesos jutiklio sukurtų verčių diapazone buvo skirta siaura atkarpa, kurią sąlyginai būtų galima pavadinti „jutiklis yra ant linijos ribos“.
Šis metodas turi nedidelį trūkumą – jei robotas „seka“ kairę linijos kraštą, tai posūkiuose į dešinę atrodo, kad jis ne iš karto nustato trajektorijos kreivumą ir dėl to praleidžia daugiau laiko ieškodamas linijos. ir pasukimas. Be to, galima drąsiai teigti, kad kuo statesnis posūkis, tuo ilgiau trunka ši paieška.
Toliau pateiktame paveikslėlyje parodyta, kad jei jutiklis būtų ne kairėje ribos pusėje, o dešinėje, jis jau aptiktų trajektorijos kreivumą ir pradėtų atlikti posūkio manevrus.

Todėl patartina robotą vienu metu aprūpinti dviem jutikliais, kurie buvo išilgai skirtingos pusės nuo linijos ir atitinkamai padėtų robotui greičiau reaguoti į judėjimo krypties pasikeitimą.
Dabar reikia nustatyti, kaip toks dizaino pakeitimas paveiks programą. Paprastumo dėlei vėl turėtume pradėti nuo paprasčiausio relės valdiklio, todėl pirmiausia domimės galimomis jutiklių padėtimis linijos atžvilgiu:

Tiesą sakant, galima išskirti dar vieną priimtiną būseną - sudėtinguose maršrutuose tai bus sankryžos susikirtimas arba koks nors sutirštėjimas kelyje.
Kitos jutiklių pozicijos nebus atsižvelgtos, nes jos yra išvestos iš aukščiau pavaizduotų, arba tai yra roboto padėtys, kai jis paliko liniją ir nebegalės į ją grįžti naudodamasis jutiklių informacija. Dėl to visos pirmiau nurodytos nuostatos gali būti sumažintos iki šios klasifikacijos:
  • kairysis jutiklis, kaip ir dešinysis, yra virš šviesaus paviršiaus
  • kairysis jutiklis virš šviesaus paviršiaus, dešinysis jutiklis virš tamsaus
  • kairysis jutiklis virš tamsaus paviršiaus, dešinysis jutiklis virš šviesos
  • abu jutikliai yra virš tamsaus paviršiaus
Jei tam tikru momentu roboto programa aptinka vieną iš šių pozicijų, ji turės atitinkamai reaguoti:
    Jei abu jutikliai yra virš balto paviršiaus, tai yra normali situacija, kai linija yra tarp jutiklių, todėl robotas turi eiti tiesiai. Jei kairysis jutiklis vis dar yra virš šviesaus paviršiaus, o dešinysis jutiklis jau virš tamsus, tada robotas užvažiavo dešine puse ant linijos, vadinasi, reikia pasukti į dešinę, kad linija vėl būtų tarp jutiklių. Jei kairysis jutiklis yra virš tamsaus paviršiaus, o dešinysis vis dar yra aukščiau šviesus, tada robotas turi pasukti į kairę, kad išsilygintų.Jei abu jutikliai yra virš tamsaus paviršiaus, tai apskritai robotas vėl važiuoja tiesiai.

Aukščiau pateiktoje diagramoje iš karto parodyta, kaip tiksliai programoje turi pasikeisti variklių elgsena.Dabar parašyti programą neturėtų būti sunku.Pradėti reikėtų nuo to, kuris jutiklis bus apklausiamas pirmas. Tai neturi didelės svarbos, todėl tegul lieka. Būtina nustatyti, ar jis yra virš šviesaus ar tamsaus paviršiaus:
Šis veiksmas dar neleidžia pasakyti, kuria kryptimi robotas turi eiti. Tačiau aukščiau išvardytos būsenos bus padalintos į dvi grupes: (I, II) viršutinei šakai ir (III, IV) apatinei. Kiekviena grupė dabar turi dvi būsenas, todėl turite pasirinkti vieną iš jų. Atidžiau pažvelgus į pirmąsias dvi būsenas I ir II, jos skiriasi dešiniojo jutiklio padėtimi – vienu atveju jis yra virš šviesaus paviršiaus, kitu – virš tamsaus. Tai lems pasirinkimą, kokių veiksmų imtis:
Dabar galite įterpti blokus, kurie apibrėžia variklių veikimą pagal aukščiau pateiktas lenteles: viršutinė įdėtos sąlygos šaka apibrėžia derinį „abu jutikliai įjungti šviesą“, viršutinė - „kairė šviesa, dešinė tamsi“:
Apatinė pagrindinės būklės šaka yra atsakinga už kitą III ir IV būsenų grupę. Šios dvi būsenos taip pat skiriasi viena nuo kitos apšvietimo lygiu, kurį paima tinkamas jutiklis. Taigi tai lems kiekvieno iš jų pasirinkimą:
Gautos dvi šakos užpildomos judėjimo blokais. Viršutinė šaka atsakinga už būseną „kairė tamsoje, dešinė šviesa“, o apatinė – už „abu jutiklius tamsoje“.
Pažymėtina, kad ši konstrukcija tik nustato, kaip įjungti variklius, priklausomai nuo daviklių rodmenų tam tikroje lauko vietoje, natūralu, kad po akimirkos programa turi patikrinti, ar nepasikeitė rodmenys, kad būtų galima pakoreguoti. atitinkamai variklių elgesys, o po akimirkos vėl, vėl ir t.t. .d. Todėl jis turėtų būti įtrauktas į kilpą, kuri atliks pakartotinį patikrinimą:

Toks gražuolis paprasta programa užtikrins gana didelį roboto judėjimo greitį išilgai linijos nepaliekant jos, jei maksimalus greitis bus teisingai nustatytas judant I ir IV būsenose, taip pat nustatytas Geriausias būdas stabdymas II ir III būsenose - kuo statesni posūkiai trasoje, tuo "sunkesnis" turi būti stabdymas - greitis turėtų kristi greičiau, ir atvirkščiai - sklandžiais posūkiais visiškai įmanoma stabdyti išjungus energiją ar net šiek tiek sumažėjus greičiui.

Keletą atskirų žodžių reikėtų pasakyti ir apie jutiklių išdėstymą robote. Akivaizdu, kad šių dviejų jutiklių vietai ratų atžvilgiu bus taikomos tos pačios rekomendacijos, kaip ir vienam jutikliui, tik du jutiklius jungiančios atkarpos vidurys imamas trikampio viršūne. Pats atstumas tarp jutiklių taip pat turėtų būti parinktas iš trasos ypatybių: kuo arčiau davikliai yra vienas nuo kito, tuo dažniau robotas išsilygins (atliks santykinai lėtus posūkius), tačiau jei jutikliai yra pakankamai plačiai išdėstyti. , tuomet kyla pavojus išskristi iš trasos, todėl tiesiosiose teks atlikti griežtesnius posūkius ir lėtesnį judėjimą.



Panašūs įrašai