Lego EV3. kretanje crne linije

Ovako osoba vidi liniju:

Ovako to vidi robot:


Ovu značajku koristit ćemo prilikom dizajniranja i programiranja robota za natjecateljsku kategoriju "Putanja".

Postoji mnogo načina da naučite robota da vidi liniju i kreće se po njoj. Postoje složeni programi i vrlo jednostavni.

Želim govoriti o načinu programiranja koji će svladati čak i djeca od 2. do 3. razreda. U ovoj dobi puno im je lakše sastavljati strukture prema uputama, a programiranje robota im je težak zadatak. Ali ova će metoda omogućiti djetetu da programira robota na bilo kojoj ruti staze za 15-30 minuta (uzimajući u obzir faznu provjeru i prilagodbu nekih značajki putanje).

Ova metoda testirana je na općinskim i regionalnim natjecanjima iz robotike u regiji Surgut i Khanty-Mansijskom autonomnom okrugu-Jugri i donijela je našoj školi prva mjesta. Tamo sam se uvjerio da je ova tema vrlo relevantna za mnoge timove.

Pa, krenimo.

Kada se pripremate za ovakvu vrstu natjecanja, programiranje je samo dio rješenja problema. Morate započeti s dizajniranjem robota za određenu stazu. U sljedećem članku pokazat ću vam kako to učiniti. Pa, budući da je kretanje duž linije vrlo uobičajeno, počet ću s programiranjem.

Razmislite o verziji robota s dva senzora svjetlosti, jer je to razumljivije učenicima osnovne škole.

Svjetlosni senzori su spojeni na priključke 2 i 3. Motori do priključaka B i C.
Senzori se postavljaju na rubove linije (pokušajte eksperimentirati s postavljanjem senzora na različitim udaljenostima jedan od drugog i na različitim visinama).
Važna točka. Za najbolji rad takvog kruga poželjno je odabrati par senzora prema parametrima. Inače će biti potrebno uvesti blok za ispravljanje vrijednosti senzora.
Ugradnja senzora na šasiju prema klasičnoj shemi (trokut), otprilike kao na slici.

Program će se sastojati od malog broja blokova:


1. Dva bloka svjetlosnog senzora;
2. Četiri bloka "Matematika";
3. Dva bloka motora.

Robotom upravljaju dva motora. Snaga svake je 100 jedinica. Za našu shemu uzet ćemo prosječnu vrijednost snage motora jednaku 50. To jest, prosječna brzina pri kretanju u ravnoj liniji bit će jednaka 50 jedinica. Prilikom odstupanja od pravolinijskog gibanja, snaga motora će se proporcionalno povećavati ili smanjivati, ovisno o kutu odstupanja.

Sada ćemo shvatiti kako spojiti sve blokove, postaviti program i što će se dogoditi u njemu.
Izložimo dva svjetlosna senzora i dodijelimo im priključke 2 i 3.
Uzimamo blok matematike i odabiremo "Oduzimanje".
Spojimo svjetlosne senzore s izlaza "Intenzitet" s gumama na blok matematike na "A" i "B" ulaze.
Ako su senzori robota postavljeni simetrično od središta pruge, tada će vrijednosti oba senzora biti jednake. Nakon oduzimanja dobivamo vrijednost - 0.
Sljedeći blok matematike koristit će se kao koeficijent i u njemu morate postaviti "Množenje".
Da biste izračunali koeficijent, trebate izmjeriti razinu "bijele" i "crne" pomoću NXT jedinice.
Pretpostavimo: bijela -70, crna -50.
Zatim izračunavamo: 70-50=20 (razlika između bijele i crne), 50/20=2,5 (postavimo prosječnu vrijednost snage kada se krećemo u ravnoj liniji u blokovima matematike na 50. Ova vrijednost plus dodana snaga pri podešavanju pokreta trebala bi biti jednaka 100)
Pokušajte postaviti vrijednost na 2,5 na "A" ulazu, a zatim je pokupite točnije.
Povežite izlaz "Rezultat" prethodnog matematičkog bloka "Subtraction" na "B" ulaz matematičkog bloka "Množenje".
Slijedi par - blok matematike (zbrajanje) i motor B.
Postavljanje matematičkog bloka:
Ulaz "A" je postavljen na 50 (pola snage motora).
Izlaz bloka "Rezultat" povezan je sabirnicom na ulaz "Power" motora B.
Nakon pare je matematički blok (Oduzimanje) i motor C.
Postavljanje matematičkog bloka:
Ulaz "A" je postavljen na 50.
Ulaz "B" povezan je sabirnicom s izlazom "Rezultat" bloka matematike "Množenje".
Izlaz bloka "Rezultat" povezan je sabirnicom na ulaz "Power" motora C.

