Tiomáint#
Réamhrá#
Tá rothaí agus mótair sa chóras tiomána a rialaíonn conas a thiomáineann agus a chasann an róbat. Is féidir córais tiomána a fháil i dtógáil cosúil leis an Code Base 2.0, Super Car, nó róbat saincheaptha.
Úsáideann traenacha tiomána an Braiteoir Támha san Inchinn chun tuairteanna a bhrath agus chun cabhrú leis an róbat bogadh agus casadh go beacht. Ag tús gach tionscadail, déanann an traein tiomána an Braiteoir Támha a chalabrú go huathoibríoch. Coinnigh an róbat socair ar feadh thart ar 2 shoicind le linn an chalabrúcháin, ionas gur féidir leis an róbat bogadh agus casadh i gceart.
Tá go leor bealaí ann chun an traein tiomána a chódú. Seo thíos liosta de na modhanna Traein Tiomána go léir:
Gníomhartha — Bog agus cas an róbat.
drive— Bogann sé an róbat ar aghaidh nó ar gcúl go deo.drive_for— Bogann sé an róbat ar aghaidh nó ar gcúl ar feadh achar sonrach.drive_until— Bogann sé an róbat ar aghaidh go dtí go mbraitheann an Braiteoir Súile réad nó go dtí go mbraitheann an róbat tuairt.turn— Casann sé an róbat ar chlé nó ar dheis go deo.turn_for— Casann sé an róbat ar chlé nó ar dheis ar feadh líon áirithe céimeanna.turn_to_heading— Casann sé an róbat chun aghaidh a thabhairt ar threo ar leith ó -359 go 359 céim. Casfaidh an róbat an treo is giorra chun an treo sprice a bhaint amach.turn_to_rotation— Casann sé an róbat go rothlú ar leith.stop— Stopann sé gluaiseacht an róbait.
Múiteoirí — Coigeartaigh socruithe an tiomána.
set_drive_velocity— Insíonn sé don róbat cé chomh tapa is atá sé tiomáint.set_turn_velocity— Insíonn sé don róbat cé chomh tapa agus atá sé casadh.set_stopping— Insíonn sé seo conas a stopfaidh an róbat ag gluaiseacht: trí choscánú, trí scaoileadh, nó trí choinneáil.set_timeout— Socraíonn sé seo cé chomh fada is a dhéanfaidh an róbat iarracht gluaiseacht a chríochnú.set_heading— Athraíonn sé ceannteideal reatha an róbait go ceannteideal nua.set_rotation— Athraíonn sé rothlú reatha an róbait go rothlú nua.
Getters — Seiceáil stádas na gluaiseachta.
get_heading— Tugann sé seo treo reatha an róbait ar ais ó 0 go 359 céim.get_rotation— Tugann sé seo rothlú reatha an róbait ar ais.get_velocity— Tugann sé seo ar ais cé chomh tapa agus atá an róbat ag tiomáint, mar chéatadán ó -100% go 100%.get_yaw— Tugann sé seo ar ais luas reatha an róbait.get_roll— Tugann sé seo rolla reatha an róbait ar ais.get_pitch— Tugann sé seo páirc reatha an róbait ar ais.get_crashed— Tugann sé seo ar ais an bhfuil tuairt braite ag an róbat, mar luach Booleanach.is_stopped— Tugann sé seo ar ais an bhfuil an róbat críochnaithe ag bogadh, mar luach Booleanach.
Gníomhartha#
drive#
Bogann tiomáint drive an róbat ar aghaidh nó ar gcúl go deo. Leanfaidh an róbat ag bogadh go dtí go dtabharfar gníomh eile dó, amhail casadh nó stopadh.
Usage:
drivetrain.drive(direction)
Paraiméadair |
Cur síos |
|---|---|
|
An treo a mbogann an róbat: |
# Build Used: Code Base 2.0
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
drive_for#
drive_for bogann an róbat ar aghaidh nó ar gcúl ar feadh achar sonrach.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Paraiméadair |
Cur síos |
|---|---|
|
An treo a mbogann an róbat: |
|
An fad a thiomáineann an róbat. Is féidir leis seo a bheith ina shlánuimhir nó ina dheachúil. |
|
Roghnach. An t-aonad achair: |
|
Roghnach. |
# Build Used: Code Base 2.0
def main():
# Drive back and forth
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.drive_for(REVERSE, 4, INCHES)
# Start threads — Do not delete
start_thread(main)
drive_until#
drive_until bogann an róbat ar aghaidh go dtí go mbraitheann an Braiteoir Súile réad nó go dtí go mbraitheann an róbat tuairt.
Usage:
drivetrain.drive_until(condition, wait)
Paraiméadair |
Cur síos |
|---|---|
|
An coinníoll a stopann an róbat: |
|
Roghnach. |
# Build Used: Code Base 2.0
def main():
# Turn right after a crash
drivetrain.drive_until(CRASH)
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
turn#
Casann turn an róbat ar chlé nó ar dheis go deo. Leanfaidh an róbat ag casadh go dtí go dtabharfar gníomh eile dó, amhail tiomáint go stad.
Usage:
drivetrain.turn(direction)
Paraiméadair |
Cur síos |
|---|---|
|
An treo a chasann an róbat: |
# Build Used: Code Base 2.0
def main():
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
turn_for#
Casann turn_for an róbat ar chlé nó ar dheis ar feadh líon áirithe céimeanna. Tá an casadh i gcoibhneas le suíomh reatha an róbait.
Usage:
drivetrain.turn_for(direction, angle, wait)
Paraiméadair |
Cur síos |
|---|---|
|
An treo a chasann an róbat: |
|
Líon na gcéimeanna a chasann an róbat. Is féidir gur slánuimhir nó deachúil é seo. |
|
Roghnach. |
# Build Used: Code Base 2.0
def main():
# Turn right then left
drivetrain.turn_for(RIGHT, 90)
drivetrain.turn_for(LEFT, 90)
# Start threads — Do not delete
start_thread(main)
turn_to_heading#
Is éard atá i dtreo an róbait ná an treo a bhfuil inchinn an róbait ag tabhairt aghaidh air, agus é á thomhas i gcéimeanna. turn_to_heading Casann sé an róbat chun aghaidh a thabhairt ar threo ar leith ó -359 go 359 céim. Casfaidh an róbat an treo is giorra chun an treo sprice a bhaint amach.
Is é 0 céim an treo tosaigh.

