ഡ്രൈവ്‌ട്രെയിൻ#

ആമുഖം#

123 റോബോട്ടിന് ഇരുചക്ര ഡ്രൈവ്ട്രെയിൻ ഉണ്ട്, അത് അതിനെ ഓടിക്കാനും തിരിയാനും അനുവദിക്കുന്നു. റോബോട്ട് എങ്ങനെ നീങ്ങുന്നു എന്നത് ഡ്രൈവ്ട്രെയിൻ രീതികൾ നിയന്ത്രിക്കുന്നു.

ഡ്രൈവ്‌ട്രെയിനിന് ദൂരം രണ്ട് തരത്തിൽ അളക്കാൻ കഴിയും: പടികൾ, mm (മില്ലീമീറ്റർ). ഒരു പടി എന്നത് 123 ഫീൽഡിലെ ഒരു ചതുരമാണ്.

ഡ്രൈവ്ട്രെയിൻ കോഡ് ചെയ്യാൻ നിരവധി മാർഗങ്ങളുണ്ട്. എല്ലാ ഡ്രൈവ്ട്രെയിൻ രീതികളുടെയും ഒരു ലിസ്റ്റ് താഴെ കൊടുക്കുന്നു:

പ്രവർത്തനങ്ങൾ — റോബോട്ട് നീക്കി തിരിക്കുക.

  • drive — റോബോട്ടിനെ മുന്നോട്ട് നീക്കുകയോ എന്നെന്നേക്കുമായി പിന്നിലേക്ക് നീക്കുകയോ ചെയ്യുന്നു.

  • drive_for — ഒരു പ്രത്യേക ദൂരത്തേക്ക് റോബോട്ടിനെ മുന്നോട്ട് അല്ലെങ്കിൽ പിന്നിലേക്ക് നീക്കുന്നു.

  • drive_until — ഒരു വസ്തു, ക്രാഷ് അല്ലെങ്കിൽ ലൈൻ കണ്ടെത്തുന്നതുവരെ റോബോട്ടിനെ മുന്നോട്ട് അല്ലെങ്കിൽ പിന്നിലേക്ക് നീക്കുന്നു.

  • turn — റോബോട്ടിനെ എന്നെന്നേക്കുമായി ഇടത്തോട്ടോ വലത്തോട്ടോ തിരിക്കുന്നു.

  • turn_for — ഒരു നിശ്ചിത എണ്ണം ഡിഗ്രികൾക്കായി റോബോട്ടിനെ ഇടത്തോട്ടോ വലത്തോട്ടോ തിരിക്കുന്നു.

  • turn_to_heading — -359 മുതൽ 359 ഡിഗ്രി വരെയുള്ള ഒരു പ്രത്യേക തലക്കെട്ടിന് അഭിമുഖമായി റോബോട്ടിനെ തിരിക്കുന്നു.

  • stop — റോബോട്ടിന്റെ ചലനം നിർത്തുന്നു.

മ്യൂട്ടേറ്ററുകൾ — ഡ്രൈവ്‌ട്രെയിൻ ക്രമീകരണങ്ങൾ ക്രമീകരിക്കുക.

  • set_timeout — റോബോട്ട് ഒരു ചലനം പൂർത്തിയാക്കാൻ എത്ര സമയം ശ്രമിക്കുമെന്ന് സജ്ജമാക്കുന്നു.

  • set_heading — റോബോട്ടിന്റെ നിലവിലെ തലക്കെട്ട് ഒരു പുതിയ തലക്കെട്ടിലേക്ക് മാറ്റുന്നു.

ഗെറ്ററുകൾ — ചലന നില പരിശോധിക്കുക.

  • is_stopped — റോബോട്ട് ചലനം നിർത്തിയോ എന്ന് ഒരു ബൂളിയൻ മൂല്യമായി നൽകുന്നു.

  • get_heading — റോബോട്ടിന്റെ നിലവിലെ തലക്കെട്ട് 0 മുതൽ 359 ഡിഗ്രി വരെ തിരികെ നൽകുന്നു.

പ്രവർത്തനങ്ങൾ#

drive#

