Sima mozgás a fekete vonal mentén ev3. Lego EV3. Mozgás a fekete vonal mentén. Színérzékelő - "Környezeti fény fényereje" mód

Belső

Annak érdekében, hogy a robot zökkenőmentesen mozogjon a fekete vonal mentén, kényszerítenie kell magát, hogy kiszámítsa a mozgás sebességét.

Az ember lát egy fekete vonalat és annak egyértelmű határát. A fényérzékelő egy kicsit másképp működik.

A fényérzékelőnek ezt a tulajdonságát - a fehér és a fekete közötti világos megkülönböztetés képtelenségét - fogjuk használni a mozgás sebességének kiszámításához.

Először is mutassuk be az „ideális pályapont” fogalmát.

A fényérzékelők értéke 20 és 80 között van, leggyakrabban fehéren körülbelül 65, feketén körülbelül 40.

Az ideális pont egy konvencionális pont, amely körülbelül a fehér és a fekete szín közepén helyezkedik el, ami után a robot a fekete vonal mentén mozog.

Itt a pont helye alapvető - a fehér és a fekete között. Matematikai okokból nem lehet pontosan beállítani fehérre vagy feketére, hogy miért, az majd kiderül.

Empirikusan kiszámítottuk, hogy az ideális pont a következő képlettel számítható ki:

A robotnak szigorúan az ideális pont mentén kell mozognia. Ha bármilyen irányban eltérés van, a robotnak vissza kell térnie arra a pontra.

Komponáljunk a probléma matematikai leírása.

Kezdeti adatok.

Ideális pont.

A fényérzékelő aktuális állása.

Eredmény.

A motor forgási teljesítménye V.

A motor forgási teljesítménye C.

Megoldás.

Tekintsünk két helyzetet. Először: a robot a fekete vonaltól a fehér vonal felé tért el.

Ebben az esetben a robotnak növelnie kell a B motor forgási teljesítményét és csökkentenie kell a C motor teljesítményét.

Abban a helyzetben, amikor a robot belép a fekete vonalba, ennek az ellenkezője igaz.

Minél jobban eltér a robot az ideális ponttól, annál gyorsabban kell visszatérnie oda.

De egy ilyen szabályozó létrehozása meglehetősen nehéz feladat, és nem mindig szükséges teljes egészében.

Ezért úgy döntöttünk, hogy csak a P-szabályozóra korlátozzuk magunkat, amely megfelelően reagál a fekete vonaltól való eltérésekre.

A matematikai nyelven így lesz leírva:

ahol Hb és Hc a B és C motor végső teljesítménye,

Alap – a motorok bizonyos alapteljesítménye, amely meghatározza a robot sebességét. Kísérletileg választják ki, a robot kialakításától és a fordulatok élességétől függően.

Itek – a fényérzékelő aktuális állása.

Iid – számított ideális pont.

k – arányossági együttható, kísérletileg kiválasztott.

A harmadik részben azt nézzük meg, hogyan lehet ezt programozni NXT-G környezetben.

Az ember így látja a vonalat:

A robot így látja:


Ezt a funkciót fogjuk használni, amikor robotot tervezünk és programozunk a „Trajectory” versenykategóriához.

Sokféleképpen lehet megtanítani egy robotot arra, hogy lásson egy vonalat és mozogjon rajta. Vannak összetett programok és nagyon egyszerűek is.

Egy olyan programozási módszerről szeretnék beszélni, amelyet még a 2-3 osztályos gyerekek is el tudnak sajátítani. Ebben a korban már sokkal könnyebben tudnak instrukciók szerint összeállítani a szerkezeteket, a robotprogramozás pedig nekik való nehéz feladat. De ez a módszer lehetővé teszi a gyermek számára, hogy 15-30 perc alatt beprogramozza a robotot a pálya bármely útvonalára (figyelembe véve a lépésről lépésre történő tesztelést és a pálya egyes jellemzőinek beállítását).

Ezt a módszert a Szurgut régióban és a Hanti-Mansi Autonóm Kerületben zajló önkormányzati és regionális robotika versenyeken tesztelték, és iskolánk első helyezést ért el. Ott meggyőződtem arról, hogy ez a téma sok csapat számára nagyon aktuális.

Nos, kezdjük.