Usage:
drivetrain.turn_to_heading(angle, wait)
Paraiméadair |
Cur síos |
|---|---|
|
An treo ba chóir don róbat aghaidh a thabhairt air mar shlánuimhir, ó -359 go 359 céim. |
|
Roghnach. |
# Build Used: Code Base 2.0
def main():
# Turn to face the cardinal directions
drivetrain.turn_to_heading(90)
wait(1, SECONDS)
drivetrain.turn_to_heading(180)
wait(1, SECONDS)
drivetrain.turn_to_heading(270)
wait(1, SECONDS)
drivetrain.turn_to_heading(0)
# Start threads — Do not delete
start_thread(main)
turn_to_rotation#
turn_to_rotation Casann an róbat go rothlú ar leith.
Is é rothlú an méid atá casta ag an róbat, arna thomhas i gcéimeanna. Ag tús tionscadail, socraítear an luach rothlaithe go 0 céim. Is féidir rothlú a shocrú freisin ag baint úsáide as set_rotation.
Is luachanna absalóideacha iad luachanna rothlaithe. Ciallaíonn sé seo go mbraitheann treo an chasadh ar rothlú reatha an róbait. Méadaíonn casadh ar dheis an rothlú, agus laghdaíonn casadh ar chlé an rothlú.
Mar shampla, má thosaíonn an róbat ag 0 céim agus má chasann tú go rothlú 720 céim, casfaidh sé ar dheis faoi dhó. Má chasann tú ansin go rothlú 360 céim, casfaidh sé ar chlé uair amháin, mar go bhfuil 360 níos lú ná 720.

