Line follower Zigzag py v2/fi: Difference between revisions

From wikiluntti
(Created page with "=== Anturit === Käytetään värianturia ''reflected light intensity'' -moodissa, portissa numero 3.")
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 12: Line 12:
Käytetään värianturia ''reflected light intensity'' -moodissa, portissa numero 3.
Käytetään värianturia ''reflected light intensity'' -moodissa, portissa numero 3.


== An Illuminating Example ==
== Esimerkki ==
<youtube>iB2SfWeBkvU</youtube>
<youtube>iB2SfWeBkvU</youtube>


== Theory ==
== Teoriaa ==
The zigzag line follower actually follows the other side of the line. If the intensity obtained by the sensor is greater than some threshold value (now 50), it will turn right some amount (now 55). Otherwise, if the the intensity is lower the robot turns steering to left (negative value).


== An Example Code ==
ZigZag-viivanseuraajaa itseasiassa seuraa viivan jompaa kumpaa reunaa. Ajatus on, että jos anturin lukema on pienempi kuin jokin raja-arvo (esimerkiksi 50), robotti kääntyy vasemmalle. Jos anturin arvo on taas suurempi, se kääntyy oikealle.
 
== Esimerkkikoodi ==


<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
Line 49: Line 50:
<youtube>jU2YQIlBGFY</youtube>
<youtube>jU2YQIlBGFY</youtube>


== Exercises ==
== Harjoituksia ==
1. It is difficult to debug the robot as it is silent. Let it say if it is in dark or light area. Use [https://python-ev3dev.readthedocs.io/en/ev3dev-stretch/sensors.html#color-sensor Sound.speak('White').wait()] command or e.g. sound.beep() command. Sound is imported using import Sound command.
1. Robotin debuggaus on helpompaa, jos se puhuu meille. Käytä pythonin ''Sound.speak('White').wait()'' -komentoa tai vaikkapa komentoa ''sound.beep()'', jolla saat sen puhumaan, kun anturi on valkoisen päällä. Muista importata käsky.


2. Make the robot move faster. Note that you need to change the parameters according to your line to follow (and robot). Generally, it is advised to change only one value at time. Time your original time and try to make it half.
2. Laita robotti liikkumaan nopeammin. Huomaa, että parametrit riippuvat sekä viivasta, robotista että valaistuksesta. Yleensä kannattaa muuttaa yhtä arvoa kerrallaan. Kellota alkuperäinen aika, ja yritä puolittaa se.


3. Let the robot use the other side of the line.
3. Laita robotti kulkemaan toista puolta viivaa.


4. Now the while loop is forever. Make the robot stop when the right has turned 3.4 revolutions. See [https://sites.google.com/site/ev3devpython/learn_ev3_python/using-motors ev3 Python] for help.
4. Tämä koodi jatkaa toimintaansa mahdollisimman kauan. Käske robottia pysähtymään, kun oikea rengas on pyörähtynyt 3,4 kierrosta. Katso ohjeita [https://sites.google.com/site/ev3devpython/learn_ev3_python/using-motors ev3 Python] -sivustolta.


5. Let the robot end when it encounters a silver tape (highly shiny).
5. Käske robottia pysähtymään, kun se havaitsee hopeateipin (hyvin kiiltävän).


6. The Rescue is robot game such that it needs to follow the dashed line. So, make a line with a segment missing, but make your robot to still overlap the missing segment and follow the line on the other side of the missing segment.
6. Pelastus-lajissa robotin pitää seurata katkoviivaa. Tee siis viiva, josta puuttuu pätkiä. Ohjelmoi robottisi kulkemaan suoraan, jos viiva katkeaa, ja jatkamaan seuraavalla viivalla viivanseurantaa.




Line 71: Line 72:
== About ==  
== About ==  


This course is supported by [https://meet-and-code.org/ Meet and Code]. The course is made in collaboration with [http://www.fllsuomi.org/ Robotiikka- ja tiedekasvatus ry].
Kurssia tukee rahallisesti  [https://meet-and-code.org/ Meet and Code]. Kurssi on suunniteltu yhteistyössä [http://www.fllsuomi.org/ Robotiikka- ja tiedekasvatus ry]:n kanssa.
[[File:MeetAndcodeLogo.png|thumb]]
[[File:MeetAndcodeLogo.png|thumb]]




[[Meet_and_Code_2020_II:_Python | Meet and Code II: Python]]
[[Meet_and_Code_2020_II:_Python | Meet and Code II: Python]]

Latest revision as of 16:56, 23 September 2020

<languages />


Johdanto

Robotti

Ideat ja periaatteet toimivat lähes kaikille roboteille, mutta tämä on testattu Asimovilla.

Anturit

Käytetään värianturia reflected light intensity -moodissa, portissa numero 3.

Esimerkki

Teoriaa

ZigZag-viivanseuraajaa itseasiassa seuraa viivan jompaa kumpaa reunaa. Ajatus on, että jos anturin lukema on pienempi kuin jokin raja-arvo (esimerkiksi 50), robotti kääntyy vasemmalle. Jos anturin arvo on taas suurempi, se kääntyy oikealle.

Esimerkkikoodi

#!/usr/bin/env python3
# https://sites.google.com/site/ev3devpython/

#Sensor port convention:
#port 3 = color
#port 1 = touch, port 2 = gyro, port 3 = color, port 4 = infrared or ultrasonic.
#84 is Max
#30 is Min

from ev3dev2.sensor.lego import ColorSensor
from ev3dev2.motor import MoveSteering, OUTPUT_B, OUTPUT_C
from time import sleep

steer_pair = MoveSteering(OUTPUT_B, OUTPUT_C)
steer_pair.on(steering=0, speed=10)

cl = ColorSensor() 
while True:
    if cl.reflected_light_intensity > 50:
        steer_pair.on(steering=55, speed=10)
    else:
        steer_pair.on(steering=-55, speed=10)

steer_pair.off()
sleep(5)

Harjoituksia

1. Robotin debuggaus on helpompaa, jos se puhuu meille. Käytä pythonin Sound.speak('White').wait() -komentoa tai vaikkapa komentoa sound.beep(), jolla saat sen puhumaan, kun anturi on valkoisen päällä. Muista importata käsky.

2. Laita robotti liikkumaan nopeammin. Huomaa, että parametrit riippuvat sekä viivasta, robotista että valaistuksesta. Yleensä kannattaa muuttaa yhtä arvoa kerrallaan. Kellota alkuperäinen aika, ja yritä puolittaa se.

3. Laita robotti kulkemaan toista puolta viivaa.

4. Tämä koodi jatkaa toimintaansa mahdollisimman kauan. Käske robottia pysähtymään, kun oikea rengas on pyörähtynyt 3,4 kierrosta. Katso ohjeita ev3 Python -sivustolta.

5. Käske robottia pysähtymään, kun se havaitsee hopeateipin (hyvin kiiltävän).

6. Pelastus-lajissa robotin pitää seurata katkoviivaa. Tee siis viiva, josta puuttuu pätkiä. Ohjelmoi robottisi kulkemaan suoraan, jos viiva katkeaa, ja jatkamaan seuraavalla viivalla viivanseurantaa.

About

Kurssia tukee rahallisesti Meet and Code. Kurssi on suunniteltu yhteistyössä Robotiikka- ja tiedekasvatus ry:n kanssa.


Meet and Code II: Python