Pavarų dėžė#
Įvadas#
123 robotas turi dviejų ratų pavaros sistemą, kuri leidžia jam važiuoti ir suktis. Pavaros sistemos metodai kontroliuoja roboto judėjimą.
Pavarų dėžė gali matuoti atstumą dviem būdais: žingsniais ir mm (milimetrais). Vienas žingsnis yra vienas kvadratas 123 Field matmenyje.
Yra daug būdų, kaip koduoti pavaros sistemą. Žemiau pateikiamas visų pavaros sistemų metodų sąrašas:
Veiksmai — Judinti ir pasukti robotą.
drive— Robotas judina pirmyn arba atgal amžinai.drive_for— Robotas juda pirmyn arba atgal tam tikru atstumu.drive_until— Robotas juda pirmyn arba atgal, kol aptinka objektą, susidūrimą ar liniją.turn— Robotas visam laikui pasukamas į kairę arba į dešinę.turn_for— Robotas pasukamas į kairę arba į dešinę tam tikru laipsnių skaičiumi.turn_to_heading— Robotas pasukamas tam tikra kryptimi nuo -359 iki 359 laipsnių.stop— Sustabdo roboto judėjimą.
Mutatoriai – reguliuojami pavaros nustatymai.
set_timeout— Nustato, kiek laiko robotas bandys užbaigti judesį.set_heading— Pakeičia dabartinę roboto kryptį į naują.
Getteriai – Judėjimo būsenos patikrinimas.
is_stopped— Grąžina, ar robotas sustojo judėti, kaip loginę reikšmę.get_heading— Grąžina dabartinę roboto kryptį nuo 0 iki 359 laipsnių.
Veiksmai#
drive#
drive robotą judina pirmyn arba atgal amžinai. Robotas judės tol, kol jam bus duotas kitas veiksmas, pvz., pasisukti arba sustoti.
Usage:
robot.drive(direction)
Parametrai |
Aprašymas |
|---|---|
|
Roboto judėjimo kryptis: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
drive_for robotą judina pirmyn arba atgal tam tikru atstumu. Projektas lauks, kol robotas baigs judėti, prieš paleidžiant kitą kodo eilutę.
Usage:
robot.drive_for(direction, distance, unit)
Parametrai |
Aprašymas |
|---|---|
|
Roboto judėjimo kryptis: |
|
Atstumas, kurį nuvažiuoja robotas. Tai gali būti sveikasis arba dešimtainis skaičius. |
|
Atstumo vienetas: |
# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)
drive_until#
drive_until robotas juda pirmyn arba atgal, kol aptinka objektą, susidūrimą arba liniją.
Usage:
robot.drive_until(direction)
Parametrai |
Aprašymas |
|---|---|
|
Roboto judėjimo kryptis: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
turn suka robotą į kairę arba į dešinę amžinai. Robotas suksis tol, kol jam bus duotas kitas veiksmas, pavyzdžiui, važiuoti arba sustoti.
Usage:
robot.turn(direction)
Parametrai |
Aprašymas |
|---|---|
|
Roboto sukimosi kryptis: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
turn_for pasuka robotą į kairę arba į dešinę tam tikru laipsnių skaičiumi. Projektas lauks, kol robotas baigs pasisukti, prieš paleidžiant kitą kodo eilutę.
Usage:
robot.turn_for(direction, degrees)
Parametrai |
Aprašymas |
|---|---|
|
Roboto sukimosi kryptis: |
|
Pasukimo laipsnių skaičius. Tai gali būti sveikasis arba dešimtainis skaičius. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
turn_to_heading#
turn_to_heading pasuka robotą tam tikra kryptimi nuo -359 iki 359 laipsnių. Robotas pasisuks trumpiausia kryptimi, kad pasiektų tikslinę kryptį.
Pradinė kryptis yra 0 laipsnių.
Projektas lauks, kol robotas baigs suktis, prieš paleidžiant kitą kodo eilutę.
Usage:
robot.turn_to_heading(heading)
Parametrai |
Aprašymas |
|---|---|
|
Roboto kryptis, kuria jis turėtų būti pasuktas, nuo -359 iki 359 laipsnių. |
# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)
stop#
stop sustabdo roboto judėjimą.
Usage:
robot.stop()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()
Mutatoriai#
set_timeout#
set_timeout nustato, kiek sekundžių robotas bandys užbaigti judesį. Jei robotas negali užbaigti per tą laiką, jis nustos bandyti ir pereis prie kitos kodo eilutės. Tai neleidžia robotui užstrigti ties judesiu.
Usage:
robot.set_timeout(time, unit)
Parametrai |
Aprašymas |
|---|---|
|
Laiko tarpas, skirtas judėjimui. Tai gali būti sveikasis arba dešimtainis skaičius. |
|
Laiko vienetas: |
# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)
set_heading#
set_heading pakeičia dabartinę roboto kryptį į naują krypties reikšmę.
Pavyzdžiui, jei robotas pasisuko veidu į dešinę, nustačius kryptį į 0 laipsnių, ta nukreipta į dešinę pozicija tampa nauja 0 laipsnių.
Usage:
robot.set_heading(heading)
Parametrai |
Aprašymas |
|---|---|
|
Roboto krypties vertė laipsniais, kurią reikia nustatyti. |
# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)
Getteriai#
is_stopped#
is_stopped grąžina Boolean, kuri praneša, ar robotas nustojo judėti.
True— Robotas sustabdytas.False— Robotas vis dar juda.
Usage:
robot.is_stopped()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
if robot.is_stopped():
robot.led.glow(BLUE)
else:
robot.led.glow(GREEN)
wait(0.05, SECONDS)
get_heading#
get_heading grąžina roboto dabartinės krypties kryptį sveikuoju skaičiumi nuo 0 iki 359 laipsnių.
Roboto pradinė kryptis yra 0 laipsnių.
Usage:
robot.get_heading()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())