Usage:
drivetrain.turn_to_rotation(angle, wait)
Paraiméadair |
Cur síos |
|---|---|
|
An luach rothlaithe, i gcéimeanna, a chasfaidh an róbat chuige. Is féidir leis seo a bheith ina shlánuimhir. |
|
Roghnach. |
# Build Used: Code Base 2.0
def main():
# Make one full turn to the right
drivetrain.turn_to_rotation(360)
# Make another full turn to the right
drivetrain.turn_to_rotation(720)
# Make one full turn to the left, returning to 360 degrees
drivetrain.turn_to_rotation(360)
# Start threads — Do not delete
start_thread(main)
stop#
stop stopann gluaiseacht an róbait.
Usage:
drivetrain.stop()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Code Base 2.0
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
Sóiteoirí#
set_drive_velocity#
Insíonn set_drive_velocity don róbat cé chomh tapa agus atá sé le tiomáint. Má tá céatadán níos airde ann, tiomáintfidh an róbat níos tapúla agus má tá céatadán níos ísle ann, tiomáintfidh an róbat níos moille.
Tosaíonn gach tionscadal leis an róbat ag tiomáint ag luas 50% de réir réamhshocraithe.
Nóta: Má bhíonn luas níos airde ann, bíonn an róbat ag tiomáint níos tapúla, ach d’fhéadfadh sé a bheith níos lú cruinn. Má bhíonn luas níos ísle ann, bíonn an róbat ag tiomáint níos moille, ach bíonn sé níos cruinne.
Usage:
drivetrain.set_drive_velocity(velocity)
Paraiméadair |
Cur síos |
|---|---|
|
An luas le tiomáint ó 0% go 100%. |
# Build Used: Code Base 2.0
def main():
# Drive at different velocities
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive slow
drivetrain.set_drive_velocity(20)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive fast
drivetrain.set_drive_velocity(100)
drivetrain.drive_for(FORWARD, 100, MM)
# Start threads — Do not delete
start_thread(main)
set_turn_velocity#
Insíonn set_turn_velocity don róbat cé chomh tapa agus atá sé le casadh. Má bhíonn céatadán níos airde ann, casann an róbat níos tapúla agus má bhíonn céatadán níos ísle ann, casann an róbat níos moille.
Tosaíonn gach tionscadal leis an róbat ag casadh ag luas 50% de réir réamhshocraithe.
Nóta: Má bhíonn luas níos airde ann, casann an róbat níos tapúla, ach d’fhéadfadh sé a bheith níos lú cruinn. Má bhíonn luas níos ísle ann, casann an róbat níos moille, ach bíonn sé níos cruinne.
Usage:
drivetrain.set_turn_velocity(velocity)
Paraiméadair |
Cur síos |
|---|---|
|
An luas le casadh ó 0% go 100%. |
# Build Used: Code Base 2.0
def main():
# Turn at different velocities
drivetrain.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn fast
drivetrain.set_turn_velocity(100)
drivetrain.turn_for(RIGHT, 180)
# Start threads — Do not delete
start_thread(main)
set_stopping#
set_stopping socraíonn sé conas a stopfaidh an róbat ag bogadh: trí choscánú, trí chóstalú, nó trí choinneáil.
Usage:
drivetrain.set_stopping(brake)
Paraiméadair |
Cur síos |
|---|---|
|
Conas a stopfaidh an róbat:
|
Mura n-úsáidtear an modh seo, úsáidfidh an róbat BRAKE agus é ag stopadh.
# Build Used: Code Base 2.0
def main():
# Drive, then coast to a stop
drivetrain.set_drive_velocity(100)
drivetrain.set_stopping(COAST)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
set_timeout#
set_timeout socraíonn sé cé chomh fada a dhéanfaidh an róbat iarracht gluaiseacht a chríochnú. Mura féidir leis an róbat críochnú laistigh den am sin, stopfaidh sé den iarracht agus bogfaidh sé ar aghaidh go dtí an chéad líne eile de chód. Coinníonn sé seo an róbat ó bheith sáinnithe i ngluaiseacht.
Usage:
drivetrain.set_timeout(value, units)
Paraiméadair |
Cur síos |
|---|---|
|
An méid ama is féidir leis an róbat iarracht a dhéanamh gluaiseacht a chríochnú. Is féidir leis seo a bheith ina uimhir iomlán nó ina deachúil. |
|
Roghnach. An t-aonad ama: |
# Build Used: Code Base 2.0
def main():
# Drive as far as possible for 1 second before turning right
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
set_heading#
Is éard atá i gceannteideal ná an treo a bhfuil inchinn an róbait ag tabhairt aghaidh air, agus é á thomhas i gcéimeanna. Athraíonn set_heading ceannteideal reatha an róbait go luach ceannteidil nua.
Mar shampla, má tá an róbat casadh chun aghaidh a thabhairt ar dheis, má shocraítear an treo go 0 céim, déantar an suíomh sin atá ag tabhairt aghaidh ar dheis a athrú go dtí an 0 céim nua. Ansin is féidir leis an róbat casadh chuig suíomhanna eile bunaithe ar an treo nua sin.
Usage:
drivetrain.set_heading(value)
Paraiméadair |
Cur síos |
|---|---|
|
An luach treorach, i gcéimeanna, le socrú don róbat. Is féidir leis seo a bheith ina uimhir iomlán ó 0 go 359. |
# Build Used: Code Base 2.0
def main():
# Face the new 0 degree heading
drivetrain.set_heading(90)
drivetrain.turn_to_heading(0)
# Start threads — Do not delete
start_thread(main)
set_rotation#
Is é rothlú an méid atá casta ag an róbat, arna thomhas i gcéimeanna. Ag tús tionscadail, socraítear an luach rothlaithe go 0 céim. Athraíonn set_rotation rothlú reatha an róbait go luach nua.
Mar shampla, má tá dhá chasadh iomlána déanta ag an róbat ar dheis, beidh a luach rothlaithe 720 céim. Má shocraítear an rothlú go 0 céim, athshocrófar an rothlú sin ó 720 go 0 céim. Ansin is féidir leis an róbat casadh go rothluithe bunaithe ar an luach nua sin.
Usage:
drivetrain.set_rotation(value)
Paraiméadair |
Cur síos |
|---|---|
|
An luach rothlaithe, i gcéimeanna, le socrú don róbat. Is féidir leis seo a bheith ina shlánuimhir. |
# Build Used: Code Base 2.0
def main():
# Spin counterclockwise two times
drivetrain.set_rotation(720)
drivetrain.turn_to_rotation(0)
# Start threads — Do not delete
start_thread(main)
Faighteoirí#
get_heading#
Is é atá i gceist le ceannteideal ná an treo ina bhfuil inchinn an róbait ag tabhairt aghaidh, agus é á thomhas i gcéimeanna. Tugann get_heading an ceannteideal sin ar ais ó 0 go 359 céim.
Is é 0 céim treo tosaigh an róbait.

