Lego EV3. gibanje črne črte

Takole vidi oseba črto:

Takole to vidi robot:


To funkcijo bomo uporabljali pri načrtovanju in programiranju robota za tekmovalno kategorijo "Trajektorija".

Obstaja veliko načinov, kako robota naučiti videti črto in se premikati po njej. Obstajajo zapleteni programi in zelo preprosti.

Želim govoriti o načinu programiranja, ki ga bodo obvladali tudi otroci od 2. do 3. razreda. Pri tej starosti jim je veliko lažje sestaviti konstrukcije po navodilih, programiranje robota pa je zanje težka naloga. Toda ta metoda bo otroku omogočila programiranje robota na kateri koli poti poti v 15-30 minutah (ob upoštevanju faznega preverjanja in prilagajanja nekaterih značilnosti poti).

Ta metoda je bila preizkušena na občinskih in regijskih tekmovanjih iz robotike v regiji Surgut in Khanty-Mansi avtonomnem okrožju-Jugra in je naši šoli prinesla prva mesta. Tam sem se prepričal, da je ta tema zelo aktualna za številne ekipe.

No, pa začnimo.

Pri pripravi na tovrstno tekmovanje je programiranje le del rešitve problema. Začeti morate z načrtovanjem robota za določeno progo. V naslednjem članku vam bom pokazal, kako to storiti. No, ker je gibanje po črti zelo pogosto, bom začel s programiranjem.

Razmislite o različici robota z dvema svetlobnima senzorjema, saj je osnovnošolcem bolj razumljiva.

Svetlobni senzorji so priključeni na vrata 2 in 3. Motorji do vrat B in C.
Senzorji so nameščeni na robovih črte (poskusite eksperimentirati s postavitvijo senzorjev na različnih razdaljah drug od drugega in na različnih višinah).
Pomembna točka. Za najboljše delovanje takšnega vezja je zaželeno izbrati par senzorjev glede na parametre. V nasprotnem primeru bo treba uvesti blok za popravljanje vrednosti senzorjev.
Namestitev senzorjev na šasijo po klasični shemi (trikotnik), približno kot na sliki.

Program bo sestavljen iz majhnega števila blokov:


1. Dva bloka svetlobnega senzorja;
2. Štirje bloki "Matematika";
3. Dva bloka motorjev.

Robota upravljata dva motorja. Moč vsakega je 100 enot. Za našo shemo bomo vzeli povprečno vrednost moči motorja, ki je enaka 50. To pomeni, da bo povprečna hitrost pri premikanju v ravni črti enaka 50 enot. Pri odstopanju od pravokotnega gibanja se bo moč motorjev sorazmerno povečala ali zmanjšala, odvisno od kota odstopanja.

Zdaj pa ugotovimo, kako povezati vse bloke, nastaviti program in kaj se bo v njem zgodilo.
Izpostavimo dva svetlobna senzorja in jima dodelimo vrata 2 in 3.
Vzamemo blok matematike in izberemo "Odštevanje".
Priklopimo svetlobne senzorje iz izhodov "Intensity" s pnevmatikami v blok matematike na vhoda "A" in "B".
Če so senzorji robota nameščeni simetrično od središča proge, bosta vrednosti obeh senzorjev enaki. Po odštevanju dobimo vrednost - 0.
Naslednji blok matematike bo uporabljen kot koeficient in v njem morate nastaviti "Množi".
Za izračun koeficienta morate z enoto NXT izmeriti raven "bele" in "črne".
Recimo: bela -70, črna -50.
Nato izračunamo: 70-50=20 (razlika med belo in črno), 50/20=2,5 (povprečno vrednost moči pri premiku v ravni črti v blokih matematike nastavimo na 50. Ta vrednost plus dodana moč pri prilagajanju gibanja mora biti enaka 100)
Poskusite nastaviti vrednost na 2,5 na vhodu "A" in jo nato natančneje določiti.
Povežite izhod "Rezultat" prejšnjega matematičnega bloka "Odštevanje" na vhod "B" matematičnega bloka "Množenje".
Sledi par - blok matematike (Seštevanje) in motor B.
Nastavitev matematičnega bloka:
Vhod "A" je nastavljen na 50 (polovica moči motorja).
Izhod bloka "Rezultat" je povezan z vodilom na vhod "Power" motorja B.
Za paro je matematični blok (odštevanje) in motor C.
Nastavitev matematičnega bloka:
Vhod "A" je nastavljen na 50.
Vhod "B" je z vodilom povezan z izhodom "Rezultat" bloka matematike "Množenje".
Izhod bloka "Rezultat" je z vodilom povezan z vhodom "Power" motorja C.

