Viivanseuraaja verrannollinen ev3-g

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


Johdanto

Verrannollinen viivanseuranta perustuu heijastuneen valon voimakkuuteen. Peruskoodillakin sen saa kulkemaan varsin siististi ja kauniisti. Mitä lähempänä robotin valoisuusanturi on harmaata, sitä suorempaan se kulkee.


Robotti

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


Anturit

Tämä tarvitsee valoisuusanturin.


Esimerkkivideo

Puuttuu vielä.


Teoriaa

Esimerkkikoodi olettaa, että mustan valoisuusarvo on 0 ja valkoisen sata (100). Jos robotillasi näin ei ole, kalibroi anturi. Robotin kääntösäteeksi otetaan luku, joka on verrannollinen valoisuuden poikkeamasta harmaasta eli luvusta 50.

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.

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.

Kääntykulma kannattaa tulosta ruudulle, jotta näet mit robotti tekee, kun se ei tee sitä mitä luulet sen tekevän.

Tehtäviä

1. Poista turha tulostus 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. Muuta koodi sellaiseksi, että se pysähtyy kun oikea rengas on kierähtänyt 3,5 kierrosta. Sitä varten muuta silmukan ääretönmerkkiö

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

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

6. Muuta myös robotin nopeutta siten, että mitä lähempänä se on arvoa 50, sitä nopeammin se kulkee. Vihje: Alla oleva matikkalohko.