domov - Hodnik
Lego ev3, ki se premika po črti. Začnite v znanosti. Barvni senzor - način "Svetlost okoljske svetlobe".

Človek vidi črto takole:

Takole to vidi robot:


To lastnost bomo uporabili 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 metodi programiranja, ki jo lahko obvladajo tudi otroci v 2.-3. Pri tej starosti jim je veliko lažje sestavljati konstrukcije po navodilih in programiranje robota je za njih težka naloga. Toda ta metoda bo otroku omogočila programiranje robota na katero koli pot proge v 15-30 minutah (ob upoštevanju testiranja po korakih in prilagajanja nekaterih značilnosti poti).

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

No, pa začnimo.

Pri pripravi na tovrstno tekmovanje je programiranje le del rešitve naloge. Začeti morate z oblikovanjem robota za določeno pot. V naslednjem članku vam bom povedal, kako to storiti. No, ker se gibanje vzdolž črte pojavlja zelo pogosto, bom začel s programiranjem.

Razmislimo o možnosti robota z dvema svetlobnima senzorjema, saj je bolj razumljiv osnovnošolcem.

Svetlobni senzorji so priključeni na vrata 2 in 3. Motorji na vrata B in C.
Senzorji so nameščeni na robovih črte (poskusite s postavitvijo senzorjev na različne razdalje drug od drugega in na različne višine).
Pomembna točka. Za boljše delo Za takšno shemo je priporočljivo izbrati par senzorjev glede na parametre. V nasprotnem primeru bo treba uvesti blok za prilagajanje vrednosti senzorjev.
Namestitev senzorjev na ohišje v skladu z klasična shema(trikotnik), približno kot na sliki.

Program bo sestavljen iz majhnega števila blokov:


1. Dve svetlobni senzorski enoti;
2. Štirje bloki "Matematika";
3. Dva motorna bloka.

Za krmiljenje robota se uporabljata 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 enotam. Pri odstopanju od premočrtnega gibanja se bo moč motorjev sorazmerno povečala ali zmanjšala, odvisno od kota odstopanja.

Zdaj pa ugotovimo, kako povezati vse bloke, konfigurirati program in kaj se bo v njem zgodilo.
Nastavimo dva svetlobna senzorja in jima dodelimo vrata 2 in 3.
Vzemite matematični blok in izberite »Odštevanje«.
Povežimo svetlobne senzorje iz izhodov "Intenzivnost" z vodili v matematični blok na vhoda "A" in "B".
Če so senzorji robota nameščeni simetrično od središča proge, bodo vrednosti obeh senzorjev enake. Po odštevanju dobimo vrednost – 0.
Naslednji blok matematike bo uporabljen kot koeficient in v njem morate nastaviti »Množenje«.
Za izračun koeficienta morate izmeriti ravni "bele" in "črne" z uporabo bloka NXT.
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 premikanju v ravni črti v matematičnih blokih nastavimo na 50. Ta vrednost plus dodana moč pri prilagajanju gibanja mora biti enako 100)
Poskusite nastaviti vrednost na 2,5 na vhodu "A" in jo nato izberite natančneje.
Na vhod “B” matematičnega bloka “Množenje” povežite izhod “Rezultat” prejšnjega matematičnega bloka “Odštevanje”.
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 "Moč" motorja B.
Naslednji par je blok matematike (odštevanje) in motor C.
Nastavitev matematičnega bloka:
Vhod "A" je nastavljen na 50.
Vhod "B" je z vodilom povezan z izhodom "Rezultat" matematičnega bloka "Množenje".
Izhod bloka "Rezultat" je povezan z vodilom na vhod "Moč" motorja C.

Kot rezultat vseh teh dejanj boste dobili naslednji program:

Ker bo vse to delovalo v ciklu, dodamo “Cikel”, ga izberemo in vse premaknemo v “Cikel”.

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