Kot rezultat vseh teh dejanj boste prejeli naslednji program:

Ker bo vse to delovalo v ciklu, dodamo "Cikel", vse to izberemo in prenesemo v "Cikel".

Zdaj pa poskusimo ugotoviti, kako bo program deloval in kako ga konfigurirati.


Medtem ko se robot premika v ravni črti, so vrednosti senzorjev enake, kar pomeni, da bo izhod bloka "Odštevanje" 0. Izhod bloka "Množenje" daje tudi vrednost 0. Ta vrednost se dovaja vzporedno s krmilnim parom motorja. Ker je v teh blokih nastavljena vrednost 50, seštevanje ali odštevanje 0 ne vpliva na moč motorjev. Oba motorja delujeta z enako močjo 50 in robot se kotali v ravni črti.

Recimo, da steza zavije ali robot zavije iz ravne črte. Kaj se bo zgodilo?

Slika prikazuje, da se osvetlitev senzorja, ki je priključen na priključek 2 (v nadaljevanju senzorja 2 in 3), poveča, saj se premakne v belo polje, osvetlitev senzorja 3 pa se zmanjša. Recimo, da vrednosti teh senzorjev postanejo: senzor 2 - 55 enot in senzor 3 - 45 enot.
Blok "Odštevanja" bo določil razliko med vrednostmi dveh senzorjev (10) in jo poslal v korekcijski blok (množenje s faktorjem (10 * 2,5 = 25)) in nato v krmilne bloke
motorji.
V matematičnem bloku (Dodatek) krmiljenja motorja B na povprečno vrednost hitrosti 50
Dodano bo 25 in vrednost moči 75 bo uporabljena za motor B.
V matematičnem bloku (Odštevanje) krmilnega motorja C se od povprečne vrednosti hitrosti 50 odšteje 25, za motor C pa se uporabi vrednost moči 25.
Tako bo odstopanje od ravne črte popravljeno.

Če proga ostro zavije v stran in je senzor 2 na belem in senzor 3 na črni. Vrednosti osvetlitve teh senzorjev postanejo: senzor 2 - 70 enot in senzor 3 - 50 enot.
Blok "Odštevanje" bo določil razliko med vrednostma dveh senzorjev (20) in jo poslal v korekcijski blok (20 * 2,5 = 50) in nato v bloke krmiljenja motorja.
Zdaj v bloku matematike (Seštevanje), ki krmili motor B, bo vrednost moči 50 +50 =100 uporabljena za motor B.
V matematičnem bloku (Odštevanje) krmiljenja motorja C se za motor C uporabi vrednost moči 50 - 50 = 0.
In robot bo naredil oster zavoj.

Na belih in črnih poljih se mora robot premikati v ravni črti. Če se to ne zgodi, poskusite uskladiti senzorje z enakimi vrednostmi.

Zdaj ustvarimo nov blok in ga uporabimo za premikanje robota po kateri koli poti.
Izberite cikel, nato v meniju »Uredi« izberite ukaz »Ustvari moj blok«.

V pogovornem oknu "Ustvarjalnik blokov" poimenujte naš blok, na primer "Pojdi", izberite ikono za blok in kliknite "KONČANO".

Zdaj imamo blok, ki ga lahko uporabimo v primerih, ko se moramo premikati vzdolž črte.

Da bi se robot nemoteno premikal vzdolž črne črte, morate izračunati hitrost gibanja.

Človek vidi črno črto in njeno jasno mejo. Svetlobni senzor deluje nekoliko drugače.

Prav to lastnost svetlobnega senzorja - nezmožnost jasnega razlikovanja med belo in črno mejo - bomo uporabili za izračun hitrosti gibanja.

Najprej uvedemo pojem "Idealna točka poti".

Odčitki svetlobnega senzorja se gibljejo od 20 do 80, najpogosteje na beli barvi, odčitki so približno 65, na črni približno 40.

Idealna točka je pogojna točka približno na sredini bele in črne barve, po kateri se bo robot premikal po črni črti.

Tu je lokacija pike temeljna - med belo in črno. Točno na belo ali črno ga ne bo mogoče nastaviti iz matematičnih razlogov, zakaj - bo jasno kasneje.

Empirično smo izračunali, da je idealno točko mogoče izračunati z naslednjo formulo:

Robot se mora premikati strogo vzdolž idealne točke. Če pride do odstopanja v katero koli smer, se mora robot vrniti na to točko.