Usage:
drivetrain.get_heading()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Code Base 2.0
def main():
# Display the heading while turning
monitor_sensor("drivetrain.get_heading")
drivetrain.turn_for(RIGHT, 450)
# Start threads — Do not delete
start_thread(main)
get_rotation#
Is é rothlú an méid atá casta ag an róbat, arna thomhas i gcéimeanna. Ag tús tionscadail, socraítear an luach rothlaithe go 0 céim. Tugann get_rotation rothlú reatha an róbait ar ais.
Méadaíonn casadh ar dheis an rothlú, agus laghdaíonn casadh ar chlé an rothlú. Mar shampla, má dhéantar dhá chasadh iomlána ar dheis, beidh rothlú 720 céim ann.

Usage:
drivetrain.get_rotation()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Code Base 2.0
def main():
# Display the rotation while turning
monitor_sensor("drivetrain.get_rotation")
drivetrain.turn_for(RIGHT, 450)
# Start threads — Do not delete
start_thread(main)
get_velocity#
get_velocity tugann sé seo ar ais cé chomh tapa agus atá an róbat ag tiomáint, mar chéatadán ó -100% go 100%.
Ciallaíonn luach dearfach go bhfuil an róbat ag tiomáint ar aghaidh. Ciallaíonn luach diúltach go bhfuil an róbat ag tiomáint ar gcúl.
Usage:
drivetrain.get_velocity()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Code Base 2.0
def main():
# Display the velocity of the robot before and while moving
console.print("Start: ")
console.print(drivetrain.get_velocity())
console.new_line()
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
console.print("Moving: ")
console.print(drivetrain.get_velocity())
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
get_yaw#
Is é an luasghéarú an méid atá an róbat casadh ar chlé nó ar dheis óna shuíomh tosaigh, arna thomhas i gcéimeanna. get_yaw tugann sé luach luasghéarú reatha an róbait ar ais.
Méadaíonn casadh ar dheis an luach luasctha, agus laghdaíonn casadh ar chlé an luach luasctha.
Usage:
drivetrain.get_yaw()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the yaw while
# moving the robot by hand
monitor_sensor("drivetrain.get_yaw")
while True:
if drivetrain.get_yaw() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_yaw() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_roll#
Is é an rolla an méid a chlaonann an róbat ar chlé nó ar dheis, arna thomhas i gcéimeanna. get_roll tugann sé luach rolla reatha an róbait ar ais.
Agus an Inchinn ag féachaint ar aghaidh, méadaíonn claonadh ar chlé an luach rolla, agus laghdaíonn claonadh ar dheis an luach rolla.
Usage:
drivetrain.get_roll()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the roll while
# moving the robot by hand
monitor_sensor("drivetrain.get_roll")
while True:
if drivetrain.get_roll() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_roll() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_pitch#
Is é an claonadh atá i gcéimeanna ná cé mhéad a chlaonann an róbat ar aghaidh nó ar gcúl. get_pitch tugann sé luach claonadh reatha an róbait ar ais.
Agus an inchinn ag féachaint ar aghaidh, méadaíonn claonadh ar aghaidh luach na páirce, agus laghdaíonn claonadh siar luach na páirce.
Usage:
drivetrain.get_pitch()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the pitch while
# moving the robot by hand
monitor_sensor("drivetrain.get_pitch")
while True:
if drivetrain.get_pitch() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_pitch() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_crashed#
get_crashed tugann sé seo ar ais an bhfuil tuairteáil braite ag an róbat, mar luach Booleanach.
True— Braitheadh tuairteáil.False— Níor braitheadh tuairt.
Usage:
drivetrain.get_crashed()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Super Code Base 2.0
def main():
# Drive until a crash
drivetrain.drive(FORWARD)
while not drivetrain.get_crashed():
wait(50, MSEC)
drivetrain.stop()
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
is_stopped#
is_stopped ar ais an bhfuil an róbat críochnaithe ag bogadh, mar luach Booleanach. Is féidir é seo a úsáid chun am iompraíochtaí eile a rialú bunaithe ar ghluaiseacht an róbait.
True— Tá an róbat críochnaithe ag bogadh.False— Tá an róbat fós ag bogadh.
Oibríonn an modh seo i dteannta na modhanna tiomána seo a leanas a bhfuil an paraiméadar wait acu: drive_for, drive_until, turn_for, turn_to_heading, agus turn_to_rotation.
Usage:
drivetrain.is_stopped()
Paraiméadair |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an modh seo. |
# Build Used: Code Base 2.0
def main():
# Turn when the drivetrain is done moving forward
drivetrain.drive_for(FORWARD, 100, MM, wait=False)
wait(0.25, SECONDS)
while True:
if drivetrain.is_stopped():
drivetrain.turn_for(RIGHT, 180)
break
else:
console.print("Still moving...")
wait(0.1, SECONDS)
console.clear()
# Start threads — Do not delete
start_thread(main)