Kontrole#

Ievads#

Vadība Python valodā ļauj norādīt robotam, kad gaidīt, kad atkārtot darbības, kā pieņemt lēmumus un kad beigt projektu.

Zemāk ir pieejamo vadības elementu saraksts, tostarp metodes un galvenie Python atslēgvārdi:

  • wait – Aptur projektu uz noteiktu laiku.

  • for – Atkārto kodu katram elementam secībā.

  • if – Izpilda kodu, ja nosacījums ir patiess.

  • if/else – Izpilda atšķirīgu kodu atkarībā no nosacījuma.

  • if/elif/else – Pārbauda vairākus nosacījumus pēc kārtas.

  • while – Atkārto kodu, kamēr nosacījums ir patiess.

  • break – Nekavējoties iziet no cikla.

  • program_stop – Beidz darbojošos programmu.

  • pass – Vietturis, ko izmanto, ja darbība nav nepieciešama.

pagaidiet#

wait ietur noteiktu pauzi pirms pāriešanas uz nākamo koda rindu.

Usage:
wait(time, units)

Parametri

Apraksts

time

Gaidīšanas laiks, kas norādīts kā pozitīvs vesels skaitlis vai decimāldaļa.

units

Vienība, kas attēlo gaidīšanas laiku: MSEC (pēc noklusējuma) – milisekundes vai SECONDS

# Move the arm to the desired position and then blink the signal tower
arm.move_to(40, 140, 210, False)
wait(1, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)

priekš#

for atkārto darbību kopu noteiktu reižu skaitu. for var izmantot, lai cikliski pārskatītu vienumus sarakstos, kortežos, vārdnīcās, kopās, virknēs vai noteiktu ciklu skaitu ar range.

Lietojums:

for value in expression_list:
    pass

Sastāvdaļas

Apraksts

value

Pagaidu mainīgais, kas saglabā pašreizējo elementu iterācijā.

expression_list

Elementu kopums, kas tiek cikliski apstrādāts (piemēram, saraksts, virkne, diapazons).

# Move the arm 4 times by 100 millimeters on the y axis
for index in range(4):
    arm.move_inc(0, 100, 0)

ja#

if tiek palaists atkāpts koda bloks, ja nosacījums ir True.

Lietojums:

if condition:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts, izpildot priekšrakstu. Ja tas ir True, tiek izpildīts kods blokā if ; ja tas ir False, bloks tiek izlaists.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    print("\033[2J")
    print(brain.timer_time(SECONDS))
    wait(50, MSEC)
    if arm.is_done():
        brain.timer_reset()

ja/citādi#

if un else nosaka, kurš atkāptais koda bloks tiek palaists, pamatojoties uz to, vai nosacījums ir True vai False.

Lietojums:

if condition:
    pass
else:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts, izpildot priekšrakstu. Ja tas ir True, tiek izpildīts kods blokā if ; ja tas ir False, tā vietā tiek izpildīts kods blokā else.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        brain.timer_reset()
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

ja/elif/cits#

if/elif/else struktūra atlasa, kurš atkāptais koda bloks tiks palaists, pamatojoties uz nosacījumiem:

  • if , palaiž savu bloku, ja nosacījums ir True.

  • elif pārbauda papildu nosacījumus tikai tad, ja visi iepriekšējie nosacījumi ir FalseVar izmantot vairākus elif apgalvojumus.

  • else palaiž savu bloku tikai tad, ja neviens no iepriekšējiem nosacījumiem nav True.

Lietojums:

if condition:
    pass
elif condition:
    pass
else:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts, kad izpildās priekšraksts. Pirmais nosacījums, kas ir True nosaka, kurš bloks tiks izpildīts; ja neviens nav True, tiks izpildīts bloks, kas ir else.

# Change the signal tower light if arm can reach to the desired position
while True:
    if arm.can_arm_reach_to(200, 200, 200):
        signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
    elif arm.can_arm_reach_to(300, 300, 300):
        signal_tower.set_color(SignalTower.GREEN, SignalTower.BLINK)
    else:
        signal_tower.set_color(SignalTower.ALL, SignalTower.OFF)
    wait(50, MSEC)

kamēr#

while atkārtoti palaiž kodu, kamēr nosacījums ir TrueTo var izmantot arī kā “uz visiem laikiem”, izmantojot True kā nosacījumu, vai kā “gaidīt līdz”, pievienojot nosacījumam not , kā parādīts tālāk sniegtajos piemēros.

Lietojums:

while condition:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts pirms katras iterācijas. Ja tas ir True, cikls turpinās; ja tas ir False, cikls apstājas.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

# Blink blue light until the move is completed
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
arm.move_to(-100, 200, 100, False)
while not arm.is_done():
    wait(0.2, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.ON)

pārtraukums#

break nekavējoties iziet no cikla. break var izmantot, lai izietu no cikliem, kas citādi veidotu mūžīgu ciklu.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

programmas_apturēšana#

program_stop beidz darbojošos projektu.

Usage:
brain.program_stop()

Parametri

Apraksts

Šai metodei nav parametru.

# Stop the project until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)
brain.program_stop()

caurlaide#

pass daļa ir vietturis nākotnes kodam, un to var izmantot, lai izvairītos no kļūdām tukšos ciklos, nosacījumos un funkcijās.

if condition:
    pass

def function():
    pass