Lego ev3 juda išilgai linijos. Pradėkite nuo mokslo. Spalvų jutiklis – „Aplinkos šviesos ryškumo“ režimas

Pažvelkime į paprasčiausią algoritmą, kaip judėti palei juodą liniją viename EV3 spalvų jutiklyje.

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

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

Algoritmas labai paprastas: jei jutiklis mato juodą, tai robotas sukasi į vieną pusę, jei baltas – į kitą.

Diegimas Lego Mindstorms EV3 aplinkoje

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

Nepamirškite pridėti ciklo, be jo robotas niekur nedings.

Patikrinkite tai. Norėdami gauti geriausių rezultatų, pabandykite pakeisti vairo ir galios nustatymus.

Judėjimas su dviem jutikliais:

Jau žinote roboto judėjimo juoda linija naudojant vieną jutiklį algoritmą. Šiandien mes apžvelgsime judėjimą išilgai linijos naudojant du spalvų jutiklius.
Jutikliai turi būti sumontuoti taip, kad tarp jų eitų juoda linija.


Algoritmas bus toks:
Jei abu jutikliai mato baltą spalvą, judame į priekį;
Jei vienas iš jutiklių mato baltą, o kitą juodą, pasukite juodos spalvos link;
Jei abu jutikliai mato juodą spalvą, esame sankryžoje (pavyzdžiui, sustosime).

Norėdami įgyvendinti algoritmą, turėsime stebėti 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ą.
Kairįjį jutiklį prijunkite prie prievado Nr.1, dešinįjį prie prievado Nr.4.

Programa su komentarais:

Nepamirškite, kad variklius paleidžiame režimu „Įjungta“, kad jie veiktų tiek, kiek reikia, atsižvelgiant į jutiklio rodmenis. Be to, žmonės dažnai pamiršta apie kilpos poreikį – be jos programa tuoj baigsis.

http://studrobots.ru/

Ta pati programa skirta NXT modeliui:

Išstudijuokite judėjimo programą. Užprogramuokite robotą. Siųsti vaizdo įrašą apie modelio testavimą

Darbo tekstas skelbiamas be vaizdų ir formulių.
Pilną darbo versiją rasite 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.

Pastaraisiais metais robotikos ir automatizuotų sistemų pažanga pakeitė asmeninius ir verslo aspektus mūsų gyvenime. Robotai plačiai naudojami transporte, žemės ir kosmoso tyrinėjimuose, chirurgijoje, karinėje pramonėje, laboratoriniuose tyrimuose, saugume, masinėje pramoninių ir plataus vartojimo prekių gamyboje. Daugelis įrenginių, kurie sprendimus priima remdamiesi iš jutiklių gautais duomenimis, taip pat gali būti laikomi robotais – pavyzdžiui, pavyzdžiui, liftai, be kurių mūsų gyvenimas jau neįsivaizduojamas.

Mindstorms EV3 dizaineris kviečia patekti į žavų robotų pasaulį ir pasinerti į sudėtingą informacinių technologijų aplinką.

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

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

    Parašykite programas, kad robotas galėtų judėti tiesia linija 30 cm, 1 m 30 cm ir 2 m 17 cm.

    Mindstorms EV3 konstruktorius.

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

Už roboto judėjimą atsakingas didelis servovariklis, kuris yra prijungtas prie EV3 mikrokompiuterio ir priverčia robotą judėti: eiti pirmyn ir atgal, sukti ir važiuoti nurodytu keliu. Šis servovariklis turi įmontuotą sukimosi jutiklį, kuris leidžia labai tiksliai valdyti roboto judėjimą ir greitį.

Galite priversti robotą atlikti veiksmą naudodami EV3 kompiuterinę programą. Programa susideda iš įvairių valdymo blokų. Dirbsime su judesio bloku.

Judėjimo blokas valdo roboto variklius, jį įjungia, išjungia, priverčia dirbti pagal paskirtas užduotis. Galite užprogramuoti judesį tam tikram apsisukimų arba laipsnių skaičiui.

    Parengiamasis etapas.

    Techninės srities sukūrimas.

Ant roboto darbo lauko uždėkime žymėjimus, naudodami elektrinę juostą ir liniuotę, sukurkime tris 30 cm ilgio linijas – žalia linija, 1 m 15 cm – raudona ir 2 m 17 cm – juoda linija.

    Būtini skaičiavimai:

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

