ZigZag-viivanseuraaja

From cod3v
This page is a translated version of the page Line follower Zigzag py v2 and the translation is 100% complete.
Other languages:
English • ‎suomi


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.

MeetAndcodeLogo.png


Meet and Code II: Python