Kao rezultat svih ovih radnji, dobit ćete sljedeći program:

Budući da će sve to raditi u ciklusu, dodajemo "Ciklus", odabiremo i sve to prenosimo u "Ciklus".

Sada pokušajmo shvatiti kako će program raditi i kako ga konfigurirati.


Dok se robot kreće pravolinijski, vrijednosti senzora su iste, što znači da će izlaz bloka "Subtract" imati vrijednost 0. Izlaz bloka "Množenje" također daje vrijednost 0. Ova vrijednost se dovodi paralelno s upravljačkim parom motora. Budući da je vrijednost 50 postavljena u ovim blokovima, zbrajanje ili oduzimanje 0 ne utječe na snagu motora. Oba motora rade istom snagom od 50 i robot se kotrlja ravno.

Pretpostavimo da staza skreće ili robot odstupi od ravne linije. Što će se dogoditi?

Slika pokazuje da se osvjetljenje senzora spojenog na priključak 2 (u daljnjem tekstu senzori 2 i 3) povećava, budući da se pomiče u bijelo polje, a osvjetljenje senzora 3 se smanjuje. Pretpostavimo da vrijednosti ovih senzora postaju: senzor 2 - 55 jedinica i senzor 3 - 45 jedinica.
Blok "Subtractions" će odrediti razliku između vrijednosti dva senzora (10) i prenijeti je u blok korekcije (množenje s faktorom (10 * 2,5 = 25)), a zatim u kontrolne blokove
motori.
U matematičkom bloku (Dodavanje) motora B upravljanje na prosječnu vrijednost brzine 50
25 će se dodati i vrijednost snage od 75 primijeniti na motor B.
U matematičkom bloku (Oduzimanje) upravljačkog motora C, 25 će se oduzeti od prosječne vrijednosti brzine od 50, a vrijednost snage 25 će se primijeniti na motor C.
Tako će se ispraviti odstupanje od ravne linije.

Ako staza skreće naglo u stranu i senzor 2 je na bijeloj boji, a senzor 3 na crnoj boji. Vrijednosti osvjetljenja ovih senzora postaju: senzor 2 - 70 jedinica, i senzor 3 - 50 jedinica.
Blok "Subtraction" će odrediti razliku između vrijednosti dva senzora (20) i prenijeti je u blok korekcije (20 * 2,5 = 50), a zatim u upravljačke blokove motora.
Sada u bloku matematike (Addicija) koji upravlja motorom B, vrijednost snage 50 +50 =100 bit će primijenjena na motor B.
U matematičkom bloku (Oduzimanje) upravljanja motorom C, vrijednost snage od 50 - 50 = 0 bit će primijenjena na motor C.
I robot će napraviti oštar zaokret.

Na bijelim i crnim poljima robot se mora kretati pravocrtno. Ako se to ne dogodi, pokušajte uskladiti senzore s istim vrijednostima.

Sada napravimo novi blok i upotrijebimo ga za pomicanje robota duž bilo koje staze.
Odaberite ciklus, a zatim u izborniku "Uredi" odaberite naredbu "Kreiraj moj blok".

U dijaloškom okviru "Block Builder" dajte naziv našem bloku, na primjer, "Idi", odaberite ikonu za blok i kliknite "GOTOVO".

Sada imamo blok koji se može koristiti u slučajevima kada se trebamo kretati duž linije.

Kako bi se robot glatko kretao duž crne linije, morate ga natjerati da izračuna samu brzinu kretanja.

Osoba vidi crnu liniju i njezinu jasnu granicu. Senzor svjetla radi malo drugačije.

Upravo to svojstvo svjetlosnog senzora – nemogućnost jasne razlike između bijele i crne granice – koristit ćemo za izračunavanje brzine kretanja.

Najprije uvedemo pojam “Idealna točka putanje”.

Očitavanja svjetlosnog senzora kreću se od 20 do 80, najčešće na bijeloj, očitanja su oko 65, na crnoj oko 40.

Idealna točka je uvjetna točka otprilike u sredini bijele i crne boje, nakon koje će se robot kretati duž crne linije.

Ovdje je mjesto točke temeljno - između bijele i crne. Neće ga biti moguće postaviti točno na bijelo ili crno iz matematičkih razloga, zašto - bit će jasno kasnije.