Vienas roboto rato apsisukimas yra lygus 5,7 cm skersmens apskritimo ilgiui. Apimtį randame 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čiuokime apsisukimų skaičių, reikalingą važiuoti:

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

    1 m 30 cm = 130 cm

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

    2 m 17 cm = 217 cm.

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

    Programos kūrimas ir kalibravimas.

Programą sukursime pagal šį algoritmą:

Algoritmas:

    Programoje Mindstorms EV3 pasirinkite judesio bloką.

    Įjunkite abu variklius nurodyta kryptimi.

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

    Išjunkite variklius.

Paruoštą programą įkeliame į roboto valdymo bloką. Pastatome robotą ant lauko ir spaudžiame starto mygtuką. EV3 važiuoja per lauką ir sustoja nurodytos linijos pabaigoje. Tačiau norint pasiekti tikslią apdailą, reikia atlikti kalibravimą, nes judėjimą įtakoja išoriniai veiksniai.

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

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

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

5. Išvada.

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

Kitame Lego Mindstorms EV3 roboto pažinimo etape teks išmokti programuoti posūkius tam tikru kampu, judėjimą ratu, spirales.

Dirbti su dizaineriu labai įdomu. Sužinoję daugiau apie jo galimybes, galite išspręsti bet kokią techninę problemą. 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.

    Filippovas 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/

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

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 bus analizuojami trys roboto pavyzdžiai, remiantis pagrindiniu Robot Educator ugdymo modeliu.

Pirmiausia surenkame pagrindinį mokomojo roboto Robot Educator modelį, tam galite naudoti MINDSTORMS EV3 programinės įrangos instrukcijas.

Taip pat, pavyzdžiui, mums reikės EV3 šviesios spalvos jutiklių. Šie šviesos jutikliai, kaip niekas kitas, geriausiai tinka mūsų užduočiai dirbant su jais, nereikia jaudintis dėl supančios šviesos intensyvumo. Šiam jutikliui programose naudosime atspindėtos šviesos režimą, kuriame įvertinamas atsispindėjusios šviesos kiekis iš raudono jutiklio foninio apšvietimo. Jutiklio rodmenų ribos yra 0–100 vienetų, atitinkamai „be atspindžio“ ir „visiško atspindžio“.

Kaip pavyzdį analizuosime 3 programų, skirtų judėti juoda trajektorija, pavaizduota lygiame šviesiame fone, pavyzdžius:

· Vienas jutiklis su P reguliatoriumi.

· Vienas jutiklis, su PC 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 jutiklio apšvietimo pluošto persidengimo su juoda linija laipsnio, 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 sukuria roboto sukimosi greičio vertę.


Kadangi tikroje trajektorijoje jutiklis generuoja reikšmes visame savo veikimo diapazone (0-100), 50 pasirenkama kaip reikšmė, kurios robotas siekia. Tokiu atveju generuojamos reikšmės, perduodamos sukimosi funkcijoms diapazonas -50 - 50, tačiau šių verčių nepakanka staigiam posūkiui trajektorija. Todėl diapazonas turėtų būti padidintas pusantro karto iki -75 - 75.

Dėl to programoje skaičiuotuvo funkcija yra paprastas proporcingas valdiklis. kurios funkcija ( (a-50)*1,5 ) šviesos jutiklio veikimo diapazone generuoja sukimosi vertes pagal grafiką:

Algoritmo veikimo pavyzdys

2 pavyzdys. Vienas jutiklis su PK reguliatoriumi.

Šis pavyzdys paremtas ta pačia konstrukcija.

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ą.

Prie mūsų proporcinio valdiklio taip pat pridedame paprastą kubo valdiklį, kuris šiek tiek sulenks valdiklio funkciją. Tai sumažins roboto siūbavimą netoli norimos trajektorijos ribos, taip pat padarys stipresnius trūktelėjimus, kai bus toli nuo jo.

Šioje pamokoje toliau tyrinėsime spalvų jutiklio naudojimą. Toliau pateikta medžiaga yra labai svarbi tolesniam robotikos kurso studijavimui. Išmokę naudotis visais Lego mindstorms EV3 konstruktoriaus jutikliais, spręsdami daug praktinių problemų, remsimės šioje pamokoje įgytomis žiniomis.

6.1. Spalvų jutiklis – režimas „Atspindėti šviesos ryškumas“.

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 srautą į netoliese esantį objektą arba paviršių ir matuoja atspindėtos šviesos kiekį. Tamsesni objektai sugers šviesos srautą, todėl jutiklis rodys mažesnę vertę, palyginti su šviesesniais paviršiais. Jutiklio vertės diapazonas matuojamas nuo 0 (labai tamsu) prieš tai 100 (labai ryškus). Š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, atspausdinta ant baltos dangos. Naudojant šį režimą, rekomenduojama nustatyti jutiklį taip, kad atstumas nuo jo iki tiriamo paviršiaus būtų apytikslis 1 cm (1 pav.).