drive റോബോട്ടിനെ എന്നെന്നേക്കുമായി മുന്നോട്ട് അല്ലെങ്കിൽ പിന്നിലേക്ക് നീക്കുന്നു. തിരിയുകയോ നിർത്തുകയോ പോലുള്ള മറ്റൊരു പ്രവർത്തനം നൽകുന്നതുവരെ റോബോട്ട് നീങ്ങുന്നത് തുടരും.

Usage:
robot.drive(direction)

പാരാമീറ്ററുകൾ

വിവരണം

direction

റോബോട്ട് നീങ്ങുന്ന ദിശ: FORWARD അല്ലെങ്കിൽ REVERSE.

# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()

drive_for#

drive_for റോബോട്ടിനെ ഒരു പ്രത്യേക ദൂരത്തേക്ക് മുന്നോട്ടോ പിന്നോട്ടോ നീക്കുന്നു. അടുത്ത കോഡ് വരി പ്രവർത്തിക്കുന്നതിന് മുമ്പ് റോബോട്ട് നീങ്ങുന്നത് പൂർത്തിയാകുന്നതുവരെ പ്രോജക്റ്റ് കാത്തിരിക്കും.

Usage:
robot.drive_for(direction, distance, unit)

പാരാമീറ്ററുകൾ

വിവരണം

direction

റോബോട്ട് നീങ്ങുന്ന ദിശ: FORWARD അല്ലെങ്കിൽ REVERSE.

distance

റോബോട്ട് ഓടിക്കുന്ന ദൂരം. ഇത് ഒരു പൂർണ്ണസംഖ്യയോ ദശാംശമോ ആകാം.

unit

ദൂര യൂണിറ്റ്: MM (മില്ലിമീറ്റർ) അല്ലെങ്കിൽ STEPS (ഒരു 123 ഫീൽഡിലെ ഒരു ചതുരം).

# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)

drive_until#

drive_until ഒരു വസ്തു, ഒരു ക്രാഷ് അല്ലെങ്കിൽ ഒരു ലൈൻ കണ്ടെത്തുന്നതുവരെ റോബോട്ടിനെ മുന്നോട്ട് അല്ലെങ്കിൽ പിന്നിലേക്ക് നീക്കുന്നു.

Usage:
robot.drive_until(direction)

പാരാമീറ്ററുകൾ

വിവരണം

direction

റോബോട്ട് നീങ്ങുന്ന ദിശ: FORWARD അല്ലെങ്കിൽ REVERSE.

# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)

turn#

turn റോബോട്ടിനെ എന്നെന്നേക്കുമായി ഇടത്തോട്ടോ വലത്തോട്ടോ തിരിക്കുന്നു. വാഹനമോടിക്കുകയോ നിർത്തുകയോ പോലുള്ള മറ്റൊരു പ്രവർത്തനം നൽകുന്നതുവരെ റോബോട്ട് തിരിയുന്നത് തുടരും.

Usage:
robot.turn(direction)

പാരാമീറ്ററുകൾ

വിവരണം

direction

റോബോട്ട് തിരിയുന്ന ദിശ: LEFT അല്ലെങ്കിൽ RIGHT.

# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()

turn_for#

turn_for റോബോട്ടിനെ ഒരു നിശ്ചിത എണ്ണം ഡിഗ്രികൾ ഇടത്തോട്ടോ വലത്തോട്ടോ തിരിക്കുന്നു. കോഡിന്റെ അടുത്ത വരി പ്രവർത്തിക്കുന്നതിന് മുമ്പ് റോബോട്ട് തിരിയുന്നത് വരെ പ്രോജക്റ്റ് കാത്തിരിക്കും.

Usage:
robot.turn_for(direction, degrees)

പാരാമീറ്ററുകൾ

വിവരണം

direction

റോബോട്ട് തിരിയുന്ന ദിശ: LEFT അല്ലെങ്കിൽ RIGHT.

degrees

തിരിയേണ്ട ഡിഗ്രികളുടെ എണ്ണം. ഇത് ഒരു പൂർണ്ണസംഖ്യയോ ദശാംശമോ ആകാം.

# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)

turn_to_heading#

