Αδρανειακό#
Εισαγωγή#
Το IQ (2ης γενιάς) Brain περιλαμβάνει έναν ενσωματωμένο αδρανειακό αισθητήρα. Αυτός ο αισθητήρας μετρά τον τρόπο με τον οποίο κινείται και περιστρέφεται ο εγκέφαλος.
Ο Αισθητήρας Αδράνειας χρησιμοποιεί δύο μέρη για να το κάνει αυτό. Το γυροσκόπιο μετρά την στροφή, όπως την κατεύθυνση, την περιστροφή, τον ρυθμό γυροσκοπίου και τον προσανατολισμό. Το επιταχυνσιόμετρο μετρά τις αλλαγές στην κίνηση, όπως την επιτάχυνση ή την επιβράδυνση κατά μήκος των αξόνων x, y και z.
Αυτή η σελίδα χρησιμοποιεί brain_inertial ως παράδειγμα ονόματος Αδρανειακού Αισθητήρα. Αντικαταστήστε το με το δικό σας διαμορφωμένο όνομα, όπως απαιτείται.
Παρακάτω είναι μια λίστα με όλες τις διαθέσιμες μεθόδους:
Προσανατολισμός — Ανάγνωση και έλεγχος κατεύθυνσης, περιστροφής και βαθμονόμησης αισθητήρα.
heading— Επιστρέφει την κατεύθυνση προς την οποία είναι στραμμένος ο αισθητήρας, από 0 έως 359,99 μοίρες.rotation— Επιστρέφει την περιστροφή του αισθητήρα.calibrate— Βαθμονομεί τον Αδρανειακό Αισθητήρα.set_heading— Ορίζει την τρέχουσα κατεύθυνση του αδρανειακού αισθητήρα σε μια νέα τιμή κατεύθυνσης.set_rotation— Ορίζει την τρέχουσα περιστροφή του Αδρανειακού Αισθητήρα σε μια νέα τιμή περιστροφής.is_calibrating— Επιστρέφει εάν ο Αισθητήρας Αδράνειας βρίσκεται σε διαδικασία βαθμονόμησης.reset_heading— Επαναφέρει την τρέχουσα κατεύθυνση του αδρανειακού αισθητήρα στις 0 μοίρες.reset_rotation— Επαναφέρει την τρέχουσα περιστροφή του Αδρανειακού Αισθητήρα στις 0 μοίρες.changed— Καταγράφει μια συνάρτηση που θα εκτελεστεί όταν αλλάξει η κατεύθυνση του αδρανειακού αισθητήρα.
Κίνηση — Μετρήστε την επιτάχυνση, την ταχύτητα περιστροφής και την κλίση.
acceleration— Επιστρέφει την ταχύτητα με την οποία ο αισθητήρας επιταχύνει ή επιβραδύνει στον επιλεγμένο άξονα.gyro_rate— Επιστρέφει την ταχύτητα περιστροφής του αισθητήρα στον επιλεγμένο άξονα.orientation— Επιστρέφει τη γωνία κύλισης, κλίσης ή εκτροπής του αδρανειακού αισθητήρα.
Κατασκευαστές — Μη αυτόματη αρχικοποίηση και διαμόρφωση ενός αδρανειακού αισθητήρα.
Inertial— Δημιουργεί έναν αδρανειακό αισθητήρα.
Προσανατολισμός#
heading#
Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένος ο αισθητήρας, μετρούμενη σε μοίρες από 0 έως 359,99. Η κατεύθυνση heading επιστρέφει την τρέχουσα κατεύθυνση του αισθητήρα.
Η αρχική κατεύθυνση είναι 0 μοίρες. Εάν ο αισθητήρας περιστραφεί πέραν των 359,99 μοιρών, η κατεύθυνση επιστρέφει στις 0 μοίρες.
Usage:
brain_inertial.heading(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικά. Η μονάδα κατεύθυνσης: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(brain_inertial.heading())
rotation#
Η περιστροφή είναι η περιστροφή του αισθητήρα, μετρούμενη σε μοίρες. Σε αντίθεση με την κατεύθυνση, η περιστροφή μπορεί να αυξηθεί πέραν των 359,99 μοιρών ή να μειωθεί κάτω από τις 0 μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. Η περιστροφή rotation επιστρέφει την τρέχουσα περιστροφή του αδρανειακού αισθητήρα.
Η δεξιά στροφή αυξάνει την περιστροφή και η αριστερά στροφή μειώνει την περιστροφή. Για παράδειγμα, κάνοντας δύο πλήρεις στροφές προς τα δεξιά θα επιστρέψει μια περιστροφή 720 μοιρών. Η περιστροφή μίας πλήρους στροφής προς τα αριστερά από 0 μοίρες θα επιστρέψει μια περιστροφή -360 μοιρών.
Usage:
brain_inertial.rotation(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Προαιρετικά. Η μονάδα περιστροφής: |
# Display the rotation value after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(brain_inertial.rotation())
calibrate#
calibrate βαθμονομεί τον Αδρανειακό Αισθητήρα. Όλες οι επόμενες γραμμές θα περιμένουν την ολοκλήρωση της βαθμονόμησης πριν από την εκτέλεση. Η βαθμονόμηση βοηθά τον αισθητήρα να μετρά σωστά τις στροφές μετρώντας και αντισταθμίζοντας τον θόρυβο και την απόκλιση του αισθητήρα σε μια καθορισμένη χρονική περίοδο. Κατά τη διάρκεια αυτής της περιόδου, ο Εγκέφαλος πρέπει να παραμένει εντελώς ακίνητος σε μια σταθερή επιφάνεια. Η κίνηση κατά τη βαθμονόμηση μπορεί να παράγει ανακριβή αποτελέσματα.
Το VEX Brain επιχειρεί αυτόματα να βαθμονομήσει τον ενσωματωμένο Αδρανειακό Αισθητήρα στην αρχή κάθε έργου. Ωστόσο, εάν το ρομπότ μεταφέρεται ή μετακινείται κατά την έναρξη του έργου, ο αισθητήρας ενδέχεται να μην βαθμονομηθεί σωστά ή να δώσει λανθασμένη βαθμονόμηση.
Usage:
brain_inertial.calibrate()
Παράμετρος |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Start calibration
brain_inertial.calibrate()
# Print after calibration
while brain_inertial.is_calibrating():
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Inertial Sensor")
brain.screen.next_row()
brain.screen.print("Calibrating")
wait(50, MSEC)
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")
set_heading#
Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένος ο αισθητήρας, μετρούμενη σε μοίρες από 0 έως 359,99. set_heading() αλλάζει την τρέχουσα κατεύθυνση του αδρανειακού αισθητήρα σε μια νέα τιμή κατεύθυνσης.
Για παράδειγμα, εάν ο αισθητήρας έχει στραφεί προς τα δεξιά, η ρύθμιση της κατεύθυνσης σε 0 μοίρες καθιστά αυτήν τη θέση προς τα δεξιά τις νέες 0 μοίρες. Στη συνέχεια, ο αισθητήρας μπορεί να παρακολουθήσει άλλες κατευθύνσεις με βάση αυτήν τη νέα κατεύθυνση.
Usage:
brain_inertial.set_heading(value, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή κατεύθυνσης, σε μοίρες, που θα οριστεί για τον αισθητήρα. Αυτή μπορεί να είναι μια τιμή από 0 έως 359,99. |
|
Προαιρετικά. Η μονάδα κατεύθυνσης: |
# Turn the robot around
brain_inertial.set_heading(180)
drivetrain.turn_to_heading(0)
set_rotation#
Η περιστροφή είναι η περιστροφή του αισθητήρα, μετρούμενη σε μοίρες. Σε αντίθεση με την κατεύθυνση, η περιστροφή μπορεί να αυξηθεί πέραν των 359,99 μοιρών ή να μειωθεί κάτω από τις 0 μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. set_rotation() αλλάζει την τρέχουσα περιστροφή του Αδρανειακού Αισθητήρα σε μια νέα τιμή.
Για παράδειγμα, εάν ο αισθητήρας έχει κάνει δύο πλήρεις στροφές προς τα δεξιά, η τιμή περιστροφής του θα είναι 720 μοίρες. Η ρύθμιση της περιστροφής σε 0 μοίρες θα επαναφέρει αυτήν την περιστροφή από 720 σε 0 μοίρες. Στη συνέχεια, ο αισθητήρας μπορεί να παρακολουθεί τις περιστροφές με βάση αυτήν τη νέα τιμή.
Usage:
brain_inertial.set_rotation(value, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή περιστροφής, σε μοίρες, που θα οριστεί για τον αισθητήρα. Αυτή μπορεί να είναι ακέραιος ή δεκαδικός αριθμός (float). |
|
Προαιρετικά. Η μονάδα περιστροφής: |
# Turn the robot around
brain_inertial.set_rotation(-180)
drivetrain.turn_to_rotation(0)
is_calibrating#
Η συνάρτηση is_calibrating επιστρέφει εάν ο Αισθητήρας Αδράνειας βρίσκεται αυτήν τη στιγμή σε διαδικασία βαθμονόμησης.
True— Ο αδρανειακός αισθητήρας βαθμονομείται.False— Ο αδρανειακός αισθητήρας δεν βαθμονομείται.
Usage:
brain_inertial.is_calibrating()
Παράμετρος |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Start calibration
brain_inertial.calibrate()
# Print while waiting for calibration
while brain_inertial.is_calibrating():
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Inertial Sensor")
brain.screen.next_row()
brain.screen.print("Calibrating")
wait(50, MSEC)
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")
reset_heading#
reset_heading επαναφέρει την τρέχουσα κατεύθυνση του αδρανειακού αισθητήρα στις 0 μοίρες.
Αφού χρησιμοποιηθεί αυτή η μέθοδος, η τρέχουσα κατεύθυνση του αισθητήρα γίνεται η νέα κατεύθυνση 0 μοιρών.
Usage:
brain_inertial.reset_heading()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5, SECONDS)
brain_inertial.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)
reset_rotation#
reset_rotation επαναφέρει την τρέχουσα περιστροφή του αδρανειακού αισθητήρα στις 0 μοίρες.
Αφού χρησιμοποιηθεί αυτή η μέθοδος, ο αισθητήρας παρακολουθεί τις μελλοντικές στροφές από τη νέα τιμή περιστροφής 0 μοιρών.
Usage:
brain_inertial.reset_rotation()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5, SECONDS)
brain_inertial.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)
changed#
changed καταγράφει μια συνάρτηση που θα κληθεί όταν αλλάξει η κατεύθυνση του αδρανειακού αισθητήρα.
Usage:
brain_inertial.changed(callback, arg)
Παράμετροι |
Περιγραφή |
|---|---|
|
Μια συνάρτηση που εκτελείται όταν αλλάζει η επικεφαλίδα του Αδρανειακού Αισθητήρα. |
|
Προαιρετικό. Μια πλειάδα ορισμάτων που θα διαβιβαστεί στη συνάρτηση επανάκλησης. |
def heading_changed():
brain.screen.set_cursor(1, 1)
brain.screen.clear_screen()
brain.screen.print("my heading ")
brain.screen.next_row()
brain.screen.print("has changed!")
wait(0.1, SECONDS)
# Call the function when the inertial heading is changed
wait(1, SECONDS)
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
brain_inertial.changed(heading_changed)
wait(15, MSEC)
Κίνηση#
acceleration#
Η επιτάχυνση είναι η ταχύτητα με την οποία ο αισθητήρας επιταχύνει ή επιβραδύνει. Η επιτάχυνση acceleration επιστρέφει την επιτάχυνση του αδρανειακού αισθητήρα στον επιλεγμένο άξονα, από -4,0 G έως 4,0 G, ως πλωτήρα.
Το G είναι μια μονάδα που χρησιμοποιείται για τη μέτρηση της επιτάχυνσης. Το 1 G αντιστοιχεί περίπου στην επιτάχυνση που αισθάνεστε από τη βαρύτητα ενώ κάθεστε ακίνητοι.
Η τιμή μπορεί να είναι θετική ή αρνητική ανάλογα με την κατεύθυνση της επιτάχυνσης στον επιλεγμένο άξονα. Οι επιλογές άξονα είναι XAXIS, YAXISκαι ZAXIS.
Usage:
brain_inertial.acceleration(axis)
Παράμετροι |
Περιγραφή |
|---|---|
άξονας |
Ο άξονας για τη μέτρηση της επιτάχυνσης σε:
|
# Display acceleration after moving
vexcode_brain_precision = 2
drivetrain.set_drive_velocity(100, PERCENT)
brain.screen.print("Resting: ")
brain.screen.next_row()
brain.screen.print(brain_inertial.acceleration(XAXIS))
brain.screen.next_row()
wait(1, SECONDS)
drivetrain.drive_for(FORWARD, 500, MM, wait=False)
wait(0.01, SECONDS)
brain.screen.print("Startup: ")
brain.screen.next_row()
brain.screen.print(brain_inertial.acceleration(XAXIS))
gyro_rate#
Ο γυροσκοπικός ρυθμός είναι η ταχύτητα περιστροφής του αδρανειακού αισθητήρα. gyro_rate επιστρέφει την τρέχουσα ταχύτητα περιστροφής του αδρανειακού αισθητήρα στον επιλεγμένο άξονα.
Η τιμή μπορεί να είναι θετική ή αρνητική ανάλογα με την κατεύθυνση περιστροφής του αισθητήρα σε αυτόν τον άξονα.
Usage:
brain_inertial.gyro_rate(axis, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Ο άξονας για την επιστροφή του ρυθμού γυροσκοπίου από:
|
|
Προαιρετικά. Η μονάδα ρυθμού γυροσκοπίου:
|
# Display the z-axis gyro rate
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(brain_inertial.gyro_rate(ZAXIS, RPM))
drivetrain.stop()
orientation#
Ο προσανατολισμός είναι η τρέχουσα γωνία του αδρανειακού αισθητήρα σε έναν επιλεγμένο άξονα περιστροφής. orientation επιστρέφει την κύλιση, την κλίση ή την εκτροπή του αδρανειακού αισθητήρα.
Οι όροι κύλιση, κλίση και εκτροπή περιγράφουν διαφορετικούς τρόπους με τους οποίους ο αισθητήρας μπορεί να γέρνει ή να περιστρέφεται.
Usage:
brain_inertial.orientation(axis, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η γωνία προσανατολισμού που θα επιστραφεί:
|
|
Προαιρετικά. Η μονάδα προσανατολισμού: |
# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
brain.screen.clear_screen()
brain.screen.print(brain_inertial.orientation(OrientationType.ROLL))
brain.screen.next_row()
brain.screen.print(brain_inertial.orientation(OrientationType.PITCH))
brain.screen.next_row()
brain.screen.print(brain_inertial.orientation(OrientationType.YAW))
brain.screen.next_row()
brain.screen.set_cursor(1, 1)
wait(0.1, SECONDS)
Κατασκευαστές#
Οι κατασκευαστές χρησιμοποιούνται για τη χειροκίνητη δημιουργία αντικειμένων Inertial , όπως κατά τη διαμόρφωση ενός αδρανειακού αισθητήρα εκτός του VEXcode.
Inertial#
Inertial δημιουργεί έναν αδρανειακό αισθητήρα.
Usage:
Inertial(smartport)
Παράμετρος |
Περιγραφή |
|---|---|
|
Προαιρετικό. Εάν χρησιμοποιείτε τον ενσωματωμένο αδρανειακό αισθητήρα IQ (2ης γενιάς) Brain’s, δεν απαιτείται έξυπνη θύρα. Εάν συνδέετε εξωτερικό αδρανειακό αισθητήρα, καθορίστε την έξυπνη θύρα στην οποία είναι συνδεδεμένος ο αδρανειακός αισθητήρας, γραμμένη ως |
# Create a new object "brain_inertial" with the
# Inertial class
brain_inertial = Inertial()
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)
brain_inertial.set_heading(180)
drivetrain.turn_to_heading(0)