Az ilyen típusú versenyekre való felkészülés során a programozás csak egy része a feladat megoldásának. Először meg kell terveznie egy robotot egy adott útvonalra. A következő cikkben elmondom, hogyan kell ezt megtenni. Nos, mivel egy vonal mentén történő mozgás nagyon gyakran előfordul, a programozással kezdem.

Vegyük fontolóra a két fényérzékelős robot lehetőségét, hiszen az általános iskolások számára érthetőbb.

A fényérzékelők a 2-es és 3-as portokhoz csatlakoznak. Motorok a B és C portokhoz.
Az érzékelők a vonal szélein helyezkednek el (próbáljon kísérletezni az érzékelők egymástól eltérő távolságra és különböző magasságokban történő elhelyezésével).
Fontos pont. Mert jobb munka Egy ilyen sémához célszerű egy pár érzékelőt kiválasztani a paraméterek szerint. Ellenkező esetben be kell vezetni egy blokkot az érzékelő értékeinek beállításához.
Érzékelők felszerelése az alvázra a szerint klasszikus séma(háromszög), körülbelül olyan, mint a képen.

A program kis számú blokkból fog állni:


1. Két fényérzékelő egység;
2. „Matematika” négy blokkja;
3. Két motorblokk.

A robot vezérlésére két motor szolgál. Mindegyik teljesítménye 100 egység. Sémánkhoz a motorteljesítmény átlagos értékét 50-nel vesszük. Ez azt jelenti, hogy az átlagos sebesség egyenes vonalban haladva 50 egység lesz. Az egyenes vonalú mozgástól való eltérés esetén a motorok teljesítménye az eltérés szögétől függően arányosan nő vagy csökken.

Most kitaláljuk, hogyan kapcsoljuk össze az összes blokkot, konfiguráljuk a programot, és mi fog történni benne.
Állítsunk fel két fényérzékelőt, és rendeljük hozzájuk a 2. és 3. portot.
Vegye ki a matematikai blokkot, és válassza a „Kivonás” lehetőséget.
Csatlakoztassuk a fényérzékelőket a buszok „intenzitás” kimeneteiről a matematikai blokkhoz az „A” és „B” bemenetekre.
Ha a robot érzékelőit a nyomvonal közepétől szimmetrikusan szerelik fel, akkor mindkét érzékelő értéke egyenlő lesz. Kivonás után kapjuk a 0 értéket.
A következő matematikai blokkot együtthatóként használjuk, és be kell állítania a „Szorzás” értéket.
Az együttható kiszámításához meg kell mérnie a „fehér” és „fekete” szintet az NXT blokk segítségével.
Tegyük fel: fehér -70, fekete -50.
Ezután kiszámítjuk: 70-50 = 20 (a fehér és a fekete különbsége), 50/20 = 2,5 (az átlagos teljesítményértéket, amikor egyenes vonalban haladunk a matematikai blokkban, 50-re állítjuk. Ez az érték plusz a hozzáadott teljesítmény beállításakor a mozgásnak 100-nak kell lennie)
Állítsa be az értéket 2,5-re az „A” bemenetnél, majd válassza ki pontosabban.
A „Szorzás” matematikai blokk „B” bemenetéhez csatlakoztassa az előző „Kivonás” matematikai blokk „Eredmény” kimenetét.
Ezután jön egy pár - egy matematikai blokk (összeadás) és a B motor.
A matematikai blokk beállítása:
Az „A” bemenet 50-re van állítva (a motorteljesítmény fele).
Az „Eredmény” blokk kimenete egy buszon keresztül csatlakozik a B motor „Power” bemenetéhez.
A következő pár a matematikai blokk (Kivonás) és a C motor.
A matematikai blokk beállítása:
Az „A” bemenet 50-re van állítva.
A „B” bemenet egy buszon keresztül csatlakozik a „Szorzás” matematikai blokk „Eredmény” kimenetéhez.
Az „Eredmény” blokk kimenete egy buszon keresztül csatlakozik a C motor „Power” bemenetéhez.

Mindezen műveletek eredményeként a következő programot kapja:

Mivel mindez egy ciklusban fog működni, hozzáadjuk a „Cycle”-t, kiválasztjuk és áthelyezzük a „Cycle”-be.

Most próbáljuk meg kitalálni, hogyan fog működni a program, és hogyan kell konfigurálni.


