Αδρανειακό#

Εισαγωγή#

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

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

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

Υπάρχουν πολλοί τρόποι κωδικοποίησης του Αδρανειακού Αισθητήρα. Παρακάτω είναι μια λίστα με όλες τις αδρανειακές μεθόδους:

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

  • 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)

Παράμετροι

Περιγραφή

heading

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

set_rotation#

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

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

Usage:
inertial.set_rotation(rotation)

Παράμετροι

Περιγραφή

rotation

Η τιμή περιστροφής, σε μοίρες, που θα οριστεί για τον Εγκέφαλο. Μπορεί να είναι ακέραιος αριθμός.

Κίνηση#

get_acceleration#

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

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

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

Usage:
inertial.get_acceleration(axis)

Παράμετροι

Περιγραφή

axis

Ο άξονας για τη μέτρηση της επιτάχυνσης ως προς: X, Yή Z.

# 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)