Αδρανειακό#

Εισαγωγή#

Ένας αδρανειακός αισθητήρας μετρά τον τρόπο που κινείται και περιστρέφεται το ρομπότ.

Ο Αισθητήρας Αδράνειας χρησιμοποιεί δύο μέρη για να το κάνει αυτό. Το γυροσκόπιο μετρά την στροφή, όπως την κατεύθυνση, την περιστροφή, τον ρυθμό γυροσκοπίου και τον προσανατολισμό. Το επιταχυνσιόμετρο μετρά τις αλλαγές στην κίνηση, όπως την επιτάχυνση ή την επιβράδυνση κατά μήκος των αξόνων x, y και z.

Παρακάτω είναι μια λίστα με τις διαθέσιμες μεθόδους:

Προσανατολισμός — Ανάγνωση και έλεγχος κατεύθυνσης, περιστροφής και βαθμονόμησης αισθητήρα.

  • heading — Επιστρέφει την κατεύθυνση προς την οποία είναι στραμμένος ο αισθητήρας, από 0 έως 359,99 μοίρες.

  • rotation — Επιστρέφει την περιστροφή του αισθητήρα.

  • gyro_rate — Επιστρέφει την ταχύτητα περιστροφής του αισθητήρα στον επιλεγμένο άξονα.

  • orientation — Επιστρέφει τη γωνία κύλισης, κλίσης ή εκτροπής του αδρανειακού αισθητήρα.

  • calibrate — Βαθμονομεί τον Αδρανειακό Αισθητήρα.

  • set_heading — Ορίζει την τρέχουσα κατεύθυνση του Αδρανειακού Αισθητήρα σε μια νέα τιμή κατεύθυνσης.

  • set_rotation — Ορίζει την τρέχουσα περιστροφή του Αδρανειακού Αισθητήρα σε μια νέα τιμή περιστροφής.

  • reset_heading — Επαναφέρει την τρέχουσα κατεύθυνση του αδρανειακού αισθητήρα στις 0 μοίρες.

  • reset_rotation — Επαναφέρει την τρέχουσα περιστροφή του Αδρανειακού Αισθητήρα στις 0 μοίρες.

  • is_calibrating — Επιστρέφει εάν ο Αισθητήρας Αδράνειας βρίσκεται σε διαδικασία βαθμονόμησης.

  • changed — Καταγράφει μια συνάρτηση που θα εκτελεστεί όταν αλλάξει η τιμή του Αδρανειακού Αισθητήρα.

  • installed — Ελέγχει εάν είναι εγκατεστημένος ο Αισθητήρας Αδράνειας.

Κίνηση — Μετρήστε την επιτάχυνση, τις συγκρούσεις και τη συμπεριφορά κατεύθυνσης στροφής.

  • acceleration — Επιστρέφει την ταχύτητα με την οποία ο αισθητήρας επιταχύνει ή επιβραδύνει στον επιλεγμένο άξονα.

  • collision — Καταγράφει μια συνάρτηση που θα εκτελεστεί όταν ο Αισθητήρας Αδράνειας ανιχνεύσει σύγκρουση.

  • set_turn_type — Ορίζει ποια κατεύθυνση στροφής επιστρέφει θετικές τιμές κατεύθυνσης.

  • get_turn_type — Επιστρέφει ποια κατεύθυνση στροφής επιστρέφει θετικές τιμές κατεύθυνσης.

Κατασκευαστής

  • Inertial – Δημιουργεί έναν αδρανειακό αισθητήρα.

Προσανατολισμός#

heading#

Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένος ο αισθητήρας, μετρούμενη σε μοίρες από 0 έως 359,99. Η κατεύθυνση heading επιστρέφει την τρέχουσα κατεύθυνση του αισθητήρα ως υποδιαστολή.

Η αρχική κατεύθυνση είναι 0 μοίρες. Εάν ο αισθητήρας περιστραφεί πέραν των 359,99 μοιρών, η κατεύθυνση επιστρέφει στις 0 μοίρες.

Usage:
inertial_1.heading(units)

Παράμετροι

Περιγραφή

units

Προαιρετικά. Η μονάδα κατεύθυνσης: DEGREES (προεπιλογή) ή TURNS

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())