Empirijski smo izračunali da se idealna točka može izračunati pomoću sljedeće formule:

Robot se mora kretati strogo duž idealne točke. Ako dođe do odstupanja u bilo kojem smjeru, robot se mora vratiti u tu točku.

Skladajmo matematički opis problema.

Početni podaci.

Savršena točka.

Trenutna očitanja svjetlosnog senzora.

Proizlaziti.

Snaga motora B.

Snaga rotacije motora C.

Odluka.

Razmotrimo dvije situacije. Prvo: robot je odstupio od crne linije prema bijeloj.

U tom slučaju robot mora povećati snagu rotacije motora B i smanjiti snagu motora C.

U situaciji kada robot zabije u crnu liniju, točno je suprotno.

Što robot više odstupa od idealne točke, brže se mora vratiti u nju.

Ali stvaranje takvog regulatora je prilično težak zadatak i nije uvijek potreban u cijelosti.

Stoga smo se odlučili ograničiti na P-regulator koji adekvatno reagira na odstupanja od crne linije.

Jezikom matematike ovo bi bilo napisano kao:

gdje su Hb i Hc ukupne snage motora B i C, redom,

Hbase - određena bazna snaga motora, koja određuje brzinu robota. Odabire se eksperimentalno, ovisno o dizajnu robota i oštrini zavoja.

Itech - trenutna očitanja svjetlosnog senzora.

Id - izračunata idealna točka.

k je koeficijent proporcionalnosti, odabran eksperimentalno.

U trećem dijelu ćemo pogledati kako to programirati u okruženju NXT-G.

Upravljački algoritmi za mobilni LEGO robot. Praćenje linije s dva svjetlosna senzora

Učiteljica dodatnog obrazovanja

Kazakova Lyubov Aleksandrovna


Kretanje linije

  • Dva svjetlosna senzora
  • Proporcionalni regulator (P regulator)

Algoritam za kretanje duž crne linije bez proporcionalnog regulatora

  • Oba motora se vrte istom snagom
  • Ako desni senzor svjetla pogodi crnu liniju, tada se snaga lijevog motora (na primjer B) smanjuje ili zaustavlja
  • Ako lijevi svjetlosni senzor udari u crnu liniju, tada se snaga drugog motora (na primjer, C) smanjuje (vraća se na liniju), smanjuje se ili zaustavlja
  • Ako su oba senzora na bijeloj ili crnoj boji, postoji pravocrtno kretanje

Kretanje je organizirano promjenom snage jednog od motora


Primjer programa za kretanje po crnoj liniji bez P-kontrolera

Kretanje je organizirano promjenom kuta rotacije


  • Proporcionalni kontroler (P-controller) omogućuje podešavanje ponašanja robota, ovisno o tome koliko se njegovo ponašanje razlikuje od željenog.
  • Što robot više odstupa od cilja, to je veća sila potrebna da se vrati do njega.

  • P-kontroler se koristi za održavanje robota u određenom stanju:
  • Zadržite položaj manipulatora Kretanje duž linije (senzor svjetla) Kretanje duž zida (senzor udaljenosti)
  • Zadržavanje položaja manipulatora
  • Kretanje linije (senzor svjetla)
  • Kretanje duž zida (senzor udaljenosti)

Praćenje linije s jednim senzorom

  • Cilj je kretanje uz granicu "bijelo-crno"
  • Osoba može razlikovati granicu bijele i crne boje. Robot ne može.
  • Meta za robota je na sivoj boji

Prijelazi

Pri korištenju dva svjetlosna senzora moguće je organizirati promet na težim rutama



Algoritam za vožnju autocestom s raskrižjima

  • Oba senzora na bijelom - robot vozi ravno (oba motora se vrte istom snagom)
  • Ako desni senzor svjetla pogodi crnu liniju, a lijevi na bijelu liniju, onda skreće udesno
  • Ako lijevi senzor svjetla udari u crnu liniju, a desni u bijelu liniju, onda skreće lijevo
  • Ako su oba senzora crna, tada dolazi do pravocrtnog kretanja. Možete brojati raskrižja ili izvoditi neku vrstu radnje


Princip rada P-regulatora

Položaj senzora

O=O1-O2


Algoritam za kretanje duž crne linije s proporcionalnim regulatorom

SW \u003d K * (C-T)

  • C - ciljne vrijednosti (uzmite očitanja sa svjetlosnog senzora na bijeloj i crnoj boji, izračunajte prosjek)
  • T - trenutna vrijednost - primljena od senzora
  • K je koeficijent osjetljivosti. Što više, to je veća osjetljivost.



