Σύστημα μετάδοσης κίνησης#
Εισαγωγή#
Το ρομπότ 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)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση κίνησης του ρομπότ: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
Η συνάρτηση drive_for μετακινεί το ρομπότ προς τα εμπρός ή προς τα πίσω για μια συγκεκριμένη απόσταση. Το έργο θα περιμένει μέχρι να ολοκληρωθεί η κίνηση του ρομπότ πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
robot.drive_for(direction, distance, unit)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση κίνησης του ρομπότ: |
|
Η απόσταση που διανύει το ρομπότ. Αυτή μπορεί να είναι ακέραια ή δεκαδική. |
|
Η μονάδα απόστασης: |
# 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)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση κίνησης του ρομπότ: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
turn γυρίζει το ρομπότ αριστερά ή δεξιά για πάντα. Το ρομπότ θα συνεχίσει να γυρίζει μέχρι να του δοθεί μια άλλη ενέργεια, όπως οδήγηση ή στάση.
Usage:
robot.turn(direction)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση που γυρίζει το ρομπότ: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
Η συνάρτηση turn_for στρέφει το ρομπότ αριστερά ή δεξιά για έναν συγκεκριμένο αριθμό μοιρών. Το έργο θα περιμένει μέχρι το ρομπότ να ολοκληρώσει την περιστροφή του πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
robot.turn_for(direction, 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)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση προς την οποία πρέπει να είναι στραμμένη το ρομπότ, από -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)
Παράμετροι |
Περιγραφή |
|---|---|
|
Ο χρόνος που απαιτείται για μια κίνηση. Μπορεί να είναι ακέραιος ή δεκαδικός αριθμός. |
|
Η μονάδα χρόνου: |
# 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)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή κατεύθυνσης, σε μοίρες, που θα οριστεί για το ρομπότ. |
# 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())