rotation#

Η περιστροφή είναι η περιστροφή του αισθητήρα, μετρούμενη σε μοίρες. Σε αντίθεση με την κατεύθυνση, η περιστροφή μπορεί να αυξηθεί πέραν των 359,99 μοιρών ή να μειωθεί κάτω από τις 0 μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. Η περιστροφή rotation η οποία επιστρέφει την τρέχουσα περιστροφή του αδρανειακού αισθητήρα ως κινητήριο δύναμη.

Η δεξιά στροφή αυξάνει την περιστροφή και η αριστερά στροφή μειώνει την περιστροφή. Για παράδειγμα, κάνοντας δύο πλήρεις στροφές προς τα δεξιά θα επιστρέψει μια περιστροφή 720 μοιρών. Η περιστροφή μίας πλήρους στροφής προς τα αριστερά από 0 μοίρες θα επιστρέψει μια περιστροφή -360 μοιρών.

Usage:
inertial_1.rotation(units)

Παράμετροι

Περιγραφή

units

Προαιρετικά. Η μονάδα περιστροφής: DEGREES (προεπιλογή) ή TURNS

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())

gyro_rate#

Ο γυροσκοπικός ρυθμός είναι η ταχύτητα περιστροφής του αδρανειακού αισθητήρα. gyro_rate επιστρέφει την τρέχουσα ταχύτητα περιστροφής του αδρανειακού αισθητήρα στον επιλεγμένο άξονα ως πλωτήρα.

Η τιμή μπορεί να είναι θετική ή αρνητική ανάλογα με την κατεύθυνση περιστροφής του αισθητήρα σε αυτόν τον άξονα.

Usage:
inertial_1.gyro_rate(axis, units)

Παράμετροι

Περιγραφή

axis

Ο άξονας από τον οποίο θα επιστραφεί ο ρυθμός γυροσκοπίου:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

units

Προαιρετικά. Η μονάδα ρυθμού γυροσκοπίου:

  • VelocityUnits.DPS (προεπιλογή)
  • VelocityUnits.RPM
  • VelocityUnits.PERCENT

# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(inertial_1.gyro_rate(AxisType.ZAXIS, VelocityUnits.DPS))
drivetrain.stop()

orientation#

Ο προσανατολισμός είναι η τρέχουσα γωνία του αδρανειακού αισθητήρα σε έναν επιλεγμένο άξονα περιστροφής. Ο προσανατολισμός orientation επιστρέφει την κύλιση, την κλίση ή την εκτροπή του αδρανειακού αισθητήρα, από -180,00 έως 180,00 μοίρες, ως πλεύση.

Οι όροι κύλιση, κλίση και εκτροπή περιγράφουν διαφορετικούς τρόπους με τους οποίους ο αισθητήρας μπορεί να γέρνει ή να περιστρέφεται.

Usage:
inertial_1.orientation(type, units)

Παράμετροι

Περιγραφή

type

Η γωνία προσανατολισμού που θα επιστραφεί:

  • AxisType.PITCH
  • AxisType.ROLL
  • AxisType.YAW

units

Προαιρετικά. Η μονάδα προσανατολισμού:

  • DEGREES (προεπιλογή)
  • RotationUnits.TURNS

# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
    brain.screen.clear_screen()
    brain.screen.print(inertial_1.orientation(AxisType.ROLL, DEGREES))
    brain.screen.next_row()
    brain.screen.print(inertial_1.orientation(AxisType.PITCH, DEGREES))
    brain.screen.next_row()
    brain.screen.print(inertial_1.orientation(AxisType.YAW, DEGREES))
    brain.screen.next_row()
    brain.screen.set_cursor(1, 1)
    wait(0.1, SECONDS)

calibrate#

calibrate βαθμονομεί τον Αδρανειακό Αισθητήρα.

Η βαθμονόμηση βοηθά τον αισθητήρα να μετρά σωστά τις στροφές. Διατηρήστε τον αισθητήρα ακίνητο κατά τη βαθμονόμηση. Εάν ο αισθητήρας κινηθεί κατά τη βαθμονόμηση, οι τιμές κατεύθυνσης, περιστροφής, γυροσκοπικού ρυθμού και προσανατολισμού ενδέχεται να μην μετρώνται σωστά.