Medtem ko se robot premika v ravni črti, vrednosti senzorjev sovpadajo, kar pomeni, da bo izhod bloka "Odštevanje" vrednost 0. Izhod bloka "Množenje" prav tako daje vrednost 0. Ta vrednost se napaja vzporedno s krmilnim parom motorja. Ker so ti bloki nastavljeni na 50, dodajanje ali odštevanje 0 ne vpliva na moč motorjev. Oba motorja delujeta z enako močjo 50 in robot se kotali v ravni črti.

Predpostavimo, da proga zavije ali pa robot odstopi od ravne črte. Kaj se bo zgodilo?

Na sliki je razvidno, da se osvetlitev senzorja, ki je priključen na priključek 2 (v nadaljevanju senzorja 2 in 3), s premikom na belo polje poveča, osvetljenost senzorja 3 pa se zmanjša. Predpostavimo, da vrednosti teh senzorjev postanejo: senzor 2 – 55 enot in senzor 3 – 45 enot.
Blok »Odštevanje« bo določil razliko med vrednostma dveh senzorjev (10) in jo posredoval korekcijskemu bloku (množenje s koeficientom (10*2,5=25)) in nato kontrolnim blokom.
motorji.
V matematičnem bloku (Dodatek) krmiljenja motorja B do povprečne vrednosti hitrosti 50
25 bo dodanih in motorju B bo dobavljena vrednost moči 75.
V matematičnem bloku (Odštevanje) krmiljenja motorja C bo 25 odšteto od povprečne vrednosti hitrosti 50 in motorju C bo dobavljena vrednost moči 25.
Na ta način se bo popravilo odstopanje od ravne črte.

Če steza ostro zavije vstran, se senzor 2 izkaže za belo, senzor 3 pa črn. 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 dovedel v korekcijski blok (20*2,5=50) in nato v krmilne enote motorja.
Zdaj v matematičnem (Addition) bloku krmiljenja motorja B bo motorju B dobavljena vrednost moči 50 +50 =100.
V matematičnem bloku (odštevanje) krmiljenja motorja C bo motorju C dobavljena vrednost moči 50 – 50 = 0.
In robot bo ostro zavil.

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

Sedaj pa 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 »Oblikovalnik 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 po črti.

Eno od osnovnih gibov v lahki gradnji je sledenje črni črti.

Splošna teorija in konkretni primeri Izdelava programa je opisana na spletni strani wroboto.ru

Opisal bom, kako to izvajamo v okolju EV3, saj obstajajo razlike.

Prva stvar, ki jo mora robot vedeti, je pomen "idealne točke", ki se nahaja na meji črnega in belega.

Lokacija rdeče pike na sliki natančno ustreza temu položaju.

Idealna možnost izračuna je, da izmerimo črno-bele vrednosti in vzamemo aritmetično povprečje.

To lahko storite ročno. Slabosti pa so vidne takoj: tudi v kratkem času se lahko osvetlitev spremeni in izračunana vrednost bo napačna.

Torej, lahko dobite robota, da to stori.

Med poskusi smo ugotovili, da ni potrebno meriti tako črno kot belo. Izmeriti je mogoče samo belo. Idealna vrednost točke se izračuna kot bela vrednost, deljena z 1,2 (1,15), odvisno od širine črne črte in hitrosti robota.

Izračunano vrednost je treba zapisati v spremenljivko, da lahko do nje dostopate pozneje.

Izračun "idealne točke"

Naslednji parameter pri gibanju je rotacijski koeficient. Večja kot je, bolj ostro se robot odziva na spremembe v osvetlitvi. Ampak preveč velik pomen bo povzročil nihanje robota. Vrednost je eksperimentalno izbrana posebej za vsako zasnovo robota.

Zadnji parameter je osnovna moč motorjev. Vpliva na hitrost robota. Povečanje hitrosti gibanja vodi do povečanja odzivnega časa robota na spremembe v osvetlitvi, kar lahko privede do odstopanja od poti. Vrednost je izbrana tudi eksperimentalno.

Za udobje lahko te parametre zapišemo tudi v spremenljivke.

Obratno razmerje in osnovna moč