Ryžiai. 1

Pereikime prie praktinių pratimų: spalvų jutiklis jau sumontuotas mūsų robote ir nukreiptas žemyn į dangos paviršių, kuriuo judės mūsų robotas. Atstumas tarp jutiklio ir grindų yra toks, kaip rekomenduojama. Spalvų jutiklis jau prijungtas prie prievado "2" EV3 modulis. Įkelkime programavimo aplinką, prijungkime robotą prie aplinkos ir, atlikdami matavimus, naudokime lauką su spalvotomis juostelėmis, kuriuos padarėme atlikdami 5 pamokos 5.4 skyriaus užduotis. Sumontuosime robotą taip, kad spalvų jutiklis būtų virš balto paviršiaus. "Aparatūros puslapis" perjungti programavimo aplinką į režimą „Žiūrėti prievadus“ (2 pav. 1 punktas). Šiame režime galime stebėti visus užmegztus ryšius. Įjungta Ryžiai. 2 rodomas ryšys su prievadais "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

Įjungta 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 apšvietimo patalpos viduje: dalis apšvietimo, atsispindėjusi nuo paviršiaus, atsitrenkia į jutiklį ir paveikia jo rodmenis. Sumontavę robotą taip, kad spalvų jutiklis būtų virš juodos juostos, įrašome jo rodmenis (4 pav.). Pabandykite patys išmatuoti atspindėtos šviesos vertes virš likusių spalvų juostų. Kokias vertybes gavote? Parašykite savo atsakymą šios pamokos komentaruose.

Ryžiai. 4

Dabar spręskime praktines problemas.

11 užduotis: Reikia parašyti programą roboto judėjimui, kuris sustoja pasiekęs juodą liniją.

Sprendimas:

Eksperimentas parodė, kad kertant juodą liniją spalvų jutiklio reikšmė režime "Atspindėtos šviesos ryškumas" lygus 6 . Taigi, atlikti Problemos Nr.11 mūsų robotas turi judėti tiesia linija, kol norima spalvų jutiklio reikšmė tampa mažesnė 7 . Pasinaudokime mums jau pažįstamu programų bloku "Lūkesys" Oranžinė paletė. Leiskite pasirinkti programinės įrangos bloko veikimo režimą, kurio reikia probleminėms sąlygoms „Laukiu“ (5 pav.).

Ryžiai. 5

Taip pat būtina sukonfigūruoti programos bloko parametrus "Lūkesys". Parametras „Palyginimo tipas“ (6 pav. 1 punktas) gali turėti šias reikšmes: "Lygi"=0, "Ne lygus"=1, "Daugiau"=2, „Didesnis už arba lygus“=3, "Mažiau"=4, "Mažiau nei arba lygus"=5. Mūsų atveju mes nustatysime „Palyginimo tipas“ prasme "Mažiau". Parametras "Slenkstinė vertė" nustatyti lygūs 7 (6 pav., 2 elementas).

Ryžiai. 6

Kai tik spalvų jutiklio reikšmė nustatoma į mažesnę 7 , kas atsitiks, kai spalvų jutiklis bus 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 sukurti naują lauką, kuris yra maždaug 1 metro skersmens juodas apskritimas, pritaikytas baltam laukui. Apskritimo linijos storis 2 - 2,5 cm Lauko pagrindui galite paimti vieną A0 dydžio (841x1189 mm) popieriaus lapą, suklijuoti du A1 dydžio (594x841 mm) popieriaus lapus. Šiame lauke pažymėkite apskritimo liniją ir nudažykite ją juodu rašalu. Taip pat galite atsisiųsti „Adobe Illustrator“ formatu sukurtą lauko maketą ir spaustuvėje užsisakyti atspausdintą ant banerio audinio. Išdėstymo dydis 1250x1250 mm. (Galite peržiūrėti atsisiųstą maketą toliau, atidarę jį Adobe Acrobat Reader)

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

12 užduotis: reikia parašyti programą robotui, judančiam juodu apskritimu pažymėtame apskritime pagal šią taisyklę:

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

Ankstesnėse pamokose įgytos žinios padės savarankiškai sukurti programą, sprendžiančią 12 uždavinį.

12 problemos sprendimas

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