Amíg a robot egyenes vonalban mozog, az érzékelők értékei egybeesnek, ami azt jelenti, hogy a „Kivonás” blokk kimenete 0 lesz. A „Szorzás” blokk kimenete szintén 0 értéket ad. Ezt az értéket a motorvezérlő párral párhuzamosan adjuk. Mivel ezek a blokkok 50-re vannak állítva, a 0 összeadása vagy kivonása nem befolyásolja a motorok teljesítményét. Mindkét motor azonos 50-es teljesítménnyel működik, és a robot egyenes vonalban gurul.

Tegyük fel, hogy a pálya kanyarodik, vagy a robot letér az egyenesről. Mi fog történni?

Az ábrán látható, hogy a 2-es portra csatlakoztatott érzékelő (a továbbiakban: 2. és 3. szenzor) megvilágítása a fehér mezőre kerülve nő, a 3. szenzor megvilágítása pedig csökken. Tegyük fel, hogy ezeknek az érzékelőknek az értékei a következők lesznek: 2. érzékelő – 55 egység, 3. érzékelő – 45 egység.
A „Kivonás” blokk meghatározza két érzékelő (10) értéke közötti különbséget, és továbbítja a korrekciós blokkba (együtthatóval szorozva (10*2,5=25)), majd a vezérlőblokkokhoz.
motorok.
A matematikai blokkban (Addition) a motorvezérlés B az értékhez átlagsebesség 50
25 kerül hozzáadásra, és 75-ös teljesítményértéket kap a B motor.
A C motor vezérlésére szolgáló matematikai blokkban (Kivonás) az 50-es átlagsebesség-értékből 25-öt levonnak, és a C motort 25-ös teljesítményértékkel látják el.
Ily módon az egyenestől való eltérés korrigálásra kerül.

Ha a pálya élesen oldalra fordul, a 2. érzékelő fehér, a 3. érzékelő pedig fekete. Ezeknek az érzékelőknek a megvilágítási értékei a következők: 2-70 egység és 3-50 egység.
A „Kivonás” blokk meghatározza két érzékelő (20) értéke közötti különbséget, és továbbítja azt a korrekciós blokkhoz (20*2,5=50), majd a motorvezérlő egységekhez.
Most a B motor vezérlésének matematikai (kiegészítés) blokkjában 50 +50 =100 teljesítményértéket kap a B motor.
A C motor szabályozásának matematikai blokkjában (Kivonás) 50 – 50 = 0 teljesítményérték kerül a C motorra.
És a robot éles kanyart fog tenni.

Fehér és fekete mezőkön a robotnak egyenes vonalban kell haladnia. Ha ez nem történik meg, próbáljon meg azonos értékű érzékelőket választani.

Most pedig alkossunk új blokkés ezzel fogjuk mozgatni a robotot bármilyen útvonalon.
Válassza ki a ciklust, majd a „Szerkesztés” menüben válassza a „Blokk létrehozása” parancsot.

A „Block Designer” párbeszédpanelen adjon nevet a blokknak, például „Go”, válasszon egy ikont a blokkhoz, és kattintson a „KÉSZ” gombra.

Most van egy blokk, amely olyan esetekben használható, amikor egy vonal mentén kell haladnunk.

A könnyű konstrukciók egyik alapmozdulata a fekete vonal követése.

Általános elmélet és konkrét példák A program létrehozását a wroboto.ru weboldal ismerteti

Leírom, hogyan valósítjuk meg ezt az EV3 környezetben, mert vannak eltérések.

Az első dolog, amit a robotnak tudnia kell, az a fekete-fehér határán elhelyezkedő „ideális pont” jelentése.

A piros pont helye az ábrán pontosan ennek a pozíciónak felel meg.

Az ideális számítási lehetőség a fekete-fehér értékek mérése és a számtani átlag vétele.

Ezt manuálisan is megteheti. A hátrányok azonban azonnal láthatóak: akár rövid időn belül is megváltozhat a megvilágítás, és a számított érték hibás lesz.

Tehát rávehet egy robotot, hogy megcsinálja.

A kísérletek során rájöttünk, hogy nem szükséges egyszerre feketét és fehéret is mérni. Csak fehéret lehet mérni. Az ideális pontértéket pedig a fehér érték osztva 1,2-vel (1,15), a fekete vonal szélességétől és a robot sebességétől függően.

A kiszámított értéket egy változóba kell írni, hogy később hozzáférhessünk.

Az „ideális pont” kiszámítása