Sestavljajmo se matematični opis problema.

Začetni podatki.

Popolna točka.

Trenutni odčitki svetlobnega senzorja.

Rezultat.

Moč motorja B.

Moč vrtenja motorja C.

Odločitev.

Poglejmo dve situaciji. Prvič: robot je odstopil od črne črte proti beli.

V tem primeru mora robot povečati moč vrtenja motorja B in zmanjšati moč motorja C.

V situaciji, ko robot zapelje v črno črto, je ravno obratno.

Bolj ko robot odstopa od idealne točke, hitreje se mora vrniti nanjo.

Toda ustvarjanje takšnega regulatorja je precej težka naloga in ni vedno potrebna v celoti.

Zato smo se odločili, da se omejimo na P-regulator, ki se ustrezno odziva na odstopanja od črne črte.

V jeziku matematike bi to zapisali takole:

kjer sta Hb in Hc skupni moči motorjev B oziroma C,

Hbase - določena osnovna moč motorjev, ki določa hitrost robota. Izbere se eksperimentalno, odvisno od zasnove robota in ostrine zavojev.

Itech - trenutni odčitki svetlobnega senzorja.

Id - izračunana idealna točka.

k je koeficient sorazmernosti, izbran eksperimentalno.

V tretjem delu si bomo ogledali, kako to programirati v okolju NXT-G.

Krmilni algoritmi za mobilnega robota LEGO. Sledenje liniji z dvema svetlobnima senzorjema

Učitelj dodatnega izobraževanja

Kazakova Lyubov Aleksandrovna


Gibanje črte

  • Dva svetlobna senzorja
  • Proporcionalni regulator (P regulator)

Algoritem za premikanje po črni črti brez proporcionalnega krmilnika

  • Oba motorja se vrtita z enako močjo
  • Če desni senzor svetlobe zadene črno črto, se moč levega motorja (na primer B) zmanjša ali ustavi
  • Če levi svetlobni senzor zadene črno črto, se moč drugega od motorjev (na primer C) zmanjša (vrne se na črto), zmanjša ali ustavi
  • Če sta oba senzorja na beli ali črni barvi, je gibanje premočrtno

Gibanje je organizirano s spreminjanjem moči enega od motorjev


Primer programa za premikanje po črni črti brez P-krmilnika

Gibanje je organizirano s spreminjanjem kota vrtenja


  • Proporcionalni krmilnik (P-krmilnik) omogoča prilagajanje obnašanja robota glede na to, koliko se njegovo obnašanje razlikuje od želenega.
  • Bolj ko robot odstopa od cilja, več sile je potrebno, da se vrne do njega.

  • P-krmilnik se uporablja za vzdrževanje robota v določenem stanju:
  • Držite položaj manipulatorja. Premaknite se vzdolž črte (senzor svetlobe) Premaknite se vzdolž stene (senzor razdalje)
  • Zadrževanje položaja manipulatorja
  • Gibanje črte (senzor svetlobe)
  • Premikanje po steni (senzor razdalje)

Sledenje liniji z enim senzorjem

  • Cilj je premikanje ob meji "belo-črno"
  • Oseba lahko razlikuje mejo bele in črne. Robot ne more.
  • Cilj za robota je na sivi barvi

Križišča

Pri uporabi dveh svetlobnih senzorjev je možno organizirati promet na težjih poteh



Algoritem za vožnjo po avtocesti s križišči

  • Oba senzorja na belem - robot vozi v ravni črti (oba motorja se vrtita z enako močjo)
  • Če desni svetlobni senzor zadene črno črto, levi pa belo črto, se obrne desno
  • Če levi svetlobni senzor zadene črno črto, desni pa belo črto, se obrne levo
  • Če sta oba senzorja črna, pride do pravokotnega gibanja. Lahko preštejete križišča ali izvedete kakšno dejanje


Načelo delovanja P-regulatorja

Položaj senzorjev

O=O1-O2


Algoritem za premikanje po črni črti s proporcionalnim krmilnikom

SW \u003d K * (C-T)

  • C - ciljne vrednosti (vzemite odčitke svetlobnega senzorja na beli in črni, izračunajte povprečje)
  • T - trenutna vrednost - prejeta od senzorja
  • K je koeficient občutljivosti. Več kot je, višja je občutljivost.