Ryžiai. 8

Norėdami valdyti spalvų jutiklį režimu "Atspindėtos šviesos ryškumas" Mes grįšime daug kartų, kai svarstysime algoritmus, kaip judėti palei juodą liniją. Kol kas pažvelkime į trečiąjį spalvų jutiklio veikimo režimą.

6.2. Spalvų jutiklis – „Aplinkos šviesos ryškumo“ režimas

Spalvų jutiklio veikimo režimas „Išorinės šviesos ryškumas“ labai panašus į režimą "Atspindėtos šviesos ryškumas", tik tokiu atveju jutiklis neskleidžia šviesos, o matuoja natūralų aplinkos šviesos apšvietimą. Vizualiai tokį jutiklio veikimo režimą galima nustatyti pagal silpnai šviečiantį mėlyną šviesos diodą. Jutiklio rodmenys skiriasi nuo 0 (be šviesos) iki 100 (ryškiausia šviesa). Sprendžiant praktines problemas, dėl kurių reikia matuoti išorinį apšvietimą, daviklį rekomenduojama išdėstyti taip, kad jutiklis liktų kuo atviresnis ir jo neužblokuotų 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 modulis. Pereikime prie praktinių problemų sprendimo.

Ryžiai. 9

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

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

6.3. Geltona paletė - "Jutikliai"

Geltonoje Lego mindstorms EV3 programavimo aplinkos paletėje yra programinės įrangos blokai, leidžiantys gauti esamus jutiklių rodmenis tolesniam apdorojimui programoje. Skirtingai nuo, pavyzdžiui, programos bloko "Lūkesys" Oranžinėje paletėje Geltonos paletės programų blokai iš karto perkelia valdymą į šiuos programos blokus.

Geltonosios paletės programų blokų skaičius skiriasi namų ir edukacinės programavimo aplinkos versijose. Naminėje programavimo aplinkos versijoje nėra programinės įrangos blokų jutikliams, kurie neįtraukti į namų dizainerio versiją. Bet jei reikia, galite juos prijungti patys.

Mokomojoje programavimo aplinkos versijoje yra programavimo blokai visiems jutikliams, kuriuos galima naudoti su Lego mindstorms EV3 konstruktoriumi.

Grįžkime prie sprendimo Problemos Nr.13 ir pažiūrėkime, kaip galite gauti ir apdoroti spalvų jutiklio rodmenis. Kaip jau žinome: spalvų jutiklio verčių diapazonas režimu „Išorinės šviesos ryškumas“ yra diapazone 0 į 100 . Variklio galią reguliuojantis parametras turi tą patį diapazoną. Pabandykime naudodamiesi spalvų jutiklio rodmenimis reguliuoti programinės įrangos bloko variklių galią "Vairavimas".

Sprendimas:


Ryžiai. 10

Įkelkime gautą programą į robotą ir paleiskime ją vykdyti. Ar robotas važiavo lėtai? Įjunkime LED žibintuvėlį ir pabandykime atnešti jį į spalvų jutiklį skirtingais atstumais. Kas vyksta su robotu? Delnu uždenkime spalvų jutiklį – kas nutiko šiuo atveju? Atsakymus į šiuos klausimus rašykite pamokos komentaruose.

Iššūkis – premija

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

15.01.2012, 18:51

Iki šiol straipsniuose apie algoritmus, naudojamus judant išilgai linijos, buvo svarstomas metodas, kai šviesos jutiklis tarsi stebi jo kairę arba dešinę kraštą: kai tik robotas pajudėjo į baltą lauko dalį, valdiklis grąžino robotą. iki ribos, jutiklis pradėjo judėti giliau į juodą liniją – reguliatorius ją ištiesino atgal.
Nepaisant to, kad aukščiau pateiktas paveikslėlis parodytas relės reguliatoriui, bendras proporcinio (P reguliatoriaus) judėjimo principas bus toks pat. Kaip jau minėta, vidutinis tokio judėjimo greitis nėra labai didelis, o jį kelis kartus bandyta padidinti šiek tiek apsunkinant algoritmą: vienu atveju buvo naudojamas „minkštas“ stabdymas, kitu, be posūkių, judėjimas į priekį. buvo pristatytas.
Kad robotas galėtų judėti į priekį tam tikrose srityse, šviesos jutiklio sukurtų verčių diapazone buvo paskirta siaura sritis, kurią būtų galima pavadinti „jutiklis yra ant linijos ribos“.
Šis metodas turi nedidelį trūkumą - jei robotas „seka“ kairę linijos ribą, tada posūkyje į dešinę jis ne iš karto aptinka trajektorijos kreivumą ir dėl to praleidžia daugiau laiko ieškodamas linijos ir sukdamasis. Be to, galime drąsiai teigti, kad kuo staigesnis posūkis, tuo ši paieška trunka ilgiau.
Toliau pateiktame paveikslėlyje parodyta, kad jei jutiklis būtų ne kairėje ribos pusėje, o dešinėje, jis jau būtų aptikęs trajektorijos kreivumą ir pradėtų atlikti posūkio manevrus.

