Ohjaus#
Johdanto#
VEXcode VR:n ohjauslohkot hallitsevat projektin kulkua käsittelemällä silmukoita, ehtoja ja viivästyttämällä lohkojen suorittamista.
Silmukka tarkoittaa, että tietokone toistaa samaa vaihetta tai vaiheryhmää yhä uudelleen ja uudelleen, kunnes sille annetaan käsky lopettaa. Ehto on sääntö, jota tietokone tarkistaa päättääkseen, mitä tehdä seuraavaksi. Esimerkiksi robotti voi liikkua eteenpäin, jos anturi havaitsee kohteen.
Alla on luettelo saatavilla olevista lohkoista:
wait – Keskeyttää lohkojen suorittamisen tietyksi ajaksi.
odottaa kunnes – Keskeyttää lohkojen suorittamisen, kunnes määritetty ehto täyttyy.
repeat – Toistaa joukon lohkoja tietyn määrän kertoja.
forever – Toistaa joukon lohkoja loputtomiin.
toista kunnes – Toistaa joukon lohkoja, kunnes ehto täyttyy.
while – Toistaa joukon lohkoja niin kauan kuin ehto pysyy tosi.
if – Suorittaa joukon lohkoja, jos ehto on tosi.
if / else – Suorittaa yhden lohkojoukon, jos ehto on tosi, muuten toisen.
if / else if / else – Suorittaa erilaisia lohkosarjoja useiden ehtojen perusteella.
break – Poistuu välittömästi repeat-, forever-, repeat until- tai while-silmukasta.
lopeta projekti – Lopettaa projektin.
Odota#
Odota-pinolohko keskeyttää lohkojen suorittamisen tietyksi ajaksi ennen siirtymistä seuraavaan lohkoon.
odota (1) sekuntia
Parametrit |
Kuvaus |
|---|---|
aika |
Odotusaika positiivisena kokonaislukuna tai desimaalilukuna sekunteina. |
Esimerkki
kun käynnistetään :: hat events
[Move forward for one second, then stop.]
aja [eteenpäin v]
odota (1) sekuntia
pysäytä ajaminen
odota kunnes#
Odota kunnes -pinolohko keskeyttää lohkojen suorittamisen, kunnes määritetty ehto täyttyy ennen siirtymistä seuraavaan lohkoon.
odota kunnes <>
Parametrit |
Kuvaus |
|---|---|
kunto |
Ehto, joka on täytettävä ennen siirtymistä seuraavaan lohkoon. |
Esimerkki
kun käynnistetään :: hat events
[Move forward until a button is pressed, then stop.]
aja [eteenpäin v]
odota kunnes <[LeftBumper v] painettu?>
pysäytä ajaminen
toistaa#
Repeat C-lohkossa sen sisällä olevat lohkot suoritetaan tietyn määrän kertoja.
toista [10]
Loppu
Parametrit |
Kuvaus |
|---|---|
kertaa |
Kokonaisluku, joka määrittää, kuinka monta kertaa toisto-lohko suoritetaan. |
Esimerkki
kun käynnistetään :: hat events
[Move in a square path.]
toista [4]
aja [eteenpäin v] [150] [mm v] ▶
käänny [oikealle v] [90] astetta ▶
Loppu
ikuisesti#
Ikuisesti toimiva C-lohko jatkaa sisällään olevien palikoiden pyörittämistä yhä uudelleen ja uudelleen pysähtymättä.
ikuisesti
Loppu
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Move in a square path forever.]
ikuisesti
aja [eteenpäin v] [150] [mm v] ▶
käänny [oikealle v] [90] astetta ▶
Loppu
toista, kunnes#
C-lohko toista kunnes suorittaa sen sisällä olevia lohkoja toistuvasti, kunnes määritetty ehto ei täyty.
toista kunnes <>
Loppu
Parametrit |
Kuvaus |
|---|---|
kunto |
Lauseke tai muuttuja, joka tarkistetaan ennen jokaista silmukkaa. Jos se on Epätosi, lohkot toistuvat edelleen. Jos se on Tosi, silmukka pysähtyy. |
Esimerkki
kun käynnistetään :: hat events
[Move the pen until the bumper is pressed.]
aja [eteenpäin v]
toista kunnes <[LeftBumper v] painettu?>
siirrä kynää [alas v]
odota (0.5) sekuntia
siirrä kynää [ylös v]
odota (0.5) sekuntia
Loppu
odota (0.5) sekuntia
pysäytä ajaminen
samalla kun#
while C-lohkossa suoritetaan sen sisällä olevia lohkoja toistuvasti niin kauan kuin määritetty ehto täyttyy.
kun <>
Loppu
Parametrit |
Kuvaus |
|---|---|
kunto |
Lauseke tai muuttuja, joka tarkistetaan ennen jokaista silmukkaa. Jos se on Tosi, lohkot toistuvat edelleen. Jos se on Epätosi, silmukka pysähtyy. |
Esimerkki
kun käynnistetään :: hat events
[Display a message while moving.]
aja [eteenpäin v] [300] [mm v] ◀ eikä odota
kun <ajaminen käynnissä?>
tulosta [Moving...] ▶
odota (0.1) sekuntia
tyhjennä kaikki rivit
Loppu
tulosta [Done!] ▶
jos#
C-koodin if-lohko suorittaa sen sisällä olevat lohkot, jos ehto on True.
jos <> niin
Loppu
Parametrit |
Kuvaus |
|---|---|
kunto |
Lauseke tai muuttuja, jota tarkistetaan lausekkeen suorituksen yhteydessä. Jos se on Tosi, jos-lohkon sisällä olevat lohkot suoritetaan. Jos se on Epätosi, lohkot ohitetaan. |
Esimerkki
kun käynnistetään :: hat events
[Turn in a circle if the bumper is pressed.]
aja [eteenpäin v]
ikuisesti
jos <[LeftBumper v] painettu?> niin
aja [taaksepäin v] (200) [mm v] ▶
käänny [oikealle v] (360) astetta ▶
Loppu
pysäytä ajaminen
Loppu
jos / muuten#
C-komennon if / else-lohko määrittää suoritettavan lohkojoukon sen perusteella, onko ehto Tosi vai Epätosi.
jos <> niin
muuten
Loppu
Parametrit |
Kuvaus |
|---|---|
kunto |
Lauseke tai muuttuja, jota tarkistetaan lausekkeen suorituksen yhteydessä. Jos se on Tosi, jos-lohkon sisällä olevat lohkot suoritetaan. Jos se on Epätosi, muuten-lohkon sisällä olevat lohkot suoritetaan. |
Esimerkki
kun käynnistetään :: hat events
[If bumper pressed, reverse and turn right.]
ikuisesti
jos <[LeftBumper v] painettu?> niin
aja [taaksepäin v] (100) [mm v] ▶
käänny [oikealle v] (90) astetta ▶
muuten
aja [eteenpäin v]
Loppu
jos / muuten jos / muuten#
Laajennettava C-lohko if / else if / else valitsee ehtojen perusteella suoritettavan lohkojoukon:
if suorittaa koodilohkonsa, jos ehto arvioidaan arvoksi True.
else if tarkistaa lisäehdot vain, jos kaikki edelliset ehdot ovat arvioitu epätosiksi. Useita else if -lausekkeita voidaan käyttää.
else suorittaa koodilohkonsa vain, jos mikään edellisistä ehdoista ei ole Tosi.
jos <> niin
muuten jos <> niin
muuten
Loppu
Parametrit |
Kuvaus |
|---|---|
kunto |
Lauseke tai muuttuja, jota tarkistetaan lausekkeen suorituksen yhteydessä. Ensimmäinen ehto, joka on Tosi, suorittaa kyseisen lohkojoukon. Jos kaikki ehdot arvioidaan arvoon Epätosi, muuten-lohkon sisällä olevat lohkot suoritetaan. |
Esimerkki
kun käynnistetään :: hat events
[Turn right if the an Eye Sensor detects red, left if it detects green, and continue driving if anything else.]
ikuisesti
jos <[FrontEye v] havaitsee [punainen v]?> niin
käänny [oikealle v] (90) astetta ▶
muuten jos <[FrontEye v] havaitsee [vihreä v]?> niin
käänny [vasemmalle v] (90) astetta ▶
muuten
aja [eteenpäin v]
Loppu
Loppu
tauko#
break-pinolohko poistuu silmukasta välittömästi. Tätä lohkoa voidaan käyttää lohkojen repeat, repeat until, while ja forever sisällä. Break on hyödyllinen, kun silmukka on pysäytettävä aikaisemmin projektin aikana tapahtuvan tapahtuman, kuten painikkeen painalluksen tai anturin havaitseman objektin, vuoksi.
keskeytä
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Stop turning after a button is pressed.]
ikuisesti
aja [eteenpäin v]
jos <[LeftBumper v] painettu?> niin
keskeytä
Loppu
Loppu
pysäytä ajaminen
pysäytä projekti#
stop project -pino-lohko lopettaa käynnissä olevan projektin.
pysäytä projekti
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään :: hat events
[Stop the project entirely after a button is pressed.]
ikuisesti
aja [eteenpäin v]
jos <[LeftBumper v] painettu?> niin
pysäytä projekti
Loppu
Loppu