A mozgásban szerepet játszó következő paraméter a forgási együttható. Minél nagyobb, annál élesebben reagál a robot a megvilágítás változásaira. De túl sokat nagyon fontos a robot inogni fog. Az értéket kísérletileg választják ki minden egyes robottervezésnél.

Az utolsó paraméter a motorok alapteljesítménye. Ez befolyásolja a robot sebességét. A mozgási sebesség növelése a robot válaszidejének növekedéséhez vezet a megvilágítás változásaira, ami a pályáról való eltéréshez vezethet. Az értéket kísérletileg is kiválasztjuk.

A kényelem kedvéért ezek a paraméterek változókba is írhatók.

Fordítási arány és alapteljesítmény

A fekete vonal mentén történő mozgás logikája a következő: mérjük az ideális ponttól való eltérést. Minél nagyobb, annál erősebben kell a robotnak arra törekednie, hogy visszatérjen hozzá.

Ehhez két számot számítunk ki - a B és C motorok teljesítményértékét külön-külön.

Képlet formájában így néz ki:

Ahol Isens a fényérzékelő leolvasási értéke.

Végül a megvalósítás az EV3-ban. A legkényelmesebb egy külön blokk formájában elhelyezni.

Az algoritmus megvalósítása

Pontosan ez az az algoritmus, amelyet a WRO 2015 középkategóriás robotjában implementáltak

Algoritmusok egy mobil LEGO robot irányításához. Vonalmozgás két fényérzékelővel

Kiegészítő tanár

Kazakova Ljubov Alekszandrovna


Mozgás a vonal mentén

  • Két fényérzékelő
  • Arányos vezérlő (P-vezérlő)

Algoritmus a fekete vonal mentén való mozgáshoz arányos vezérlő nélkül

  • Mindkét motor azonos teljesítménnyel forog
  • Ha a jobb oldali fényérzékelő eléri a fekete vonalat, akkor a bal oldali motor teljesítménye (például B) csökken vagy leáll
  • Ha a bal oldali fényérzékelő eléri a fekete vonalat, akkor egy másik motor (például C) teljesítménye csökken (visszatér a vonalhoz), csökken vagy leáll
  • Ha mindkét érzékelő fehér vagy fekete, akkor egyenes vonalú mozgás

A mozgás az egyik motor teljesítményének változtatásával szerveződik


Példa egy programra fekete vonal mentén P-vezérlő nélkül

A mozgás a forgásszög változtatásával szerveződik


  • Az arányos vezérlő (P-vezérlő) lehetővé teszi a robot viselkedésének beállítását attól függően, hogy a viselkedése mennyire tér el a kívánttól.
  • Minél jobban eltér a robot a céltól, annál több erőfeszítést kell tennie, hogy visszatérjen hozzá.

  • A P-vezérlő arra szolgál, hogy a robotot egy bizonyos állapotban tartsa:
  • A manipulátor helyzetének tartása Mozgás vonal mentén (fényérzékelő) Mozgás a fal mentén (távolságérzékelő)
  • A manipulátor pozíciójának tartása
  • Vonalmozgás (fényérzékelő)
  • Mozgás a fal mentén (távolságérzékelő)

Vonalmozgás egy érzékelővel

  • A cél a „fehér-fekete” határ mentén haladni
  • Az ember meg tudja különböztetni a határt a fehér és a fekete között. Egy robot nem tud.
  • A robot célja szürke

Átvezetés kereszteződéseken

Két fényérzékelő használatával bonyolultabb útvonalakon is meg lehet szervezni a mozgást



Algoritmus kereszteződésekkel rendelkező autópályán való haladáshoz

  • Mindkét érzékelő fehér – a robot egyenesen halad (mindkét motor azonos teljesítménnyel forog)
  • Ha a jobb oldali fényérzékelő a fekete vonalat, a bal oldali pedig a fehér vonalat érinti, akkor jobbra fordulás történik
  • Ha a bal oldali fényérzékelő eléri a fekete vonalat, a jobb oldali pedig a fehér vonalat, akkor balra fordul
  • Ha mindkét érzékelő fekete, akkor lineáris mozgás történik. Megszámolhatja a kereszteződéseket, vagy bármilyen műveletet végrehajthat


A P-szabályozó működési elve

Érzékelő helyzete

O=O1-O2


Algoritmus a fekete vonal mentén való mozgáshoz arányos vezérlővel