Logika premikanja po črni črti je naslednja: meri se odstopanje od idealne točke. Večja kot je, močneje bi si moral robot prizadevati, da bi se vrnil vanj.

Da bi to naredili, izračunamo dve številki - vrednost moči vsakega od motorjev B in C posebej.

V obliki formule je videti takole:

Kjer je Isens vrednost odčitkov svetlobnega senzorja.

Končno implementacija v EV3. Najbolj priročno je, da ga uredite v obliki ločenega bloka.

Implementacija algoritma

Točno tak algoritem je bil implementiran v robota za srednjo kategorijo WRO 2015



Da bi se robot gladko premikal po črni črti, ga morate prisiliti, da sam izračuna hitrost gibanja.

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

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

Najprej predstavimo koncept "idealne točke poti."

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

Idealna točka je običajna točka približno na sredini bele in črne barve, po kateri se bo robot premikal vzdolž črne črte.

Tukaj je lokacija točke temeljna - med belo in črno. Natančno na belo ali črno ne bo mogoče nastaviti iz matematičnih razlogov, bo jasno kasneje.

Empirično smo izračunali, da je idealno točko mogoče izračunati po naslednji formuli:

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 matematični opis problema.

Začetni podatki.

Idealna točka.

Trenutni odčitki svetlobnega senzorja.

Rezultat.

Moč vrtenja motorja V.

Moč vrtenja motorja C.

rešitev.

Razmislimo o dveh situacijah. Prvič: robot je odstopal od črne črte proti beli črti.

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

V situaciji, ko robot vstopi v črno črto, je ravno nasprotno.

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

Toda ustvarjanje takega regulatorja je precej težka naloga in ni vedno zahtevana v celoti.

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

V matematičnem jeziku bo to zapisano takole:

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

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

Itek – trenutni odčitki svetlobnega senzorja.

Iid – izračunana idealna točka.

k – sorazmernostni koeficient, izbran eksperimentalno.

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

Algoritmi za krmiljenje mobilnega LEGO robota. Gibanje črte z dvema svetlobnima senzorjema

Učitelj dodatnega izobraževanja

Kazakova Ljubov Aleksandrovna


Gibanje po črti

  • 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 svetlobni senzor 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, pride do linearnega gibanja

Gibanje je organizirano s spreminjanjem moči enega od motorjev


Primer programa za vožnjo 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č truda mora vložiti, da se vanj vrne.

  • P-krmilnik se uporablja za ohranjanje robota v določenem stanju:
  • Držanje položaja manipulatorja Gibanje vzdolž črte (senzor svetlobe) Gibanje ob steni (senzor razdalje)
  • Držite položaj manipulatorja
  • Gibanje črte (senzor svetlobe)
  • Gibanje po steni (senzor razdalje)

Gibanje črte z enim senzorjem

  • Cilj je premikanje po »belo-črni« meji
  • Oseba lahko razlikuje mejo med belo in črno. Robot ne more.
  • Cilj za robota je v sivi barvi

Vožnja skozi križišča

Z uporabo dveh svetlobnih senzorjev je mogoče organizirati gibanje po bolj zapletenih poteh



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

  • Oba senzorja sta bela - robot vozi naravnost (oba motorja se vrtita z enako močjo)
  • Če desni svetlobni senzor zadene črno črto in levi belo črto, pride do zavoja v desno
  • Če levi svetlobni senzor zadene črno črto in desni belo črto, pride do zasuka v levo
  • Če sta oba senzorja črna, pride do linearnega gibanja. Lahko štejete križišča ali izvajate poljubna dejanja


Načelo delovanja P-regulatorja

Položaj senzorja

O=O1-O2


Algoritem za premikanje po črni črti s proporcionalnim regulatorjem

HC = K*(C-T)

  • Ts - ciljne vrednosti (odčitajte svetlobni senzor na beli in črni barvi, izračunajte povprečje)
  • T - trenutna vrednost - pridobljena iz senzorja
  • K - koeficient občutljivosti. Več, večja je občutljivost


15.01.2012, 18:51

