Viivanseuraaja zigzag ev3-g

From cod3v
This page contains changes which are not marked for translation.


Johdanto

Zigzag-viivanseuraaja on kenties yksinkertaisin viivanseuraaja, mutta senkin saa sopivilla parametrien arvoilla kulkemaan hyvin nopeaan.

Robotti

Koodi toimii melkein missä vain, mutta esimerkki on tehty Asimoville.


Anturit

Tämä tarvitsee värianturin.


Esimerkkivideo

Puuttuu vielä.


Teoriaa

Esimerkkikoodi tutkii, onko värianturin alla mustaa vai valkoista. Jos se on mustaa, se kääntyy vasemmalle ja jos se on valkoista, käännytään oikealle. Se toteutetaan ehto eli IF-lausekkeella. Moottorin ohjauksessa kannattaa käyttää Move Steering -lohkoa eli rattilohkoa. Huomaa, että lohkon laitetaan ON-asentoon, jotta koodin suoritus siirtyy heti tutkimaan mikä väri on anturin alla.


Yleensä aluksi vauhtia kannattaa olla hyvin vähän, jotta ehdit näkemään mitä koodissa tapahtuu ja mitä robotti tekee. Siksi tämäkin robotti kulkee hyvin hitaasti.

Usein kannattaa laittaa harjoituskoodi tulostamaan ääniä, jotta paremmin saat selville missä kohtaa koodin suoritusta tapahtuu mitäkin. Siksi alla olevassa koodissa on äänet.

Alla oleva koodi käyttää moottoreita A ja D, mikä on oikeasti huono asia. Yleensä ajomoottoreihin kannattaa laittaa moottorit B ja C, koska se toimii paremmin.


Tehtäviä

1. Poista äänet koodista.

2. Laita robotti kulkemaan nopeammin. Huomaa, että kun muutat nopeutta, saatat joutua muuttamaan kääntösädettä. Yleensä kannattaa muuttaa vain yhtä asiaa kerralla (vaikka sitten molempiin suuntiin). Mittaa aika radallasi, ja yritä puolittaa alkuperäinen aikasi.

3. Kirjoita koodi uudestaan, mutta käske sen kulkea toisella puolen viivaa.

4. Muuta koodi sellaiseksi, että se pysähtyy kun oikea rengas on kierähtänyt 3,5 kierrosta. Sitä varten muuta silmukan ääretönmerkkiö

5. Muuta lopetusehto siten että robottisi pysähtyy kohdatessaan hopeateipin.

6. Rescue-pelissä robotin pitää osata kulkea viivaa pitkin vaikka viivan suorasta osasta puuttuu pätkä. Tällöin se kulkee suoraan vähän matkaa, kunnes löytää viivansa uudestaan. Tee koodi, mikä osaa selvittää yhden aukon rescue-kentän.