Za pregled prezentacije sa slikama, dizajnom i slajdovima, preuzmite njegovu datoteku i otvorite je u programu PowerPoint na vašem računalu.
Tekstualni sadržaj slajdova prezentacije:“Algoritam za kretanje po crnoj liniji s jednim senzorom u boji” Klub na temu “Robotika” Nastavnik prije Yezidov Akhmed ElievichNa MBU DO “Shelkovskaya TsTT” Za proučavanje algoritma za kretanje po crnoj liniji koristit će se robot Lego Mindstorms EV3 s jednim senzorom boje Senzor boje Senzor boje razlikuje 7 boja i može otkriti odsutnost boje. Kao iu NXT-u, može raditi kao svjetlosni teren za natjecanja robota "Linija S" Predloženi poligon sa stazom u obliku slova "S" omogućit će vam da provedete još jedan zanimljiv test brzine stvorenih robota. i reakcija. Razmotrimo najjednostavniji algoritam Kretanje uzduž crne crte na jednom senzoru u boji na EV3 je najsporiji, ali najstabilniji je vrlo jednostavan: ako senzor vidi crno, robot se okreće u jednom smjeru, ako je bijelo - u drugom. Praćenje linije u načinu svjetline reflektirane svjetlosti s dva senzora Ponekad senzor boje nije dovoljno učinkovit da razlikuje crnu i bijele boje. Rješenje ovog problema je korištenje senzora ne u načinu detekcije boje, već u načinu svjetline reflektirane svjetlosti. U ovom načinu rada, znajući vrijednosti senzora na tamnoj i svijetloj površini, možemo neovisno reći što će se smatrati bijelim, a što crnim. Sada odredimo vrijednosti svjetline na bijelim i crnim površinama. Da biste to učinili, u izborniku blokova EV3 nalazimo karticu "Module Applications" Sada ste u prozoru za pregled priključka i možete vidjeti očitanja svih senzora u trenutnom trenutku. naši bi senzori trebali svijetliti crveno, što znači da rade u načinu detekcije svjetline reflektirane svjetlosti. Ako svijetle plavo, u prozoru za pregled priključka na željenom priključku pritisnite središnju tipku i odaberite način rada COL-REFLECT. Sada postavimo robota tako da se oba senzora nalaze iznad bijele površine. Gledamo brojeve u priključcima 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. Pogledajmo ponovno vrijednosti priključaka 1 i 4. Imamo 5 i 6, redom. Ovo su značenja crne boje. Zatim ćemo promijeniti prethodni program. Naime, promijenit ćemo postavke prekidača. Za sada imaju instaliran Color Sensor -> Measurement -> Color. Moramo postaviti Senzor boje -> Usporedba -> Svjetlina reflektirane svjetlosti Sada moramo postaviti "vrstu usporedbe" i "vrijednost praga". Vrijednost praga je vrijednost neke "sive", vrijednosti manje od koje ćemo smatrati crnom, a više - bijelom. Za prvu aproksimaciju, prikladno je koristiti prosječnu vrijednost između bijele i crne boje svakog senzora. Stoga će vrijednost praga prvog senzora (priključak br. 1) biti (66+5)/2=35,5. Zaokružimo na 35. Vrijednost praga drugog senzora (priključak br. 4): (71+6)/2 = 38,5. Zaokružimo na 38. Sada postavljamo ove vrijednosti u svakom prekidaču u skladu s tim, blokovi s pokretima ostaju na svojim mjestima bez promjena, jer ako stavimo znak "vrsta usporedbe".<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже.
Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета
Kako bi se robot glatko kretao duž crne linije, morate ga prisiliti da sam izračuna brzinu kretanja.
Osoba vidi crnu liniju i njezinu jasnu granicu. Senzor svjetla radi malo drugačije.
Upravo to svojstvo svjetlosnog senzora - nemogućnost jasnog razlikovanja bijele i crne boje - koristit ćemo za izračunavanje brzine kretanja.
Prvo, predstavimo koncept "idealne točke putanje".
Očitanja svjetlosnog senzora kreću se od 20 do 80, najčešće su na bijelom očitanja oko 65, na crnom oko 40.
Idealna točka je konvencionalna točka otprilike u sredini bijele i crne boje, nakon koje će se robot kretati duž crne linije.
Ovdje je položaj točke temeljan - između bijele i crne. Neće biti moguće točno postaviti na bijelo ili crno iz matematičkih razloga, kasnije će biti jasno zašto.
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 postoji odstupanje u bilo kojem smjeru, robot se mora vratiti na tu točku.
Sastavljajmo matematički opis problema.
Početni podaci.
Idealna točka.
Trenutna očitanja svjetlosnog senzora.
Proizlaziti.
Snaga rotacije motora V.
Snaga rotacije motora C.
Riješenje.
Razmotrimo dvije situacije. Prvo: robot je skrenuo od crne prema bijeloj liniji.
U tom slučaju robot mora povećati snagu rotacije motora B i smanjiti snagu motora C.
U situaciji kada robot uđe u crnu liniju, vrijedi suprotno.
Što više robot odstupa od idealne točke, to se brže treba vratiti na nju.
Ali stvaranje takvog regulatora prilično je težak zadatak i nije uvijek potreban u cijelosti.
Stoga smo se odlučili ograničiti samo na P-regulator, koji adekvatno reagira na odstupanja od crne linije.
Matematičkim jezikom to će biti napisano ovako:
gdje su Hb i Hc konačne snage motora B odnosno C,
Baza – određena osnovna snaga motora koja određuje brzinu robota. Odabire se eksperimentalno, ovisno o dizajnu robota i oštrini okretaja.
Itek – trenutna očitanja svjetlosnog senzora.
Iid – izračunata idealna točka.
k – koeficijent proporcionalnosti, odabran eksperimentalno.
U trećem dijelu ćemo pogledati kako to programirati u NXT-G okruženju.
Pogledajmo najjednostavniji algoritam za kretanje duž crne linije na jednom senzoru u boji 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-desno i postupno se krećući naprijed.
Algoritam je vrlo jednostavan: ako senzor vidi crno, robot se okreće u jednom smjeru, ako bijelo, u drugom.
Implementacija u okruženju Lego Mindstorms EV3
U oba bloka pokreta odaberite način "omogući". Postavili smo prekidač na senzor boje - mjerenje - boja. Na dnu ne zaboravite promijeniti "bez boje" u bijelu. Također, morate točno navesti sve portove.
Ne zaboravite dodati ciklus, robot neće ići nikamo bez njega.
Ček. Za najbolje rezultate pokušajte promijeniti postavke upravljanja i snage.
Kretanje s dva senzora:
Već znate algoritam za kretanje robota duž crne linije pomoću jednog senzora. Danas ćemo promatrati kretanje duž linije pomoću dva senzora boja.
Senzori moraju biti instalirani tako da crna crta prolazi između njih.
Algoritam će biti sljedeći:
Ako oba senzora vide bijelo, idemo naprijed;
Ako jedan od senzora vidi bijelo, a drugi crno, okrenite prema crnom;
Ako oba senzora vide crno, nalazimo se na raskrižju (na primjer, zaustavljamo se).
Da bismo implementirali algoritam, morat ćemo pratiti očitanja oba senzora, a tek nakon toga postaviti robota da se kreće. Da bismo to učinili, koristit ćemo prekidače ugniježđene unutar drugog prekidača. Dakle, prvo ćemo ispitati prvi senzor, a zatim ćemo, neovisno o očitanjima prvog, ispitati drugi senzor, nakon čega ćemo postaviti radnju.
Spojimo lijevi senzor na priključak br. 1, desni na priključak br. 4.
Program s komentarima:
Ne zaboravite da pokrećemo motore u načinu rada "Uključeno" kako bi radili onoliko dugo koliko je potrebno na temelju očitanja senzora. Također, ljudi često zaboravljaju na potrebu za petljom - bez nje, program će odmah završiti.
http://studrobots.ru/
Isti program za NXT model:
Proučite program kretanja. Programirajte robota. Pošaljite video testiranja modela
Ovaj problem je klasičan, ideološki jednostavan, može se rješavati više puta i svaki put ćete otkriti nešto novo.
Postoji mnogo pristupa za rješavanje problema sljedeće linije. Odabir jednog od njih ovisi o specifičnom dizajnu robota, o broju senzora, njihovom položaju u odnosu na kotače i međusobno.
U našem primjeru analizirat ćemo tri primjera robota na temelju glavnog obrazovnog modela Robot Educator.
Za početak sastavljamo osnovni model obrazovnog robota Robot Educator; za to možete koristiti upute u softveru MINDSTORMS EV3.
Također, za primjer, trebat će nam EV3 senzori svijetle boje. Ovi svjetlosni senzori, kao nijedan drugi, najbolje odgovaraju našem zadatku; kada radimo s njima, ne moramo brinuti o intenzitetu okolnog svjetla. Za ovaj senzor, u programima ćemo koristiti način reflektirane svjetlosti, u kojem se procjenjuje količina reflektirane svjetlosti od crvenog pozadinskog osvjetljenja senzora. Ograničenja očitanja senzora su 0 - 100 jedinica, za "bez refleksije" i "potpunu refleksiju", respektivno.
Kao primjer, analizirat ćemo 3 primjera programa za kretanje duž crne putanje prikazane na ravnoj, svijetloj pozadini:
· Jedan senzor, s P regulatorom.
· Jedan senzor, s PC regulatorom.
· Dva senzora.
Primjer 1. Jedan senzor, s P regulatorom.
Oblikovati
Senzor svjetla postavljen je na gredu koja je prikladno smještena na modelu.
Algoritam
Rad algoritma temelji se na činjenici da, ovisno o stupnju preklapanja snopa osvjetljenja senzora s crnom linijom, očitanja koja vraća senzor gradijentno variraju. Robot održava položaj svjetlosnog senzora na rubu crne linije. Konvertiranjem ulaznih podataka sa svjetlosnog senzora, upravljački sustav generira vrijednost za brzinu okretanja robota.
Budući da na stvarnoj putanji senzor generira vrijednosti kroz cijeli svoj radni raspon (0-100), 50 je odabrano kao vrijednost kojoj robot teži, u ovom slučaju se generiraju vrijednosti koje se prenose na funkcije rotacije raspon -50 - 50, ali te vrijednosti nisu dovoljne za strmo skretanje putanje. Stoga bi raspon trebao biti proširen jedan i pol puta na -75 - 75.
Kao rezultat toga, u programu je funkcija kalkulatora jednostavan proporcionalni regulator. čija funkcija ( (a-50)*1.5 ) u radnom rasponu svjetlosnog senzora generira vrijednosti rotacije u skladu s grafikonom:
Primjer kako algoritam radi
Primjer 2. Jedan senzor, s PK regulatorom.
Ovaj primjer se temelji na istoj konstrukciji.
Vjerojatno ste primijetili da se u prethodnom primjeru robot pretjerano njihao, što mu nije dopuštalo dovoljno ubrzanje. Sada ćemo pokušati malo popraviti ovu situaciju.
Našem proporcionalnom regulatoru također dodajemo jednostavan kockasti regulator, koji će dodati malo savijanja funkciji regulatora. To će smanjiti njihanje robota u blizini željene granice putanje, kao i napraviti jače trzaje kada je daleko od nje.
U ovoj lekciji nastavit ćemo istraživati korištenje senzora boja. Materijal prikazan u nastavku vrlo je važan za daljnje proučavanje tečaja robotike. Nakon što naučimo koristiti sve senzore konstruktora Lego mindstorms EV3, pri rješavanju mnogih praktičnih problema, oslanjat ćemo se na znanje stečeno u ovoj lekciji.
6.1. Senzor boja - način rada "Svjetlina reflektirane svjetlosti".
Dakle, počinjemo proučavati sljedeći način rada senzora boje, koji se zove "Svjetlina reflektirane svjetlosti". U ovom načinu rada senzor boje usmjerava mlaz crvene svjetlosti na obližnji objekt ili površinu i mjeri količinu reflektirane svjetlosti. Tamniji objekti će apsorbirati svjetlosni tok, pa će senzor pokazati manju vrijednost u odnosu na svjetlije površine. Raspon vrijednosti senzora se mjeri od 0 (vrlo mračno) to 100 (vrlo svijetlo). Ovaj način rada senzora u boji koristi se u mnogim zadacima robotike, na primjer, za organiziranje kretanja robota duž zadane rute duž crne linije ispisane na bijelom premazu. Kada koristite ovaj način rada, preporuča se postaviti senzor tako da udaljenost od njega do površine koja se proučava bude približno 1 cm (slika 1).
Riža. 1
Prijeđimo na praktične vježbe: senzor boja je već instaliran na našem robotu i usmjeren je prema dolje prema površini premaza po kojoj će se naš robot kretati. Udaljenost između senzora i poda je preporučena. Senzor boje je već spojen na port "2" EV3 modul. Učitajmo programsko okruženje, povežimo robota s okruženjem i, za mjerenje, upotrijebimo polje s prugama u boji koje smo napravili za dovršavanje zadataka odjeljka 5.4 lekcije br. 5. Postavimo robota tako da se senzor boje nalazi iznad bijele površine. "Hardverska stranica" prebaciti okruženje za programiranje u mod "Prikaz priključaka" (Sl. 2, stavka 1). U ovom načinu rada možemo promatrati sve veze koje smo napravili. Na Riža. 2 prikazana je veza s priključcima "B" I "C" dva velika motora, te do luke "2" - senzor boja.
Riža. 2
Za odabir opcije za prikaz očitanja senzora kliknite na sliku senzora i odaberite željeni način rada (slika 3)
Riža. 3
Na Riža. 2 poz. 2 vidimo da je vrijednost očitanja senzora boje iznad bijele površine 84 . U vašem slučaju možete dobiti drugačiju vrijednost jer ovisi o materijalu površine i rasvjeti unutar prostorije: dio svjetlosti, reflektiran od površine, udara u senzor i utječe na njegova očitanja. Instalirajući robota tako da se senzor boje nalazi iznad crne trake, bilježimo njegova očitanja (Sl. 4). Pokušajte sami izmjeriti vrijednosti reflektirane svjetlosti iznad preostalih traka boja. Koje ste vrijednosti dobili? Napišite svoj odgovor u komentarima na ovu lekciju.
Riža. 4
Idemo sada riješiti praktične probleme.
Zadatak #11: Potrebno je napisati program za kretanje robota koji se zaustavlja kada dođe do crne linije.
Riješenje:
Eksperiment nam je pokazao da pri prelasku crne linije vrijednost senzora boje u modu "Svjetlina reflektirane svjetlosti" jednaki 6 . Dakle, nastupiti Problemi br. 11 naš se robot mora kretati pravocrtno sve dok željena vrijednost senzora boje ne postane manja 7 . Upotrijebimo programski blok koji nam je već poznat "Očekivanje" Narančasta paleta. Odaberimo način rada programskog bloka koji zahtijevaju uvjeti problema "Čekanje" (slika 5).
Riža. 5
Također je potrebno konfigurirati parametre programskog bloka "Očekivanje". Parametar "Vrsta usporedbe" (Sl. 6, stavka 1) može uzeti sljedeće vrijednosti: "Jednako"=0, "Nejednak"=1, "Više"=2, "Više ili jednako"=3, "Manje"=4, "Manje ili jednako"=5. U našem slučaju postavit ćemo "Vrsta usporedbe" u smislu "Manje". Parametar "Vrijednost praga" postaviti jednake 7 (Sl.6 stavka 2).
Riža. 6
Čim se vrijednost senzora boje postavi na manje 7 , ono što će se dogoditi je kada se senzor boje nalazi iznad crne linije, morat ćemo isključiti motore, zaustavljajući robota. Problem riješen (Sl. 7).
Riža. 7
Da bismo nastavili naše lekcije, morat ćemo napraviti novo polje, koje je crni krug promjera približno 1 metar, apliciran na bijelo polje. Debljina kružne linije je 2 - 2,5 cm Za podlogu polja možete uzeti jedan list papira veličine A0 (841x1189 mm), zalijepiti dva lista papira veličine A1 (594x841 mm). U ovom polju označite kružnu liniju i obojite je crnom tintom. Također možete preuzeti izgled polja izrađen u Adobe Illustrator formatu, a zatim naručiti ispis na banner tkanini u tiskari. Tlocrtna veličina je 1250x1250 mm. (Možete vidjeti preuzeti izgled u nastavku tako da ga otvorite u Adobe Acrobat Readeru)
Ovo polje će nam koristiti za rješavanje nekoliko klasičnih problema iz kolegija robotike.
Zadatak #12: potrebno je napisati program za robota koji se kreće unutar kruga oivičenog crnim krugom prema sljedećem pravilu:
- robot se kreće naprijed u ravnoj liniji;
- kada dođe do crne linije, robot se zaustavlja;
- robot se pomiče dva okretaja motora unatrag;
- robot se okreće udesno za 90 stupnjeva;
- kretanje robota se ponavlja.
Znanje stečeno u prethodnim lekcijama pomoći će vam da samostalno izradite program koji rješava problem broj 12.
Rješenje problema broj 12
- Započnite kretanje ravno naprijed (Sl. 8 stavka 1);
- Pričekajte da senzor boje prijeđe crnu liniju (Sl. 8 stavka 2);
- Pomaknite se unatrag 2 okreta (Sl. 8 stavka 3);
- Skrenite desno za 90 stupnjeva (Sl. 8 stavka 4); vrijednost kuta rotacije izračunata je za robota sastavljenog prema uputama small-robot-45544 (Sl. 8 stavka 5);
- Ponovite naredbe 1 - 4 u beskonačnoj petlji (Sl. 8 stavka 6).
Riža. 8
Za upravljanje senzorom boje u načinu rada "Svjetlina reflektirane svjetlosti" Vratit ćemo se mnogo puta kada budemo razmatrali algoritme za kretanje po crnoj liniji. Za sada pogledajmo treći način rada senzora boja.
6.2. Senzor boja - način rada "Svjetlina ambijentalnog svjetla".
Način rada senzora boja "Svjetlina vanjskog svjetla" vrlo sličan načinu rada "Svjetlina reflektirane svjetlosti", samo u ovom slučaju senzor ne emitira svjetlost, već mjeri prirodnu svjetlosnu osvijetljenost okoline. Vizualno, ovaj način rada senzora može se odrediti slabo svijetlećom plavom LED diodom. Očitanja senzora variraju od 0 (bez svjetla) do 100 (najjače svjetlo). Prilikom rješavanja praktičnih problema koji zahtijevaju mjerenje vanjske rasvjete, preporuča se senzor postaviti tako da senzor ostane što otvoreniji i da ga ne blokiraju drugi dijelovi i strukture.
Pričvrstimo senzor boje na našeg robota na isti način na koji smo pričvrstili senzor za dodir u lekciji #4 (Sl. 9). Spojite senzor boje kabelom na priključak "2" EV3 modul. Prijeđimo na rješavanje praktičnih problema.
Riža. 9
Zadatak #13: moramo napisati program koji mijenja brzinu našeg robota ovisno o intenzitetu vanjske rasvjete.
Da bismo riješili ovaj problem, moramo znati kako dobiti trenutnu vrijednost senzora. I Žuta paleta programskih blokova, koja se zove "Senzori".
6.3. Žuta paleta - "Senzori"
Žuta paleta programskog okruženja Lego mindstorms EV3 sadrži softverske blokove koji vam omogućuju dobivanje trenutnih očitanja senzora za daljnju obradu u programu. Za razliku od npr. programskog bloka "Očekivanje" U narančastoj paleti, programski blokovi u žutoj paleti odmah prenose kontrolu na sljedeće programske blokove.
Broj programskih blokova Žute palete razlikuje se u kućnoj i obrazovnoj verziji programskog okruženja. Kućna verzija programskog okruženja nema softverske blokove za senzore koji nisu uključeni u kućnu verziju dizajnera. Ali, ako je potrebno, možete ih sami povezati.
Edukativna verzija programskog okruženja sadrži programske blokove za sve senzore koji se mogu koristiti s Lego mindstorms EV3 konstruktorom.
Vratimo se rješenju Problemi br. 13 i da vidimo kako možete primiti i obraditi očitanja senzora boja. Kao što već znamo: raspon vrijednosti senzora boja u načinu rada "Svjetlina vanjskog svjetla" je unutar raspona od 0 prije 100 . Parametar koji regulira snagu motora ima isti raspon. Pokušajmo upotrijebiti očitanje senzora boje za reguliranje snage motora u softverskom bloku "Upravljanja".
Riješenje:
Riža. 10
Učitajmo dobiveni program u robota i pokrenimo ga na izvršenje. Je li robot vozio sporo? Uključimo LED svjetiljku i pokušajmo je dovesti do senzora boje na različitim udaljenostima. Što se događa s robotom? Pokrijmo senzor boje dlanom – što se dogodilo u ovom slučaju? Napišite odgovore na ova pitanja u komentarima lekcije.
Izazov - bonus
Učitajte ga u robota i pokrenite zadatak prikazan na slici ispod. Ponovite eksperimente s LED svjetiljkom. Podijelite svoje dojmove u komentarima na lekciju.