Če si želite ogledati predstavitev s slikami, dizajnom in diapozitivi, prenesite njegovo datoteko in jo odprite v PowerPointu na vašem računalniku.
Besedilna vsebina predstavitvenih diapozitivov:
"Algoritem za premikanje po črni črti z enim barvnim senzorjem" Krog o "Robotiki" Učitelj pred Yezidov Ahmed Elievich Na MBU DO "Shelkovskaya CTT" Za preučevanje algoritma za premikanje po črni črti, robot Lego Mindstorms EV3 z enim barvnim senzorjem bo uporabljen Barvni senzor Barvni senzor razlikuje 7 barv in lahko zazna odsotnost barve. Tako kot v NXT lahko deluje kot svetlobni senzor Line S Robot Competition Field Predlagana steza v obliki črke "S" vam bo omogočila še en zanimiv test ustvarjenih robotov za hitrost in reakcijo. Oglejmo si najpreprostejši algoritem za premikanje vzdolž črne črte na enem barvnem senzorju na EV3. Ta algoritem je najpočasnejši, a najbolj stabilen. Robot se ne bo premikal strogo vzdolž črne črte, temveč vzdolž njene meje, obračal levo in desno ter postopno premikanje naprej Algoritem je zelo preprost: če senzor vidi črno, se robot obrne v eno smer, če vidi belo - v drugo. Sledenje črte v načinu odbite svetlobe z dvema senzorjema Včasih barvni senzor morda ne bo mogel dobro razlikovati med črno in belo. Rešitev tega problema je uporaba senzorja ne v načinu zaznavanja barv, temveč v načinu zaznavanja svetlosti odbite svetlobe. V tem načinu, če poznamo vrednosti senzorja na temni in svetli površini, lahko samostojno rečemo, kaj se bo štelo za belo in kaj bo za črno. Zdaj določimo vrednosti svetlosti na beli in črni površini. Če želite to narediti, v meniju EV3 Brick najdemo zavihek "Brick Applications". Zdaj ste v oknu pogleda vrat in lahko vidite odčitke vseh senzorjev v trenutnem trenutku. naši senzorji bi morali svetiti rdeče, kar pomeni, da so v načinu zaznavanja odbojne svetlobe. Če svetijo modro, v oknu pogleda vrat na želenem pristanišču pritisnite sredinski gumb in izberite način COL-REFLECT Zdaj bomo robota postavili tako, da se oba senzorja nahajata nad belo površino. Pogledamo številke v vratih 1 in 4. V našem primeru sta vrednosti 66 oziroma 71. To bodo bele vrednosti senzorjev. Zdaj postavimo robota tako, da se senzorji nahajajo nad črno površino. Še enkrat, poglejmo vrednosti vrat 1 in 4. Imamo 5 oziroma 6. To so pomeni črne barve. Nato bomo spremenili prejšnji program. Spremenimo namreč nastavitve stikal. Dokler imajo nameščen Barvni senzor -> Merjenje -> Barva. Nastaviti moramo Barvni senzor -> Primerjava -> Intenzivnost odbojne svetlobe. Zdaj moramo nastaviti "tip primerjave" in "mejno vrednost". Mejna vrednost je vrednost nekaj "sive", vrednosti, pod katerimi bomo obravnavali črno, in več - belo. Za prvi približek je priročno uporabiti povprečno vrednost med belo in črno barvo vsakega senzorja. Tako bo mejna vrednost prvega senzorja (vrata #1) (66+5)/2=35,5. Zaokrožite na 35. Mejna vrednost drugega senzorja (vrata #4): (71+6)/2 = 38,5. Zaokrožimo na 38. Zdaj te vrednosti nastavimo v vsakem stikalu. To je vse, bloki s premiki ostanejo na svojih mestih nespremenjeni, ker če znak " vstavimo v "tip primerjave"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Besedilo dela je postavljeno brez slik in formul.
Celotna različica dela je na voljo v zavihku "Job Files" v formatu PDF

Lego Mindstorms EV3

Pripravljalna faza

Izdelava in kalibracija programa

Zaključek

Literatura

1. Uvod.

Robotika je eno najpomembnejših področij znanstvenega in tehnološkega napredka, v katerem se problemi mehanike in novih tehnologij dotikajo problematike umetne inteligence.

V zadnjih letih je napredek v robotiki in avtomatiziranih sistemih spremenil osebna in poslovna področja našega življenja. Roboti se pogosto uporabljajo v transportu, raziskovanju zemlje in vesolja, kirurgiji, vojaški industriji, laboratorijskih raziskavah, varnosti, množični proizvodnji industrijskih in potrošniških dobrin. Številne naprave, ki sprejemajo odločitve na podlagi podatkov, prejetih od senzorjev, lahko štejemo tudi za robote – kot so na primer dvigala, brez katerih je naše življenje že nepredstavljivo.

Konstruktor Mindstorms EV3 nas vabi, da vstopimo v fascinanten svet robotov, se potopimo v zapleteno okolje informacijske tehnologije.

Cilj: Naučiti se programirati robota, da se premika v ravni črti.

    Spoznajte konstruktor Mindstorms EV3 in njegovo programsko okolje.

    Napišite programe za premikanje robota po ravni črti za 30 cm, 1 m 30 cm in 2 m 17 cm.

    Konstruktor Mindstorms EV3.

Dizajnerski deli - 601 kos, servo motor - 3 kosi, barvni senzor, senzor gibanja, infrardeči senzor in senzor dotika. Mikroprocesorski blok EV3 so možgani LEGO Mindstorms.

Za gibanje robota je odgovoren velik servomotor, ki se poveže z EV3 Brick in poskrbi, da se robot premika: gre naprej in nazaj, se obrne in vozi po dani poti. Ta servomotor ima vgrajen senzor vrtenja, ki vam omogoča zelo natančno nadzorovanje gibanja robota in njegove hitrosti.

Robota lahko naredite, da izvede dejanje s programsko opremo EV3. Program je sestavljen iz različnih krmilnih blokov. Delali bomo z gibalnim blokom.

Blok gibanja krmili motorje robota, ga vklopi, izklopi, poskrbi, da deluje v skladu z nalogami. Gibanje lahko programirate na določeno število vrtljajev ali stopinj.

    Pripravljalna faza.

    Ustvarjanje tehničnega področja.

Označili bomo delovno polje robota, z električnim trakom in ravnilom bomo ustvarili tri črte dolžine 30 cm - zeleno črto, 1 m 15 cm - rdečo in 2 m 17 cm - črne črte.

    Potrebni izračuni:

Premer kolesa robota - 5 cm 7 mm = 5,7 cm.

En obrat kolesa robota je enak obsegu kroga s premerom 5,7 cm Obseg najdemo po formuli

Kjer je r polmer kolesa, d je premer, π = 3,14

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

tiste. Za en obrat kolesa robot prepotuje 17,9 cm.

Izračunajte število vrtljajev, potrebnih za prehod:

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.

    Izdelava in kalibracija programa.

Program bomo izdelali po naslednjem algoritmu:

algoritem:

    Izberite blok gibanja v programski opremi Mindstorms EV3.

    Vklopite oba motorja v dani smeri.

    Počakajte, da se odčitavanje senzorja vrtenja enega od motorjev spremeni na določeno vrednost.

    Izklopite motorje.

Končni program se naloži v krmilno enoto robota. Robota postavimo na polje in pritisnemo gumb za zagon. EV3 vozi čez polje in se ustavi na koncu dane vrstice. Toda da bi dosegli natančen zaključek, morate kalibrirati, saj zunanji dejavniki vplivajo na gibanje.

    Polje je nameščeno na študentskih mizah, zato je možen rahel odklon površine.

    Površina polja je gladka, zato ni izključen slab oprijem koles robota na polje.

    Pri izračunu števila vrtljajev smo morali številke zaokrožiti, zato smo s spreminjanjem stotink vrtljajev dosegli zahtevani rezultat.

5. Zaključek.

Zmožnost programiranja robota, da se premika po ravni črti, bo koristna za ustvarjanje bolj zapletenih programov. Praviloma so vse razsežnosti gibanja navedene v nalogu za tekmovanja v robotiki. Potrebni so, da program ni preobremenjen z logičnimi pogoji, zankami in drugimi zapletenimi krmilnimi bloki.

Na naslednji stopnji seznanitve z robotom Lego Mindstorms EV3 se boste naučili programirati zavoje pod določenim kotom, gibanje v krogu, spirale.

Zelo zanimivo je sodelovati z oblikovalcem. Če se naučite več o njegovih zmogljivostih, lahko rešite vse tehnične težave. In v prihodnosti morda ustvarite svoje zanimive modele robota Lego Mindstorms EV3.

Literatura.

    Koposov D. G. "Prvi korak v robotiko za 5-6 razrede." - M.: Binom. Laboratorij znanja, 2012 - 286 str.

    Filippov S. A. "Robotika za otroke in starše" - "Znanost" 2010

    Internetni viri

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

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

    http://www. lego. com/izobraževanje/

Nalaganje...Nalaganje...