Αδρανειακό#
Εισαγωγή#
Ο εγκέφαλος διαθέτει ενσωματωμένο αδρανειακό αισθητήρα. Αυτός ο αισθητήρας μπορεί να μετρήσει πώς κινείται ή περιστρέφεται ο εγκέφαλος.
Ο Αισθητήρας Αδράνειας χρησιμοποιεί δύο μέρη για να το κάνει αυτό. Το γυροσκόπιο μετρά την στροφή, όπως προς ποια κατεύθυνση είναι στραμμένος ο εγκέφαλος και πόσο μακριά έχει στρίψει. Το επιταχυνσιόμετρο μετρά τις αλλαγές στην κίνηση, όπως την επιτάχυνση, την επιβράδυνση ή το απότομο σταμάτημα κατά τη διάρκεια μιας σύγκρουσης.
Οι αδρανειακές μέθοδοι μπορούν να χρησιμοποιηθούν για την παρακολούθηση στροφών, την επαναφορά τιμών κατεύθυνσης ή περιστροφής, τη μέτρηση της κύλισης, της κλίσης και της εκτροπής, καθώς και για την αναφορά επιτάχυνσης.
Υπάρχουν πολλοί τρόποι κωδικοποίησης του Αδρανειακού Αισθητήρα. Παρακάτω είναι μια λίστα με όλες τις αδρανειακές μεθόδους:
Προσανατολισμός — Επιστροφή και ρύθμιση του τρόπου με τον οποίο ο εγκέφαλος είναι στραμμένος, γυρισμένος ή γέρνοντας.
get_heading— Επιστρέφει την κατεύθυνση προς την οποία είναι στραμμένος ο εγκέφαλος, από 0 έως 359 μοίρες.get_rotation— Επιστρέφει την απόσταση που έχει στρίψει ο εγκέφαλος.get_yaw— Επιστρέφει πόσο έχει στρίψει ο εγκέφαλος αριστερά ή δεξιά από την αρχική του θέση.get_roll— Επιστρέφει πόσο γέρνει ο εγκέφαλος αριστερά ή δεξιά.get_pitch— Επιστρέφει πόσο γέρνει ο εγκέφαλος προς τα εμπρός ή προς τα πίσω.calibrate— Βαθμονομεί τον αδρανειακό αισθητήρα του εγκεφάλου.reset_heading— Επαναφέρει την τρέχουσα κατεύθυνση του εγκεφάλου στις 0 μοίρες.reset_rotation— Επαναφέρει την τρέχουσα περιστροφή του εγκεφάλου στις 0 μοίρες.set_heading— Ορίζει την τρέχουσα κατεύθυνση του εγκεφάλου σε μια νέα τιμή κατεύθυνσης.set_rotation— Ορίζει την τρέχουσα περιστροφή του εγκεφάλου σε μια νέα τιμή περιστροφής.
Κίνηση — Επιστροφή του τρόπου με τον οποίο κινείται ο εγκέφαλος.
get_acceleration— Επιστρέφει την ταχύτητα με την οποία ο εγκέφαλος επιταχύνει ή επιβραδύνει στον επιλεγμένο άξονα.
Προσανατολισμός#
get_heading#
Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένος ο εγκέφαλος, μετρούμενη σε μοίρες από 0 έως 359. Η συνάρτηση get_heading επιστρέφει την τρέχουσα κατεύθυνση του εγκεφάλου.
Η αρχική κατεύθυνση είναι 0 μοίρες. Αν ο εγκέφαλος περιστραφεί πέρα από 359 μοίρες, η κατεύθυνση επιστρέφει στις 0 μοίρες.
Usage:
inertial.get_heading()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
get_rotation#
Η περιστροφή είναι η περιστροφή του εγκεφάλου, μετρούμενη σε μοίρες. Σε αντίθεση με την κατεύθυνση, η περιστροφή μπορεί να αυξηθεί πέραν των 359 μοιρών ή να μειωθεί κάτω από τις 0 μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. Η συνάρτηση get_rotation επιστρέφει την τρέχουσα περιστροφή του εγκεφάλου.
Η δεξιά στροφή αυξάνει την περιστροφή και η αριστερά στροφή μειώνει την περιστροφή. Για παράδειγμα, κάνοντας δύο πλήρεις στροφές προς τα δεξιά θα επιστρέψει μια περιστροφή 720 μοιρών. Η περιστροφή μίας πλήρους στροφής προς τα αριστερά από 0 μοίρες θα επιστρέψει μια περιστροφή -360 μοιρών.
Usage:
inertial.get_rotation()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
get_yaw#
Η εκτροπή (yaw) είναι η στροφή του εγκεφάλου προς τα αριστερά ή προς τα δεξιά από την αρχική του θέση, μετρούμενη σε μοίρες. Η συνάρτηση get_yaw επιστρέφει την τρέχουσα τιμή εκτροπής (yaw) του εγκεφάλου.
Η στροφή προς τα δεξιά αυξάνει την τιμή εκτροπής και η στροφή προς τα αριστερά μειώνει την τιμή εκτροπής. Η εκτροπή είναι χρήσιμη για τον έλεγχο της στροφής προς τα αριστερά και προς τα δεξιά χωρίς τη χρήση της τιμής της αναδιπλωμένης κατεύθυνσης.
Usage:
inertial.get_yaw()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
get_roll#
Η ζαριά είναι η κλίση του εγκεφάλου προς τα αριστερά ή προς τα δεξιά, μετρούμενη σε μοίρες. get_roll επιστρέφει την τρέχουσα τιμή ζαριάς του εγκεφάλου.
Με τον Εγκέφαλο στραμμένο προς τα εμπρός, η κλίση προς τα αριστερά αυξάνει την αξία της ζαριάς και η κλίση προς τα δεξιά τη μειώνει.
Usage:
inertial.get_roll()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
get_pitch#
Η τονικότητα είναι η κλίση του εγκεφάλου προς τα εμπρός ή προς τα πίσω, μετρούμενη σε μοίρες. Η συνάρτηση get_pitch επιστρέφει την τρέχουσα τιμή τονικότητας του εγκεφάλου.
Με τον εγκέφαλο στραμμένο προς τα εμπρός, η κλίση προς τα εμπρός αυξάνει την τιμή του τόνου, ενώ η κλίση προς τα πίσω τη μειώνει.
Usage:
inertial.get_pitch()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
calibrate#
calibrate βαθμονομεί τον αδρανειακό αισθητήρα του εγκεφάλου.
Η βαθμονόμηση βοηθά τον Αισθητήρα Αδράνειας να μετρήσει σωστά τις στροφές. Κρατήστε τον Εγκέφαλο ακίνητο για περίπου 2 δευτερόλεπτα κατά τη βαθμονόμηση. Εάν ο Εγκέφαλος κινηθεί κατά τη βαθμονόμηση, οι τιμές κατεύθυνσης, περιστροφής, εκτροπής, κύλισης και κλίσης ενδέχεται να μην μετρηθούν σωστά.
Το έργο θα περιμένει μέχρι να ολοκληρωθεί η βαθμονόμηση πριν εκτελεστεί η επόμενη γραμμή κώδικα.
Usage:
inertial.calibrate()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
reset_heading#
Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένος ο εγκέφαλος, μετρούμενη σε μοίρες. reset_heading επαναφέρει την τρέχουσα κατεύθυνση του εγκεφάλου στις 0 μοίρες.
Αφού χρησιμοποιηθεί αυτή η μέθοδος, η τρέχουσα κατεύθυνση του εγκεφάλου γίνεται η νέα κατεύθυνση 0 μοιρών.
Usage:
inertial.reset_heading()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
reset_rotation#
Η περιστροφή είναι η περιστροφή του εγκεφάλου, μετρούμενη σε μοίρες. reset_rotation επαναφέρει την τρέχουσα περιστροφή του εγκεφάλου στις 0 μοίρες.
Αφού χρησιμοποιηθεί αυτή η μέθοδος, ο εγκέφαλος παρακολουθεί τις μελλοντικές στροφές από τη νέα τιμή περιστροφής 0 μοιρών.
Usage:
inertial.reset_rotation()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
set_heading#
Μια κατεύθυνση είναι η κατεύθυνση προς την οποία είναι στραμμένος ο εγκέφαλος, μετρούμενη σε μοίρες από 0 έως 359. set_heading αλλάζει την τρέχουσα κατεύθυνση του εγκεφάλου σε μια νέα τιμή κατεύθυνσης.
Για παράδειγμα, αν ο Εγκέφαλος έχει στραφεί προς τα δεξιά, η ρύθμιση της κατεύθυνσης στις 0 μοίρες καθιστά αυτή τη θέση προς τα δεξιά τις νέες 0 μοίρες. Στη συνέχεια, ο Εγκέφαλος μπορεί να παρακολουθήσει άλλες κατευθύνσεις με βάση αυτή τη νέα κατεύθυνση.
Usage:
inertial.set_heading(heading)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή κατεύθυνσης, σε μοίρες, που θα οριστεί για τον Εγκέφαλο. Μπορεί να είναι ένας ακέραιος αριθμός από 0 έως 359. |
set_rotation#
Η περιστροφή είναι η περιστροφή του εγκεφάλου, μετρούμενη σε μοίρες. Σε αντίθεση με την κατεύθυνση, η περιστροφή μπορεί να αυξηθεί πέραν των 359 μοιρών ή να μειωθεί κάτω από τις 0 μοίρες. Στην αρχή ενός έργου, η τιμή περιστροφής ορίζεται σε 0 μοίρες. set_rotation αλλάζει την τρέχουσα περιστροφή του εγκεφάλου σε μια νέα τιμή.
Για παράδειγμα, αν ο Εγκέφαλος έχει κάνει δύο πλήρεις στροφές προς τα δεξιά, η τιμή περιστροφής του θα είναι 720 μοίρες. Αν ορίσετε την περιστροφή σε 0 μοίρες, θα επαναφέρετε αυτήν την περιστροφή από 720 σε 0 μοίρες. Στη συνέχεια, ο Εγκέφαλος μπορεί να παρακολουθεί τις περιστροφές με βάση αυτήν τη νέα τιμή.
Usage:
inertial.set_rotation(rotation)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η τιμή περιστροφής, σε μοίρες, που θα οριστεί για τον Εγκέφαλο. Μπορεί να είναι ακέραιος αριθμός. |
Κίνηση#
get_acceleration#
Η επιτάχυνση είναι η ταχύτητα με την οποία ο εγκέφαλος επιταχύνει ή επιβραδύνει. Η συνάρτηση get_acceleration επιστρέφει την επιτάχυνση του εγκεφάλου στον επιλεγμένο άξονα, από -4,0 G έως 4,0 G.
Το G είναι μια μονάδα που χρησιμοποιείται για τη μέτρηση της επιτάχυνσης. Το 1 G αντιστοιχεί περίπου στην επιτάχυνση που αισθάνεστε από τη βαρύτητα ενώ κάθεστε ακίνητοι.
Η τιμή μπορεί να είναι θετική ή αρνητική ανάλογα με την κατεύθυνση της επιτάχυνσης στον επιλεγμένο άξονα. Οι επιλογές άξονα είναι X, Yκαι Z.
Usage:
inertial.get_acceleration(axis)
Παράμετροι |
Περιγραφή |
|---|---|
|
Ο άξονας για τη μέτρηση της επιτάχυνσης ως προς: |
# Build Used: Super Code Base 2.0
def main():
# Display the acceleration after moving.
drivetrain.set_drive_velocity(100)
console.print("Resting: ")
console.print(inertial.get_acceleration(X), precision=2)
console.new_line()
wait(1, SECONDS)
drivetrain.drive_for(FORWARD, 500, MM, wait=False)
wait(0.20, SECONDS)
console.print("Startup: ")
console.print(inertial.get_acceleration(X), precision=2)
# Start threads — Do not delete
start_thread(main)