Το έργο θα περιμένει μέχρι να ολοκληρωθεί η βαθμονόμηση πριν εκτελεστεί η επόμενη γραμμή κώδικα.

Usage:
inertial_1.calibrate()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# Start calibration.
inertial_1.calibrate()
# Print that the Inertial Sensor is calibrating while
# waiting for it to finish calibrating.
while inertial_1.is_calibrating():
    brain.screen.clear()
    brain.screen.print("Inertial Sensor Calibrating")
    wait(50, MSEC)

set_heading#

Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένος ο αισθητήρας, μετρούμενη σε μοίρες από 0 έως 359,99. set_heading αλλάζει την τρέχουσα κατεύθυνση του αδρανειακού αισθητήρα σε μια νέα τιμή κατεύθυνσης.

Για παράδειγμα, εάν ο αισθητήρας έχει στραφεί προς τα δεξιά, η ρύθμιση της κατεύθυνσης σε 0 μοίρες καθιστά αυτήν τη θέση προς τα δεξιά τις νέες 0 μοίρες. Στη συνέχεια, ο αισθητήρας μπορεί να παρακολουθήσει άλλες κατευθύνσεις με βάση αυτήν τη νέα κατεύθυνση.

Usage:
inertial_1.set_heading(value, units)

Παράμετροι

Περιγραφή

value

Η τιμή κατεύθυνσης, σε μοίρες, που θα οριστεί για τον αισθητήρα. Αυτή μπορεί να είναι μια τιμή από 0 έως 359,99.

units

Προαιρετικά. Η μονάδα κατεύθυνσης: DEGREES (προεπιλογή) ή TURNS

# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)

set_rotation#

Η περιστροφή είναι η περιστροφή του αισθητήρα, μετρούμενη σε μοίρες. Σε αντίθεση με την κατεύθυνση, η περιστροφή μπορεί να αυξηθεί πέραν των 359,99 μοιρών ή να μειωθεί κάτω από τις 0 μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. set_rotation αλλάζει την τρέχουσα περιστροφή του Αδρανειακού Αισθητήρα σε μια νέα τιμή.

Για παράδειγμα, εάν ο αισθητήρας έχει κάνει δύο πλήρεις στροφές προς τα δεξιά, η τιμή περιστροφής του θα είναι 720 μοίρες. Η ρύθμιση της περιστροφής σε 0 μοίρες θα επαναφέρει αυτήν την περιστροφή από 720 σε 0 μοίρες. Στη συνέχεια, ο αισθητήρας μπορεί να παρακολουθεί τις περιστροφές με βάση αυτήν τη νέα τιμή.

Usage:
inertial_1.set_rotation(value, units)

Παράμετροι

Περιγραφή

value

Η τιμή περιστροφής, σε μοίρες, που θα οριστεί για τον αισθητήρα. Αυτή μπορεί να είναι ακέραιος ή δεκαδικός αριθμός (float).

units

Προαιρετικά. Η μονάδα περιστροφής: DEGREES (προεπιλογή) ή TURNS

# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)

reset_heading#

reset_heading επαναφέρει την τρέχουσα κατεύθυνση του αδρανειακού αισθητήρα στις 0 μοίρες.

Αφού χρησιμοποιηθεί αυτή η μέθοδος, η τρέχουσα κατεύθυνση του αισθητήρα γίνεται η νέα κατεύθυνση 0 μοιρών.

Usage:
inertial_1.reset_heading()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

reset_rotation#

reset_rotation επαναφέρει την τρέχουσα περιστροφή του αδρανειακού αισθητήρα στις 0 μοίρες.

Αφού χρησιμοποιηθεί αυτή η μέθοδος, ο αισθητήρας παρακολουθεί τις μελλοντικές στροφές από τη νέα τιμή περιστροφής 0 μοιρών.

Usage:
inertial_1.reset_rotation()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

is_calibrating#

Η συνάρτηση is_calibrating επιστρέφει εάν ο Αισθητήρας Αδράνειας βρίσκεται αυτήν τη στιγμή σε διαδικασία βαθμονόμησης.

  • True — Ο αδρανειακός αισθητήρας βαθμονομείται.

  • False — Ο αδρανειακός αισθητήρας δεν βαθμονομείται.

