Vezérlők#
Bevezetés#
A VEXcode AIR vezérlőblokkjai a projekt áramlását irányítják ciklusok, feltételek és a blokkok futtatásának késleltetésével.
Egy ciklus azt jelenti, hogy egy számítógép ugyanazt a lépést vagy lépéscsoportot ismétli újra és újra, amíg utasítást nem kap a leállításra. A feltétel egy olyan szabály, amelyet a számítógép ellenőrzi, hogy eldöntse, mit tegyen ezután. Például a drón előre tud repülni, amikor megnyomnak egy vezérlőgombot.
Az alábbiakban a rendelkezésre álló blokkok listája található:
wait — Meghatározott ideig szünetelteti a blokkok futását.
várjon addig, amíg — Szünetelteti a blokkok futását, amíg egy megadott feltétel nem teljesül.
repeat — Meghatározott számú alkalommal ismétli meg a blokkok egy halmazát.
forever — Blokkhalmazt ismétel határozatlan ideig.
ismétlésig — Ismétel egy blokkkészletet, amíg egy feltétel nem teljesül.
while — Megismétli a blokkok egy halmazát, amíg egy feltétel igaz marad.
if — Blokkhalmazt futtat, ha egy feltétel igaz.
if / else — Egy blokkkészletet futtat, ha egy feltétel igaz, egyébként egy másikat.
if / else if / else — Különböző blokkkészleteket futtat több feltételtől függően.
break — Azonnal kilép a ciklusból.
projekt leállítása — Befejezi a projektet.
Várjon#
A várakozás veremblokk egy meghatározott időre szünetelteti a blokkok futását, mielőtt a következő blokkra lépne.
várakozás (1) másodpercig
Paraméterek |
Leírás |
|---|---|
idő |
A várakozási idő pozitív egész számként vagy tizedes törtként másodpercben. |
Példa
amikor elindul
[Fly for 1 second.]
felszállás (500) [mm v] magasságra ▶
várakozás [1] másodpercig
leszállás ▶
várj, amíg#
A várakozás amíg veremblokk szünetelteti a blokkok futását, amíg egy megadott feltétel nem teljesül, mielőtt a következő blokkra lépne.
várakozás amíg <>
Paraméterek |
Leírás |
|---|---|
állapot |
Az a feltétel, amelynek teljesülnie kell a következő blokkra lépés előtt. Ha az eredmény:
|
Példa
amikor elindul
[Hover at 200 mm.]
felszállás [500] [mm v] magasságra ▶
emelkedés [le v]
várakozás amíg <(distance [downward v] range in [mm v]) [math_less_than v] [200]>
lebegés
várakozás (3) másodpercig
leszállás ▶
ismétlés#
A ismétlés C blokk a benne lévő blokkokat meghatározott számú alkalommal futtatja le.
ismétlés [10]
vége
Paraméterek |
Leírás |
|---|---|
alkalommal |
Egy egész szám, amely meghatározza, hogy hányszor fusson le az ismétlés blokk. |
Példa
amikor elindul
[Move back and forth four times then land.]
felszállás [500] [mm v] magasságra ▶
ismétlés (4)
mozgás [előre v] irányba (500) [mm v] értékkel ▶
várakozás (1) másodpercig
mozgás [backward v] irányba (500) [mm v] értékkel ▶
várakozás (1) másodpercig
vége
leszállás ▶
örökre#
Az örökké C blokk újra és újra lefuttatja a benne lévő blokkokat megállás nélkül.
örökre
vége
Paraméterek |
Leírás |
|---|---|
Ennek a blokknak nincsenek paraméterei. |
Példa
amikor elindul
[Move with controller.]
felszállás [500] [mm v] magasságra ▶
örökre
mozgás vezérlővel
vége
ismételd, amíg#
Az ismétlésig C blokk a benne lévő blokkokat ismételten lefuttatja, amíg a megadott feltétel nem teljesül.
ismétlés amíg <>
vége
Paraméterek |
Leírás |
|---|---|
állapot |
Egy kifejezés vagy változó, amelyet minden ciklus előtt ellenőriz a rendszer. Ha Hamis, a blokkok ismétlődnek. Ha Igaz, a ciklus leáll. |
Példa
amikor elindul
[Move with controller until button 7 is pressed.]
felszállás [500] [mm v] magasságra ▶
ismétlés amíg <vezérlő [7 v] gomb megnyomva?>
mozgás vezérlővel
vége
leszállás ▶
míg#
A while C blokk ismételten lefuttatja a benne lévő blokkokat, amíg a megadott feltétel teljesül.
amíg <>
vége
Paraméterek |
Leírás |
|---|---|
állapot |
Egy kifejezés vagy változó, amelyet minden ciklus előtt ellenőriz a rendszer. Ha Igaz, a blokkok ismétlődnek. Ha Hamis, a ciklus leáll. |
Példa
amikor elindul
[Hover at 200 mm.]
felszállás [500] [mm v] magasságra ▶
amíg <(distance [downward v] range in [mm v]) [math_greater_than v] [200]>
emelkedés [le v]
vége
lebegés
várakozás (3) másodpercig
leszállás ▶
ha#
Az ha C blokk lefuttatja a benne lévő blokkokat, ha a feltétel Igaz.
ha <> akkor
vége
Paraméterek |
Leírás |
|---|---|
állapot |
Egy kifejezés vagy változó, amelyet a program az utasítás futtatásakor ellenőriz. Ha Igaz, akkor az hamis blokkon belüli blokkok futnak le. Ha Hamis, akkor a blokkok átugranak. |
Példa
amikor elindul
[Take a picture when button 5 is pressed.]
felszállás [500] [mm v] magasságra ▶
örökre
mozgás vezérlővel
ha <vezérlő [5 v] gomb megnyomva?> akkor
kép rögzítése [előre v] kamerával
vége
vége
ha / máskülönben#
Az if / else C blokk határozza meg, hogy mely blokkok futnak le az alapján, hogy a feltétel Igaz vagy Hamis.
ha <> akkor
különben
vége
Paraméterek |
Leírás |
|---|---|
állapot |
Egy kifejezés vagy változó, amelyet a művelet futtatásakor ellenőriz a rendszer. Ha Igaz, akkor az hamis blokkban lévő blokkok fognak lefutni. Ha Hamis, akkor az más blokkban lévő blokkok fognak lefutni. |
Példa
amikor elindul
[Climb when the left joystick is moved up.]
felszállás [500] [mm v] magasságra ▶
örökre
ha <(vezérlő [1 v] tengely pozíciója) [math_greater_than v] [0]> akkor
emelkedés [fel v]
különben
lebegés
vége
ha / különben ha / különben#
Az if / else if / else bővíthető C blokk a feltételek alapján választja ki, hogy mely blokkok fussanak:
Az ha függvény lefuttatja a kódblokkját, ha a feltétel Igaz értéket ad ki.
Az else if csak akkor ellenőrzi a további feltételeket, ha az összes korábbi feltétel Hamis-nak lett kiértékelve. Több else if utasítás is használható.
Az else függvény csak akkor futtatja le a kódblokkját, ha az előző feltételek egyike sem értékelődött ki Igaz-ként.
ha <> akkor
különben ha <> akkor
különben
vége
Paraméterek |
Leírás |
|---|---|
állapot |
Egy kifejezés vagy változó, amelyet a rendszer ellenőriz az utasítás futtatásakor. Az első feltétel, amely Igaz, lefuttatja a blokkok adott halmazát. Ha minden feltétel Hamis-ként értékelődik, akkor az más blokkon belüli blokkok fognak lefutni. |
Példa
amikor elindul
[Move the drone up or down based on the position of the joystick.]
felszállás [500] [mm v] magasságra ▶
örökre
ha <(vezérlő [1 v] tengely pozíciója) [math_greater_than v] [0]> akkor
mozgás [előre v]
különben ha <(vezérlő [1 v] tengely pozíciója) [math_less_than v] [0]> akkor
mozgás [hátra v]
különben
lebegés
vége
vége
szünet#
A break veremblokk azonnal kilép a ciklusból. Ez a blokk használható a repeat, repeat until, while és forever blokkokon belül. A Break akkor hasznos, ha egy ciklust korábban le kell állítani valamilyen, a projekt során történt esemény miatt, például egy gomb megnyomása vagy egy érzékelő által érzékelt objektum miatt.
megszakítás
Paraméterek |
Leírás |
|---|---|
Ennek a blokknak nincsenek paraméterei. |
Példa
amikor elindul
[Land when button 5 is pressed.]
felszállás [500] [mm v] magasságra ▶
örökre
mozgás vezérlővel
ha <vezérlő [5 v] gomb megnyomva?> akkor
megszakítás
vége
vége
leszállás ▶
projekt leállítása#
A projekt leállítása veremblokk leállítja a futó projektet.
projekt leállítása :: control cap
Paraméterek |
Leírás |
|---|---|
Ennek a blokknak nincsenek paraméterei. |
Példa
amikor elindul
[Stop motors after landing.]
felszállás [500] [mm v] magasságra ▶
várakozás [1] másodpercig
leszállás ▶
projekt leállítása