Todėl pravartu robote vienu metu įrengti du jutiklius, kurie yra priešingose ​​linijos pusėse ir atitinkamai padėtų robotui greičiau reaguoti į judėjimo krypties pokyčius.
Dabar turime nustatyti, kaip šis dizaino pakeitimas paveiks programą. Paprastumo dėlei vėl turėtume pradėti nuo paprasčiausio relės valdiklio, todėl visų pirma mus domina galimos jutiklių padėties linijos atžvilgiu:

Tiesą sakant, galima identifikuoti dar vieną priimtiną sąlygą - sudėtinguose maršrutuose tai bus sankryžos susikirtimas arba tam tikras sutirštėjimas kelyje.
Kitos jutiklių padėties nebus atsižvelgiama, nes jos yra arba išvestinės iš tų, kurios parodytos aukščiau, arba tai yra roboto padėtys, kai jis paliko liniją ir nebegalės grįžti į ją naudodamas informaciją iš jutiklių. . 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š šviesaus paviršiaus
  • 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 įprasta situacija, kai linija yra tarp jutiklių, todėl robotas turi eiti tiesiai tamsus, tada robotas nuvažiavo dešinę pusę ant linijos, o tai reiškia, kad jis turi pasukti į dešinę, kad linija vėl būtų tarp jutiklių. Jei kairysis jutiklis yra virš tamsaus paviršiaus, o dešinysis yra nejudantis virš šviesaus, tada robotas turi pasukti į kairę. Jei abu jutikliai yra virš tamsaus paviršiaus, tada apskritai robotas ir toliau juda tiesiai.

Aukščiau pateikta diagrama iš karto parodo, kaip tiksliai turi pasikeisti variklių elgsena. Dabar programos rašymas neturėtų būti sudėtingas. Pirmiausia turėtumėte pasirinkti, kuris jutiklis bus apklaustas. Tai nelabai svarbu, todėl tegul tai paliekama. 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 reikia 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 šviesoje“, viršuje - „kairė šviesa, dešinė tamsoje“:
Apatinė pagrindinės būklės šaka yra atsakinga už kitą III ir IV sąlygų grupę. Abi būsenos taip pat skiriasi viena nuo kitos šviesos lygiu, kurį aptinka tinkamas jutiklis. Tai reiškia, kad 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 jutiklių rodmenų tam tikroje lauko vietoje, natūralu, kad po akimirkos programa turi patikrinti, ar nepasikeitė rodmenys, kad būtų galima sureguliuoti atitinkamai variklių elgesys, o po akimirkos vėl, vėl ir pan. .d. Todėl jis turėtų būti įtrauktas į kilpą, kuri atliks pakartotinį patikrinimą:

Tokia gana paprasta programa užtikrins gana didelį roboto judėjimo palei liniją greitį, neskrisdamas už jos ribų, jei teisingai nustatysite maksimalų greitį judant I ir IV būsenose, taip pat nustatysite optimalų stabdymo būdą būsenose. II ir III - kuo statesni posūkiai trasoje , tuo „sunkesnis“ turėtų būti stabdymas - greitis turėtų būti mažinamas greičiau ir atvirkščiai - sklandžiais posūkiais visiškai įmanoma stabdyti išjungiant energiją ar net šiek tiek sumažinus greitį.

Taip pat reikėtų pasakyti keletą atskirų žodžių apie jutiklių išdėstymą robote. Akivaizdu, kad bus taikomos tos pačios rekomendacijos dėl šių dviejų jutiklių išdėstymo ratų atžvilgiu kaip ir vienam jutikliui, tik trikampio viršūnė laikoma segmento, jungiančio du jutiklius, viduriu. Atstumas tarp pačių jutiklių taip pat turėtų būti parinktas pagal trasos ypatybes: kuo arčiau vienas kito yra jutikliai, 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 teks daugiau „kietų“ posūkių ir mažinti greitį tiesiose atkarpose.



Įkeliama...Įkeliama...