Usage:
inertial_1.is_calibrating()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

changed#

changed καταχωρεί μια συνάρτηση που θα καλείται κάθε φορά που αλλάζει η τιμή του Αδρανειακού Αισθητήρα.

Usage:
inertial_1.changed(callback, arg)

Παράμετροι

Περιγραφή

callback

Μια προηγουμένως ορισμένη συνάρτηση που εκτελείται όταν αλλάζει η τιμή του Αδρανειακού Αισθητήρα.

arg

Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση Συναρτήσεων με Παραμέτρους για περισσότερες πληροφορίες.

def my_function():
  brain.screen.print("Value changed!!")

# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)

installed#

installed ελέγχει εάν είναι εγκατεστημένος ο Αισθητήρας Αδράνειας.

  • True — Ο αδρανειακός αισθητήρας είναι εγκατεστημένος.

  • False — Ο αδρανειακός αισθητήρας δεν είναι εγκατεστημένος.

Usage:
inertial_1.installed()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

Κίνηση#

acceleration#

Η επιτάχυνση είναι η ταχύτητα με την οποία ο αισθητήρας επιταχύνει ή επιβραδύνει. Η επιτάχυνση acceleration επιστρέφει την επιτάχυνση του αδρανειακού αισθητήρα στον επιλεγμένο άξονα, από -4,0 G έως 4,0 G, ως πλωτήρα.

Το G είναι μια μονάδα που χρησιμοποιείται για τη μέτρηση της επιτάχυνσης. Το 1 G αντιστοιχεί περίπου στην επιτάχυνση που αισθάνεστε από τη βαρύτητα ενώ κάθεστε ακίνητοι.

Η τιμή μπορεί να είναι θετική ή αρνητική ανάλογα με την κατεύθυνση επιτάχυνσης στον επιλεγμένο άξονα. Οι επιλογές άξονα είναι AxisType.XAXIS, AxisType.YAXISκαι AxisType.ZAXIS.

Usage:
inertial_1.acceleration(type)

Παράμετροι

Περιγραφή

type

Ο άξονας για τη μέτρηση της επιτάχυνσης:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)

collision#

collision καταγράφει μια συνάρτηση που θα καλείται κάθε φορά που ο Αισθητήρας Αδράνειας ανιχνεύει μια ξαφνική πρόσκρουση ή σύγκρουση.

Usage:
inertial_1.collision(callback, arg)

Παράμετροι

Περιγραφή

callback

Μια προηγουμένως ορισμένη συνάρτηση που εκτελείται όταν ανιχνεύεται σύγκρουση.

arg

Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση Συναρτήσεων με Παραμέτρους για περισσότερες πληροφορίες.

def my_function():
  brain.screen.print("Collision!")

# Call my_function whenever a collision is detected
inertial_1.collision(my_function)

set_turn_type#

set_turn_type ορίζει ποια κατεύθυνση στροφής επιστρέφει θετικές τιμές κατεύθυνσης.

Usage:
inertial_1.set_turn_type(turntype)

Παράμετροι

Περιγραφή

turntype

Ο τύπος στροφής που πρέπει να οριστεί:

  • LEFT
  • RIGHT

get_turn_type#

Η συνάρτηση get_turn_type επιστρέφει ποια κατεύθυνση στροφής επιστρέφει θετικές τιμές κατεύθυνσης.

  • LEFT — Οι αριστερές στροφές επιστρέφουν θετικές τιμές κατεύθυνσης.

  • RIGHT — Οι δεξιές στροφές επιστρέφουν θετικές τιμές κατεύθυνσης.

Usage:
inertial_1.get_turn_type()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

Κατασκευαστές#

Inertial#

Inertial δημιουργεί έναν αδρανειακό αισθητήρα.

Usage:
Inertial(smartport)

Παράμετροι

Περιγραφή

smartport

Η Έξυπνη Θύρα στην οποία είναι συνδεδεμένος ο Αδρανειακός Αισθητήρας, γράφεται ως Ports.PORTx, όπου x είναι ο αριθμός θύρας.

# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)