Follow a line/fi
<languages/>
Introduction
Viivanseurantaan on hyvin paljon erilaisia tapoja eli algoritmeja. Tässä näytämme kaksi yksinkertaista menetelmää, jotka kummatkin voidaan koodata usealla eri tavalla. Menetelmät ovat nimeltään zig zag ja verrannollinen viivanseuranta.
Viivan voit piirtää isolle paperille tai vetämällä esimerkiksi teipillä viivan lattiaan. Helpoin viiva algoritmeille on sileä (tasainen), mutta viivassa voi tietenkin olla myös teräviä käännöksiä. Nämä algoritmit eivät huomaa, jos viiva leikkaa itseään.
Robotti
Lähes mikä tahansa liikkuva robotti toimii.
Anturit
Valoanturi on välttämätön. Joissain harjoitustehtävissä hyödynnetään kahta valoanturia.
Esimerkkivideot
Teoriaa
Itse asiassa nämä algoritmit seuraavat viivan reunaa, eikä viivaa.
Kalibrointi
Värianturi pitäisi kalibroida, jotta algoritmi toimii hyvin. Se voidaan kalibroida erillisellä ohjelmalla tai mustan ja valkoisen valon heijastuskertoimet voidaan tallettaa algoritmin käyttöön.
Zig Zag
Zig zag -algoritmi kääntyy oikealle, jos se näkee valkoista ja se kääntää robottia vasemmalle, jos anturi näkee mustaa. Tai päinvastoin. Algoritmi on helppo koodata yhdellä ehtolausekkeella. Robotin nopeutta ja kääntymismäärää pitänee säätää.

Verrannollinen

Verrannollinen viivanseuraaja kääntyy sen mukaan, mitä arvoja värianturista tulee. Tässä anturi oletetaan kalibroiduksi, eli arvolla robotti kulkee suoraan. Määritellään ohjausfunktio
.
Selvästi nähdään, että jos
Tekee | ||
---|---|---|
0 | -100 | Kääntyy vasemmalle |
50 | 0 | Ajaa suoraan |
100 | 100 | Kääntyy oikealle |
Verrannollisuuskerroin on , jolloin robotti kääntyy nopeasti. Viivastasi riippuen saatat tarvita suuremman tai pienemmän kääntöarvon. Kääntöfunktio voidaan yleistää helposti funktioksi
jolloin erilaisia verrannollisuuskertoimia voidaan testata helpommin. Tämä on helppo ohjelmoida Ev3-G -ohjelmointikielellä.
Esimerkkikoodi
Zig Zag
Zig zag ei aja koskaan suoraan. Se kääntyy joko oikealle tai vasemmalle. Silti se voidaan tehdä hyvin nopeaksi ja luotettavaksi, tietenkin viivasta riippuen.

Proportional
The proportional code reads the reflected light intensity, and if it exactly 50 the robot drives forward. Otherwise it turns to left or right. There is a proportional constant to determine the speed of the turn.

Exercises
- Use the other side of the line to follow the line
- Make the robot to change the side of the line during the line following: Thus, after following the line e.g. 2 wheel rotations, use the other side of the line
- Make a robot with two color sensors, and use the information from the other sensor to stop the robot when the other sensor recognizes black line.
- Make a robot with two color sensors, and make the robot to follow a line that is in between the two sensors.
- Make a robot with two color sensors, and make the robot to follow first the line with left sensor, then after two wheel rotations use the other sensor to follow the line to the end.
This course is supported by Meet and Code. The course is made in collaboration with Robotiikka- ja tiedekasvatus ry.