Do zdaj je bila v člankih o algoritmih, ki se uporabljajo pri premikanju vzdolž črte, upoštevana metoda, ko se je zdelo, da svetlobni senzor nadzoruje njeno levo ali desno mejo: takoj ko se je robot premaknil v beli del polja, je krmilnik vrnil robota do meje se je senzor začel premikati globlje v črno črto - regulator ga je poravnal nazaj.
Kljub dejstvu, da je zgornja slika prikazana za relejni regulator, bo splošno načelo gibanja proporcionalnega (P-regulatorja) enako. Kot smo že omenili, povprečna hitrost takšnega gibanja ni zelo visoka, zato je bilo narejenih več poskusov, da bi jo povečali z rahlim zapletom algoritma: v enem primeru je bilo uporabljeno "mehko" zaviranje, v drugem pa poleg zavojev gibanje naprej je bil predstavljen.
Da bi robotu omogočili premikanje naprej na nekaterih območjih, je bilo v območju vrednosti, ki jih proizvaja svetlobni senzor, dodeljeno ozko območje, ki bi ga lahko konvencionalno imenovali "senzor je na meji črte."
Ta pristop ima majhno pomanjkljivost - če robot "sledi" levi meji črte, potem pri desnih zavojih ne zazna takoj ukrivljenosti poti in posledično porabi več časa za iskanje črte in obračanje. Poleg tega lahko z gotovostjo trdimo, da ostrejši kot je zavoj, dlje traja to iskanje.
Naslednja slika prikazuje, da če senzor ne bi bil na levi strani meje, ampak na desni, bi že zaznal ukrivljenost trajektorije in začel izvajati manevre obračanja.

Zato je dobro robota opremiti z dvema senzorjema naenkrat, ki sta nameščena na nasprotnih straneh črte in bi temu primerno pomagala robotu hitreje reagirati na spremembe smeri gibanja.
Zdaj moramo ugotoviti, kako bo ta sprememba zasnove vplivala na program. Zaradi enostavnosti bi morali spet začeti z najpreprostejšim krmilnikom relejev, zato nas najprej zanimajo možni položaji senzorjev glede na linijo:

Pravzaprav je mogoče ugotoviti še en sprejemljiv pogoj - na kompleksnih poteh bo to križišče križišča ali nekakšna zgostitev na poti.
Drugi položaji senzorjev ne bodo upoštevani, ker so bodisi izpeljanke tistih, ki so prikazani zgoraj, ali pa so to položaji robota, ko je zapustil linijo in se ne bo mogel več vrniti nanjo z uporabo informacij iz senzorjev . Posledično se lahko vse zgornje določbe zmanjšajo na naslednjo klasifikacijo:
  • levi senzor je tako kot desni nad svetlo površino
  • levi senzor nad svetlo površino, desni senzor nad temno
  • levi senzor nad temno površino, desni senzor nad svetlo površino
  • oba senzorja se nahajata nad temno površino
Če v določenem trenutku program na robotu zazna enega od teh položajev, se bo moral ustrezno odzvati:
    Če sta oba senzorja nad belo površino, je to normalna situacija, v kateri je črta med senzorjema, zato mora robot iti naravnost, če je levi senzor še vedno nad svetlobno površino, desni senzor pa je že nad temen, potem je robot zapeljal z desno stranjo na črto, kar pomeni, da se mora obrniti v desno, tako da je črta spet med senzorji, če je levi senzor nad temno površino, desni pa miruje nad svetlobo, nato pa se mora robot obrniti v levo. Če sta oba senzorja nad temno površino, potem splošni primer, se robot spet nadaljuje naravnost.