turn_to_heading -359 മുതൽ 359 ഡിഗ്രി വരെയുള്ള ഒരു പ്രത്യേക തലക്കെട്ടിന് അഭിമുഖമായി റോബോട്ടിനെ തിരിക്കുന്നു. ലക്ഷ്യ തലക്കെട്ടിൽ എത്താൻ റോബോട്ട് ഏറ്റവും കുറഞ്ഞ ദിശ തിരിക്കും.

ആരംഭ തലക്കെട്ട് 0 ഡിഗ്രി ആണ്.

റോബോട്ട് തിരിയുന്നത് വരെ പ്രോജക്റ്റ് കാത്തിരിക്കും, തുടർന്ന് അടുത്ത കോഡ് വരി പ്രവർത്തിക്കും.

Usage:
robot.turn_to_heading(heading)

പാരാമീറ്ററുകൾ

വിവരണം

heading

റോബോട്ട് അഭിമുഖീകരിക്കേണ്ട തലക്കെട്ട് -359 മുതൽ 359 ഡിഗ്രി വരെയാണ്.

# 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 റോബോട്ടിന്റെ ചലനം നിർത്തുന്നു.

Usage:
robot.stop()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()

മ്യൂട്ടേറ്ററുകൾ#

set_timeout#

set_timeout എന്നത് റോബോട്ട് ഒരു ചലനം പൂർത്തിയാക്കാൻ എത്ര സെക്കൻഡ് ശ്രമിക്കുമെന്ന് സജ്ജമാക്കുന്നു. ആ സമയത്ത് റോബോട്ട് പൂർത്തിയാക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, അത് ശ്രമം നിർത്തി അടുത്ത കോഡ് വരിയിലേക്ക് നീങ്ങും. ഇത് റോബോട്ടിനെ ഒരു ചലനത്തിൽ കുടുങ്ങിപ്പോകുന്നത് തടയുന്നു.

Usage:
robot.set_timeout(time, unit)

പാരാമീറ്ററുകൾ

വിവരണം

time

ഒരു ചലനത്തിന് അനുവദിക്കുന്ന സമയം. ഇത് ഒരു പൂർണ്ണസംഖ്യയോ ദശാംശമോ ആകാം.

unit

സമയ യൂണിറ്റ്: MSEC അല്ലെങ്കിൽ SECONDS.

# 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 റോബോട്ടിന്റെ നിലവിലെ തലക്കെട്ടിനെ ഒരു പുതിയ തലക്കെട്ട് മൂല്യത്തിലേക്ക് മാറ്റുന്നു.

ഉദാഹരണത്തിന്, റോബോട്ട് വലത്തേക്ക് അഭിമുഖമായി തിരിഞ്ഞിട്ടുണ്ടെങ്കിൽ, തലക്കെട്ട് 0 ഡിഗ്രിയിലേക്ക് സജ്ജീകരിക്കുന്നത് ആ വലതുവശത്തുള്ള സ്ഥാനത്തെ പുതിയ 0 ഡിഗ്രിയാക്കുന്നു.

Usage:
robot.set_heading(heading)

പാരാമീറ്ററുകൾ

വിവരണം

heading

റോബോട്ടിനായി സജ്ജമാക്കേണ്ട ഹെഡ്ഡിംഗ് മൂല്യം, ഡിഗ്രികളിൽ.

# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)

ഗെറ്ററുകൾ#

is_stopped#

is_stopped റോബോട്ട് ചലനം നിർത്തിയോ എന്ന് റിപ്പോർട്ട് ചെയ്യുന്ന ഒരു Boolean നൽകുന്നു.

  • True — റോബോട്ട് നിർത്തി.

  • False — റോബോട്ട് ഇപ്പോഴും ചലിച്ചുകൊണ്ടിരിക്കുകയാണ്.

Usage:
robot.is_stopped()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# 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 എന്നത് റോബോട്ട് നിലവിൽ അഭിമുഖീകരിക്കുന്ന ദിശയെ 0 മുതൽ 359 ഡിഗ്രി വരെയുള്ള പൂർണ്ണ സംഖ്യയായി തിരികെ നൽകുന്നു.

റോബോട്ടിന്റെ ആരംഭ തലക്കെട്ട് 0 ഡിഗ്രിയാണ്.

Usage:
robot.get_heading()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())