Za prikaz prezentacije sa slikama, dizajnom i slajdovima, preuzmite njegovu datoteku i otvorite je u PowerPointu na vašem računalu.
Tekstualni sadržaj slajdova prezentacije:
“Algoritam za kretanje duž crne linije s jednim senzorom boje” Krug o “Robotici” Nastavnik prije Yezidova Ahmeda Elijeviča U MBU DO “Shelkovskaya CTT” Za proučavanje algoritma za kretanje duž crne linije, Lego Mindstorms EV3 robot s jednim senzorom boje koristit će se Senzor boja Senzor boja razlikuje 7 boja i može otkriti odsutnost boje. Kao i u NXT-u, može raditi kao svjetlosni senzor Line S Robot Competition Field Predložena staza u obliku slova "S" omogućit će vam da provedete još jedan zanimljiv test stvorenih robota na brzinu i reakciju. Razmotrimo najjednostavniji algoritam za kretanje duž crne linije na jednom senzoru boje na EV3. Ovaj algoritam je najsporiji, ali najstabilniji. Robot se neće kretati strogo duž crne linije, već duž njezine granice, okrećući se lijevo i desno i postupno se kreće naprijed Algoritam je vrlo jednostavan: ako senzor vidi crno, onda se robot okreće u jednom smjeru, ako vidi bijelo - u drugom. Praćenje linije u načinu reflektiranog svjetla s dva senzora Ponekad senzor boje možda neće moći dobro razlikovati crno-bijelo. Rješenje ovog problema je korištenje senzora ne u načinu detekcije boja, već u načinu detekcije svjetline reflektirane svjetlosti. U ovom načinu rada, znajući vrijednosti senzora na tamnoj i svijetloj površini, možemo samostalno reći što će se smatrati bijelim, a što crnim. Sada odredimo vrijednosti svjetline na bijeloj i crnoj površini. Da biste to učinili, u izborniku EV3 Brick nalazimo karticu "Brick Applications" Sada ste u prozoru za prikaz porta i možete vidjeti očitanja svih senzora u trenutnom trenutku. naši senzori trebaju svijetliti crveno, što znači da su u načinu detekcije reflektirane svjetlosti. Ako svijetle plavo, u prozoru za prikaz porta na željenom portu pritisnite središnju tipku i odaberite način rada COL-REFLECT Sada ćemo robota postaviti tako da se oba senzora nalaze iznad bijele površine. Gledamo brojeve u portovima 1 i 4. U našem slučaju, vrijednosti su 66, odnosno 71. To će biti bijele vrijednosti senzora. Sada postavimo robota tako da se senzori nalaze iznad crne površine. Opet, pogledajmo vrijednosti portova 1 i 4. Imamo 5 i 6. Ovo su značenja crne. Zatim ćemo izmijeniti prethodni program. Naime, mijenjamo postavke prekidača. Sve dok imaju instaliran senzor boje -> mjerenje -> boja. Moramo postaviti senzor boje -> Usporedba -> Intenzitet reflektiranog svjetla Sada moramo postaviti "vrstu usporedbe" i "vrijednost praga". Vrijednost praga je vrijednost neke "sive", vrijednosti ispod kojih ćemo smatrati crnom, a više - bijelom. Za prvu aproksimaciju, prikladno je koristiti prosječnu vrijednost između bijele i crne boje svakog senzora. Dakle, vrijednost praga prvog senzora (priključak #1) bit će (66+5)/2=35,5. Zaokružite na 35. Vrijednost praga drugog senzora (port #4): (71+6)/2 = 38,5. Zaokružimo na 38. Sada postavljamo ove vrijednosti u svaki prekidač, odnosno. To je sve, blokovi s pokretima ostaju na svojim mjestima nepromijenjeni, jer ako stavimo znak " u "vrstu usporedbe"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Tekst rada postavljen je bez slika i formula.
Puna verzija rada dostupna je na kartici "Datoteke poslova" u PDF formatu

Lego Mindstorms EV3

Pripremna faza

Izrada i kalibracija programa

Zaključak

Književnost

1. Uvod.

Robotika je jedno od najvažnijih područja znanstvenog i tehnološkog napretka, u kojem se problemi mehanike i novih tehnologija susreću s problemima umjetne inteligencije.

Posljednjih godina napredak u robotici i automatiziranim sustavima promijenio je osobna i poslovna područja naših života. Roboti se široko koriste u transportu, istraživanju zemlje i svemira, kirurgiji, vojnoj industriji, laboratorijskim istraživanjima, sigurnosti, masovnoj proizvodnji industrijskih i potrošačkih dobara. Mnogi uređaji koji donose odluke na temelju podataka dobivenih od senzora također se mogu smatrati robotima – kao što su, na primjer, dizala, bez kojih je naš život već nezamisliv.

Mindstorms EV3 konstruktor poziva nas da uđemo u fascinantan svijet robota, uronimo u složeno okruženje informacijske tehnologije.

Cilj: Naučiti programirati robota da se kreće pravocrtno.

    Upoznajte se s konstruktorom Mindstorms EV3 i njegovim programskim okruženjem.

    Napišite programe za pravocrtno kretanje robota za 30 cm, 1 m 30 cm i 2 m 17 cm.

    Mindstorms EV3 konstruktor.

Dizajnerski dijelovi - 601 kom, servo motor - 3 kom, senzor boje, senzor pokreta, infracrveni senzor i senzor dodira. EV3 mikroprocesorski blok je mozak LEGO Mindstormsa.

Za kretanje robota odgovoran je veliki servomotor, koji se povezuje s EV3 Brickom i tjera robota da se kreće: ide naprijed-natrag, okreće se i vozi zadanom putanjom. Ovaj servomotor ima ugrađen senzor rotacije, koji vam omogućuje vrlo precizno upravljanje kretanjem robota i njegovom brzinom.

Možete natjerati robota da izvrši radnju pomoću softvera EV3. Program se sastoji od raznih kontrolnih blokova. Radit ćemo s blokom kretanja.

Blok pokreta kontrolira motore robota, uključuje ga, isključuje, tjera da radi u skladu sa zadacima. Možete programirati kretanje na određeni broj okretaja ili stupnjeva.

    Pripremna faza.

    Stvaranje tehničkog polja.

Obilježit ćemo radno polje robota, pomoću ljepljive trake i ravnala, izraditi tri linije dužine 30 cm - zelenu liniju, 1 m 15 cm - crvenu i 2 m 17 cm - crne linije.

    Potrebni izračuni:

Promjer kotača robota - 5 cm 7 mm = 5,7 cm.

Jedan okret kotača robota jednak je opsegu kruga promjera 5,7 cm. Obim se nalazi po formuli

Gdje je r polumjer kotača, d je promjer, π = 3,14

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

Oni. Za jedan okret kotača robot prijeđe 17,9 cm.

Izračunajte broj okretaja potreban za prolazak:

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.

    Izrada i kalibracija programa.

Napravit ćemo program prema sljedećem algoritmu:

Algoritam:

    Odaberite blok pokreta u softveru Mindstorms EV3.

    Uključite oba motora u zadanom smjeru.

    Pričekajte da se očitanje senzora rotacije jednog od motora promijeni na zadanu vrijednost.

    Isključite motore.

Gotov program se učitava u upravljačku jedinicu robota. Stavljamo robota na teren i pritisnemo tipku za pokretanje. EV3 vozi preko polja i zaustavlja se na kraju zadane linije. Ali da biste postigli točan završetak, morate kalibrirati, jer vanjski čimbenici utječu na kretanje.

    Teren se postavlja na studentske stolove pa je moguć blagi otklon površine.

    Površina terena je glatka pa nije isključeno loše prianjanje kotača robota na teren.

    U izračunima broja okretaja morali smo zaokružiti brojeve i stoga smo promjenom stotinki okretaja postigli traženi rezultat.

5. Zaključak.

Mogućnost programiranja robota da se kreće pravolinijski bit će korisna za stvaranje složenijih programa. U pravilu su sve dimenzije kretanja navedene u projektnom zadatku za natjecanja u robotici. Oni su neophodni kako program ne bi bio preopterećen logičkim uvjetima, petljama i drugim složenim kontrolnim blokovima.

U sljedećoj fazi upoznavanja s Lego Mindstorms EV3 robotom naučit ćete kako programirati zavoje pod određenim kutom, kretanje u krug, spirale.

Vrlo je zanimljivo raditi s dizajnerom. Saznajući više o njegovim mogućnostima, možete riješiti sve tehničke probleme. I u budućnosti, možda, stvorite svoje zanimljive modele Lego Mindstorms EV3 robota.

Književnost.

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

    Filippov S. A. "Robotika za djecu i roditelje" - "Znanost" 2010

    Internet resursi

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

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

    http://www. lego. com/obrazovanje/

Učitavam...Učitavam...