Zgornji diagram takoj pokaže, kako natančno naj bi se spremenilo obnašanje motorjev v programu. Pisanje programa ne bi smelo biti težko. Ni pomembno, zato naj ostane. Ugotoviti je treba, ali je nad svetlo ali temno površino:
To dejanje vam še ne omogoča, da poveste, v katero smer naj gre robot. Vendar pa bo zgoraj našteta stanja razdelila v dve skupini: (I, II) za zgornjo vejo in (III, IV) za spodnjo vejo. Vsaka skupina ima zdaj dve stanji, zato morate izbrati eno od njiju. Če natančno pogledate prvi dve stanji I in II, se razlikujeta po položaju desnega senzorja - v enem primeru je nad svetlo površino, v drugem - nad temno. To je tisto, kar bo določilo izbiro ukrepanja:
Zdaj lahko vstavite bloke, ki določajo obnašanje motorjev v skladu z zgornjimi tabelami: zgornja veja ugnezdenega pogoja definira kombinacijo "oba senzorja na svetlobi", zgornja - "levo na svetlobi, desno na temi":
Spodnja veja glavnega stanja je odgovorna za drugo skupino stanj III in IV. Stanji se med seboj razlikujeta tudi po stopnji svetlobe, ki jo zazna desni senzor. To pomeni, da bo določil izbiro vsakega od njih:
Nastali dve veji sta napolnjeni z bloki gibanja. Zgornja veja je odgovorna za stanje "levo na temi, desno na svetlobi", spodnja veja pa za "oba senzorja na temi".
Opozoriti je treba, da ta dizajn samo določa, kako vklopiti motorje glede na odčitke senzorjev na določenem mestu v polju, seveda mora program čez trenutek preveriti, ali so se odčitki spremenili, da ustrezno prilagodi obnašanje motorjev, in čez trenutek spet, spet itd. Zato ga je treba postaviti v zanko, ki bo zagotovila to ponavljajoče se preverjanje:

Tako lepo preprost program bo zagotovil precej visoko hitrost gibanja robota vzdolž črte, ne da bi letel čez njene meje, če je pravilno konfiguriran največja hitrost pri gibanju v stanjih I in IV ter tudi nast najboljši način zaviranje v stanjih II in III - bolj strmi kot so zavoji na avtocesti, močnejše bi moralo biti zaviranje - hitrost je treba hitreje zmanjševati in obratno - pri gladkih zavojih je povsem mogoče zavirati z izklopom ali celo s popolnim zmanjšanjem hitrosti.

Nekaj ​​ločenih besed je treba povedati tudi o postavitvi senzorjev na robotu. Očitno veljajo enaka priporočila za lokacijo teh dveh senzorjev glede na kolesa kot za en senzor, le vrh trikotnika se vzame kot sredina segmenta, ki povezuje oba senzorja. Tudi razdaljo med samimi senzorji je treba izbrati glede na značilnosti proge: bližje kot so senzorji drug drugemu, pogosteje se bo robot izravnal (izvajal razmeroma počasne zavoje), če pa so senzorji dovolj široko razmaknjeni , potem obstaja nevarnost, da zletite s proge, zato boste morali več "trdih" zavojev in zmanjšati hitrost na ravnih odsekih.



 


Preberite:



Računovodstvo obračunov s proračunom

Računovodstvo obračunov s proračunom

Račun 68 v računovodstvu služi za zbiranje informacij o obveznih plačilih v proračun, odtegnjenih tako na račun podjetja kot ...

Skutni kolački v ponvi - klasični recepti za puhaste sirove kolačke Skutni kolački iz 500 g skute

Skutni kolački v ponvi - klasični recepti za puhaste sirove kolačke Skutni kolački iz 500 g skute

Sestavine: (4 porcije) 500 gr. skute 1/2 skodelice moke 1 jajce 3 žlice. l. sladkor 50 gr. rozine (po želji) ščepec soli sode bikarbone...

Solata Črni biser s suhimi slivami Solata Črni biser s suhimi slivami

Solata

Lep dan vsem, ki stremite k raznolikosti vsakodnevne prehrane. Če ste naveličani enoličnih jedi in želite ugoditi...

Recepti lecho s paradižnikovo pasto

Recepti lecho s paradižnikovo pasto

Zelo okusen lecho s paradižnikovo pasto, kot je bolgarski lecho, pripravljen za zimo. Takole v naši družini predelamo (in pojemo!) 1 vrečko paprike. In koga bi ...

feed-image RSS