Ohjaus#

Johdanto#

Pythonin ohjaus antaa sinun kertoa robotille, milloin odottaa, milloin toistaa toimintoja, miten tehdä päätöksiä ja milloin lopettaa projekti.

Alla on luettelo käytettävissä olevista ohjausobjekteista, mukaan lukien metodit ja Pythonin ydinavainsanat:

  • wait – Keskeyttää projektin tietyksi ajaksi.

  • for – Toistaa koodin jokaiselle sekvenssin alkiolle.

  • if – Suorittaa koodin, jos ehto on tosi.

  • if/else – Suorittaa eri koodia ehdon mukaan.

  • if/elif/else – Tarkistaa useita ehtoja järjestyksessä.

  • while – Toistaa koodia niin kauan kuin ehto on tosi.

  • break – Poistuu silmukasta välittömästi.

  • quit – Lopettaa käynnissä olevan projektin.

  • pass – Paikkamerkkiä käytetään, kun toimenpiteitä ei tarvita.

wait#

wait pitää tietyn ajan tauon ennen siirtymistä seuraavalle koodiriville.

Usage:
wait(time, units)

Parametrit

Kuvaus

time

Odotusaika positiivisena kokonaislukuna tai desimaalilukuna.

units

Odotusaikaa edustava yksikkö: MSEC (oletus) – millisekuntia tai SECONDS

# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

for#

for toistaa joukon toimintoja tietyn määrän kertoja. for voi käyttää silmukoidakseen kohtia listoissa, tupleissa, sanakirjoissa, joukoissa, merkkijonoissa tai tietyn määrän silmukoita käyttäen range.

Käyttö:

for value in expression_list:
    pass

Komponentit

Kuvaus

value

Väliaikainen muuttuja, joka tallentaa iteraation nykyisen elementin.

expression_list

Läpikäytettävät elementit (esim. lista, merkkijono, alue).

# Move back and forth four times then land.
drone.take_off(climb_to=500)
for i in range(4):
    drone.move_for(direction=0, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
    drone.move_for(direction=180, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
drone.land()

# Print each item in a list.
colors = ["Red", "Green", "Blue"]
for color in colors:
    controller.screen.print(color)
    controller.screen.next_row()

if#

if suorittaa sisennettyn ​​koodilohkon, jos ehto on True.

Käyttö:

if condition:
    pass

Komponentit

Kuvaus

condition

Lauseke tai muuttuja, jota tarkistetaan lausekkeen suorituksen yhteydessä. Jos se on True, lohkon if sisällä oleva koodi suoritetaan; jos se on False, lohko ohitetaan.

# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )

    if controller.button5.pressing():
        drone.camera.capture_image(FORWARD_CAMERA)

    wait(5, MSEC)

if/else#

if ja else määrittää, mikä sisennetty koodilohko suoritetaan sen perusteella, onko ehto True vai False.

Käyttö:

if condition:
    pass
else:
    pass

Komponentit

Kuvaus

condition

Lauseke tai muuttuja, joka tarkistetaan lausekkeen suorituksen yhteydessä. Jos se on True, lohkon if sisällä oleva koodi suoritetaan; jos se on False, lohkon else sisällä oleva koodi suoritetaan sen sijaan.

# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
    if controller.axis1.position() > 0:
        drone.climb(direction=UP, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

if/elif/else#

if/elif/else -rakenne valitsee suoritettavan sisennettyjen koodilohkojen ehtojen perusteella:

  • if suorittaa lohkonsa, jos ehto on True.

  • elif tarkistaa lisäehdot vain, jos kaikki edelliset ehdot ovat FalseUseita elif -lausekkeita voidaan käyttää.

  • else suorittaa lohkonsa vain, jos mikään edellisistä ehdoista ei ole True.

Käyttö:

if condition:
    pass
elif condition:
    pass
else:
    pass

Komponentit

Kuvaus

condition

Lauseke tai muuttuja, jota tarkistetaan lausekkeen suorituksen yhteydessä. Ensimmäinen ehto, joka on True määrittää, mikä lohko suoritetaan; jos mikään ehto ei ole True, niin muu ehto else suorittaa lohkon.

# Move the drone up or down based on the position of the joystick.
drone.take_off(climb_to=500)
while True:
    position = controller.axis1.position()
    if position > 0:
        drone.climb(direction=UP, velocity=50)
    elif position < 0:
        drone.climb(direction=DOWN, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

while#

while suorittaa koodia toistuvasti niin kauan kuin ehto on TrueSitä voidaan käyttää myös “ikuisesti” käyttämällä ehtona True tai “odota kunnes” lisäämällä ehtoon not sijaan, kuten alla olevissa esimerkeissä on esitetty.

Käyttö:

while condition:
    pass

Komponentit

Kuvaus

condition

Lauseke tai muuttuja, joka tarkistetaan ennen jokaista iteraatiota. Jos se on True, silmukka jatkuu; jos se on False, silmukka pysähtyy.

# Hover at 200 mm.
drone.take_off(climb_to=500)
while drone.range.get_distance(DOWNWARD_RANGE, MM) > 200:
    drone.climb(direction=DOWN, velocity=10)
drone.hover()
wait(3, SECONDS)
drone.land()

break#

break poistuu silmukasta välittömästi. break voidaan käyttää poistumaan silmukasta, joka muuten toistuisi loputtomiin.

# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    if controller.button5.pressing():
        break
    wait(5, MSEC)
drone.land()

quit#

quit lopettaa käynnissä olevan projektin.

Usage:
quit()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    if controller.button5.pressing():
        quit()
    wait(5, MSEC)
drone.land()

pass#

pass on paikkamerkki tulevalle koodille ja sitä voidaan käyttää virheiden välttämiseen tyhjissä silmukoissa, ehdollisissa lauseissa ja funktioissa.

if condition:
    pass

def function():
    pass