HC = K*(C-T)

  • Ts - célértékek (a fényérzékelő leolvasása fehéren és feketén, az átlag kiszámítása)
  • T - áramérték - az érzékelőtől kapott
  • K - érzékenységi együttható. Minél több, annál nagyobb az érzékenység



A prezentáció képekkel, dizájnnal és diákkal való megtekintéséhez, töltse le a fájlt, és nyissa meg a PowerPointban a számítógépeden.
A bemutató diák szöveges tartalma:
„Algoritmus a fekete vonal mentén egy színérzékelővel történő mozgáshoz” A „Robotika” klubja Jezidov Akhmed Elievich tanár előttAt MBU DO „Shelkovskaya TsTT” A fekete vonal mentén történő mozgás algoritmusának tanulmányozásához egy robotot használnak Lego Mindstorms EV3 egy színérzékelővel Színérzékelő A színérzékelő 7 színt különböztet meg, és képes érzékelni a szín hiányát. Az NXT-hez hasonlóan fényérzékelőként is működhet. Robotversenyek pályája "S vonal" A javasolt edzőpálya az "S" betű alakú pályával lehetővé teszi, hogy egy másik érdekes tesztet végezzen a létrehozott robotokon a sebesség tekintetében és reakció. Mérlegeljük legegyszerűbb algoritmus mozgás a fekete vonal mentén az egyik színérzékelőn az EV3-on. Ez az algoritmus a leglassabb, de a legstabilabb. A robot nem szigorúan a fekete vonal mentén fog mozogni, hanem annak határa mentén, jobbra-balra fordulva, és fokozatosan előrehaladva. Az algoritmus nagyon egyszerű: ha az érzékelő feketét lát, akkor a robot az egyik irányba fordul, ha fehér - a másik irányba. Egy vonal követése visszavert fényerő módban két érzékelővel Néha a színérzékelő nem elég hatékony a fekete és a fehér színek. A probléma megoldása az, hogy az érzékelőt nem színérzékelési módban, hanem visszavert fényerősség módban használjuk. Ebben a módban, ismerve az érzékelő értékeket egy sötét és világos felületen, függetlenül meg tudjuk mondani, hogy mi lesz fehér és mi fekete. Most határozzuk meg a fényerő értékeit fehér és fekete felületeken. Ehhez az EV3 blokk menüjében találjuk a „Modulalkalmazások” fület, ahol a port megtekintő ablakban láthatjuk az aktuális pillanatban az összes érzékelő leolvasását. érzékelőinknek pirosan kell világítaniuk, ami azt jelenti, hogy visszavert fényerősség-érzékelő módban működnek. Ha kéken világítanak, a kívánt porton a kikötőbemutató ablakban nyomja meg a középső gombot és válassza ki a COL-REFLECT módot Most helyezzük el úgy a robotot, hogy mindkét érzékelő a fehér felület felett legyen. Az 1-es és 4-es portokban nézzük a számokat. Esetünkben az értékek 66, illetve 71. Ezek lesznek az érzékelők fehér értékei. Most helyezzük el a robotot úgy, hogy az érzékelők a fekete felület felett helyezkedjenek el. Nézzük meg újra az 1-es és 4-es portok értékét. Nálunk az 5-ös és a 6-os portok értékei vannak. Ezek a fekete jelentései. Ezután megváltoztatjuk az előző programot. Ugyanis a kapcsolók beállításait változtatjuk meg. Egyelőre Color Sensor -> Measurement -> Color telepítve van. Be kell állítani a Color Sensor -> Comparison -> Reflected Light Brightness -t, majd be kell állítani az „összehasonlítás típusát” és a „küszöbértéket”. A küszöbérték néhány „szürke” értéke, amelynél kisebb értékeket feketének tekintünk, és többet – fehérnek. Első közelítésként célszerű az egyes érzékelők fehér és fekete közötti átlagos értéket használni. Így az első szenzor (1. port) küszöbértéke (66+5)/2=35,5 lesz. Kerekítsük fel 35-re. A második érzékelő küszöbértéke (4-es port): (71+6)/2 = 38,5. Kerekítsük fel 38-ra. Most minden kapcsolóban ennek megfelelően állítjuk be ezeket az értékeket, ennyi, a mozgásos blokkok változtatás nélkül a helyükön maradnak, hiszen ha az „összehasonlítás típus” jelet adjuk<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета