Program za ev3 putanju. Praćenje linije sa dva svetlosna senzora

Jedan od osnovnih pokreta u legokonstrukciji je praćenje crne linije.

Opća teorija i konkretni primjeri kreiranja programa opisani su na web stranici wroboto.ru

Opisaću kako to implementiramo u EV3 okruženju, jer postoje razlike.

Prva stvar koju robot treba da zna je vrijednost “idealne tačke” koja se nalazi na granici crnog i bijelog.

Lokacija crvene tačke na slici upravo odgovara ovoj poziciji.

Idealna opcija proračuna je izmjeriti vrijednost crno-bijelog i uzeti aritmetičku sredinu.

Možete to učiniti ručno. Ali nedostaci su odmah vidljivi: čak i za kratko vrijeme, osvjetljenje se može promijeniti, a izračunata vrijednost će se pokazati netačnom.

Tako da možete natjerati robota da to uradi.

U toku eksperimenata ustanovili smo da nije potrebno mjeriti i crno i bijelo. Samo bela se može meriti. A vrijednost idealne tačke izračunava se kao vrijednost bijele boje podijeljena sa 1,2 (1,15), ovisno o širini crne linije i brzini robota.

Izračunata vrijednost mora biti upisana u varijablu da bi joj se kasnije pristupilo.

Izračunavanje "idealne tačke"

Sljedeći parametar uključen u kretanje je brzina okretanja. Što je veći, to će robot oštrije reagirati na promjene u osvjetljenju. Ali previsoka vrijednost će uzrokovati ljuljanje robota. Vrijednost se odabire eksperimentalno pojedinačno za svaki dizajn robota.

Posljednji parametar je osnovna snaga motora. To utiče na brzinu robota. Povećanje brzine kretanja dovodi do povećanja vremena odziva robota na promjene u osvjetljenju, što može dovesti do napuštanja putanje. Vrijednost se također odabire eksperimentalno.

Radi praktičnosti, ovi parametri se također mogu zapisati u varijable.

Omjer upravljanja i bazna snaga

Logika kretanja duž crne linije je sljedeća: mjeri se odstupanje od idealne tačke. Što je veći, robot bi trebao težiti da se vrati u njega.

Da bismo to učinili, izračunavamo dva broja - vrijednost snage svakog od motora B i C zasebno.

U formuli to izgleda ovako:

Gdje je Isens vrijednost očitavanja svjetlosnog senzora.

Konačno, implementacija u EV3. Najprikladnije je izdati u obliku zasebnog bloka.

Implementacija algoritma

Ovo je algoritam koji je implementiran u robota za srednju kategoriju WRO 2015

Ovako osoba vidi liniju:

Ovako to vidi robot:


Ovu funkciju ćemo koristiti prilikom dizajniranja i programiranja robota za takmičarsku kategoriju "Trajektorija".

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 da pričam o načinu programiranja koji će savladati čak i deca od 2-3 razreda. U ovom uzrastu im je mnogo lakše sklapati strukture prema uputama, a programiranje robota im je težak zadatak. Ali ova metoda će omogućiti djetetu da programira robota na bilo kojoj ruti staze za 15-30 minuta (uzimajući u obzir faznu provjeru i prilagođavanje nekih karakteristika putanje).

Ova metoda je testirana na opštinskim i regionalnim takmičenjima iz robotike u regiji Surgut i Hanti-Mansijskom autonomnom okrugu-Jugra i donijela je našoj školi prva mjesta. Tamo sam se uvjerio da je ova tema vrlo relevantna za mnoge timove.

Pa, hajde da počnemo.

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

Razmotrite verziju robota sa dva senzora svjetlosti, jer je razumljivija učenicima osnovne škole.

Svetlosni senzori su povezani 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 tačka. Za najbolji rad takvog kruga poželjno je odabrati par senzora prema parametrima. U suprotnom ć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 šemu uzet ćemo prosječnu vrijednost snage motora jednaku 50. To jest, prosječna brzina pri kretanju pravolinijski će biti jednaka 50 jedinica. Prilikom odstupanja od pravolinijskog kretanja, snaga motora će se proporcionalno povećati ili smanjiti, ovisno o kutu odstupanja.

Sada ćemo shvatiti kako spojiti sve blokove, postaviti program i šta će se dogoditi u njemu.
Izložimo dva senzora svjetlosti i dodijelimo im portove 2 i 3.
Uzimamo blok matematike i biramo "Oduzimanje".
Povežimo svjetlosne senzore sa izlaza "Intenzitet" sa gumama na blok matematike na "A" i "B" ulaze.
Ako su senzori robota postavljeni simetrično od središta linije staze, tada će vrijednosti oba senzora biti jednake. Nakon oduzimanja dobijamo vrijednost - 0.
Sljedeći blok matematike će se koristiti kao koeficijent i potrebno je u njemu postaviti "Množi".
Da biste izračunali koeficijent, potrebno je izmjeriti nivo "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 (prosječnu vrijednost snage kada se krećemo pravolinijski u blokovima matematike postavljamo na 50. Ova vrijednost plus dodana snaga pri podešavanju pokreta treba biti jednaka 100)
Pokušajte postaviti vrijednost na 2,5 na "A" ulazu, a zatim je pokupite preciznije.
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 "Power" ulaz motora B.
Nakon pare je matematički blok (Oduzimanje) i motor C.
Postavljanje matematičkog bloka:
Ulaz "A" je postavljen na 50.
Ulaz "B" je sabirnicom povezan sa izlazom "Rezultat" bloka matematike "Množenje".
Izlaz bloka "Rezultat" povezan je sabirnicom na "Power" ulaz motora C.

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

Pošto će sve ovo raditi u ciklusu, dodajemo "Cycle", odabiremo i prenosimo sve u "Cycle".

Pokušajmo sada 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 sa upravljačkim parom motora. Budući da je u ovim blokovima postavljena vrijednost 50, dodavanje ili oduzimanje 0 ne utječe na snagu motora. Oba motora rade istom snagom od 50 i robot se kotrlja pravolinijski.

Pretpostavimo da staza skreće ili robot odstupi od prave linije. Šta će se desiti?

Na slici se vidi da se osvjetljenje senzora spojenog na port 2 (u daljem tekstu senzori 2 i 3) povećava, jer se pomiče u bijelo polje, a osvjetljenje senzora 3 se smanjuje. Pretpostavimo da vrijednosti ovih senzora postanu: 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 faktorom (10 * 2,5 = 25)), a zatim u kontrolne blokove
motori.
U matematičkom bloku (Dodavanje) motora B upravlja se na prosječnu vrijednost brzine 50
25 će se dodati i vrijednost snage od 75 će se 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 odstupanje od prave linije biti ispravljeno.

Ako staza skreće naglo u stranu i senzor 2 je na bijelom, a senzor 3 na crnom. 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 (Sabiranje) koji upravlja motorom B, vrijednost snage 50 +50 =100 će se primijeniti na motor B.
U matematičkom bloku (Oduzimanje) kontrole motora C, vrijednost snage od 50 - 50 = 0 će se primijeniti na motor C.
I robot će napraviti oštar zaokret.

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

Sada kreirajmo novi blok i koristimo 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 ime 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.

Upravljački algoritmi za mobilni LEGO robot. Praćenje linije sa dva svetlosna senzora

Nastavnik dodatnog obrazovanja

Kazakova Lyubov Alexandrovna


Kretanje linije

  • Dva svetlosna senzora
  • Proporcionalni regulator (P kontroler)

Algoritam za kretanje duž crne linije bez proporcionalnog kontrolera

  • Oba motora se okreću 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, onda je pravolinijsko kretanje

Kretanje je organizirano promjenom snage jednog od motora


Primjer programa za kretanje duž crne linije bez P-kontrolera

Kretanje je organizirano promjenom ugla rotacije


  • Proporcionalni kontroler (P-controller) vam omogućava da prilagodite ponašanje robota, ovisno o tome koliko se njegovo ponašanje razlikuje od željenog.
  • Što robot više odstupa od mete, to je više sile potrebno da se vrati na cilj.

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

Praćenje linije sa jednim senzorom

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

Prelasci

Korištenjem dva svjetlosna senzora moguće je organizirati saobraćaj na težim pravcima



Algoritam za vožnju autoputem sa raskrsnicama

  • Oba senzora na bijelom - robot vozi pravolinijski (oba motora se okreću istom snagom)
  • Ako desni senzor svjetla udari u crnu liniju, a lijevi u bijelu liniju, onda skreće udesno
  • Ako lijevi svjetlosni senzor udari u crnu liniju, a desni u bijelu liniju, onda skreće lijevo
  • Ako su oba senzora u crnoj boji, dolazi do pravolinijskog kretanja. Možete brojati raskrsnice ili izvoditi neku vrstu radnje


Princip rada P-regulatora

Položaj senzora

O=O1-O2


Algoritam za kretanje duž crne linije s proporcionalnim kontrolerom

SW \u003d K * (C-T)

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


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

Lego Mindstorms EV3

Pripremna faza

Kreiranje i kalibracija programa

Zaključak

Književnost

1. Uvod.

Robotika je jedna od najvažnijih oblasti naučnog i tehnološkog napretka, u kojoj problemi mehanike i novih tehnologija dolaze u dodir sa problemima veštačke inteligencije.

Poslednjih godina napredak u robotici i automatizovanim sistemima promenio je lična i poslovna područja naših života. Roboti se široko koriste u transportu, istraživanju zemlje i svemira, hirurgiji, vojnoj industriji, laboratorijskim istraživanjima, sigurnosti, masovnoj proizvodnji industrijske i široke potrošnje. Mnogi uređaji koji donose odluke na osnovu podataka dobijenih od senzora mogu se smatrati i robotima - poput, na primjer, liftova, 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 informatičke tehnologije.

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

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

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

    Mindstorms EV3 konstruktor.

Dizajnerski dijelovi - 601 komad, servo motor - 3 komada, 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 sa EV3 kockom i tjera robota da se kreće: ide naprijed i nazad, okreće se i vozi duž zadane putanje. Ovaj servomotor ima ugrađen senzor rotacije, koji vam omogućava da vrlo precizno kontrolišete kretanje robota i njegovu brzinu.

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, čini da radi u skladu sa zadacima. Možete programirati kretanje na određeni broj okretaja ili stupnjeva.

    Pripremna faza.

    Stvaranje tehničkog polja.

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

    Potrebne kalkulacije:

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

Jedan obrt kotača robota jednak je obimu kruga prečnika 5,7 cm. Obim se nalazi po formuli

Gdje je r polumjer točka, d je prečnik, π = 3,14

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

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

    Kreiranje i kalibracija programa.

Kreiraćemo program prema sledećem algoritmu:

algoritam:

    Odaberite blok pokreta u softveru Mindstorms EV3.

    Uključite oba motora u datom smjeru.

    Pričekajte da se očitavanje 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 dugme za pokretanje. EV3 vozi preko polja i zaustavlja se na kraju date linije. Ali da biste postigli precizan završetak, morate kalibrirati, jer vanjski faktori utiču na kretanje.

    Teren se postavlja na studentske klupe, tako da je moguć blagi otklon površine.

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

    Prilikom izračunavanja 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 kreiranje složenijih programa. Po pravilu, sve dimenzije kretanja su naznačene u projektnom zadatku za takmičenja u robotici. Oni su neophodni kako program ne bi bio preopterećen logičkim uslovima, petljama i drugim složenim kontrolnim blokovima.

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

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

Književnost.

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

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

    Internet resursi

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

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

    http://www. lego. com/edukacija/


Da pogledate prezentaciju sa slikama, dizajnom i slajdovima, preuzmite njegovu datoteku i otvorite je u PowerPointu na vašem računaru.
Tekstualni sadržaj slajdova prezentacije:
„Algoritam za kretanje duž crne linije sa jednim senzorom u boji“ Krug o „Robotici“ Nastavnik pred Yezidov Ahmed Elievich U MBU DO „Shelkovskaya CTT“ Za proučavanje algoritma za kretanje duž crne linije, Lego Mindstorms EV3 robot sa jednim senzorom boje će se koristiti Senzor boja Senzor boje razlikuje 7 boja i može otkriti odsustvo boje. Kao i kod NXT-a, može raditi kao svjetlosni senzor Line S Robot Competition Field Predložena staza u obliku slova "S" će vam omogućiti da provedete još jedan zanimljiv test kreiranih robota na brzinu i reakciju. Razmotrimo najjednostavniji algoritam za kretanje duž crne linije na senzoru jedne boje na EV3. Ovaj algoritam je najsporiji, ali najstabilniji. Robot se neće kretati striktno duž crne linije, već duž njene granice, okrećući se lijevo i desno i postepeno 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 režimu reflektovanog svetla sa dva senzora Ponekad senzor boje možda neće moći dobro da razlikuje crno i belo. 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 meniju EV3 Brick nalazimo karticu "Aplikacije za cigle". Sada ste u prozoru za prikaz porta i možete vidjeti očitanja svih senzora u trenutnom trenutku. naši senzori bi trebali 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 i 71, respektivno. Ovo ć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, respektivno. Ovo su značenja crne. Zatim ćemo izmijeniti prethodni program. Naime, mijenjamo postavke prekidača. Sve dok imaju instaliran senzor boje -> mjerenje -> boja. Moramo podesiti Senzor boja -> Poređenje -> Intenzitet reflektovanog svjetla Sada moramo postaviti "tip poređenja" i "vrijednost praga". Granična vrijednost je vrijednost neke "sive", vrijednosti ispod kojih ćemo smatrati crnom, a više - bijelom. Za prvu aproksimaciju, zgodno je koristiti prosječnu vrijednost između bijele i crne boje svakog senzora. Dakle, vrijednost praga prvog senzora (port #1) će biti (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 svakom prekidaču, odnosno. To je sve, blokovi s pokretima ostaju na svojim mjestima nepromijenjeni, jer ako stavimo znak " u "tip poređenja"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Podijeli: