Αισθητήρας Πυξίδας HiTechnic για LEGO Mindstorms NXT (Compass Sensor)

 Αισθητήρας Πυξίδας HiTechnic για LEGO Mindstorms NXT (Compass Sensor)

Εισαγωγή

Compass Sensor_W1Ο Αισθητήρας Πυξίδας NXT περιέχει μια ψηφιακή μαγνητική πυξίδα που μέτρα το μαγνητικό πεδίο της Γης και υπολογίζει μία γωνία θέσης. Ο Αισθητήρας Πυξίδας NXT συνδέεται σε μια θύρα εισόδου του NXT με τη χρήση τυποποιημένου 6-πλού καλωδίου και χρησιμοποιεί το ψηφιακό πρωτόκολλο επικοινωνιών I2C. Η τρέχουσα θέση υπολογίζονται με ακρίβεια 1° και ανανεώνονται 100 φορές το δευτερόλεπτο.

Ο Αισθητήρας Πυξίδας NXT είναι κατασκευασμένος σε ένα πρότυπη θήκη αισθητήρων Mindstorms για να ταιριάζει με τα υπόλοιπα στοιχεία Mindstorms.

Για να δοκιμάσετε το νέο σας αισθητήρα, συνδέστε τον στη θύρα 2 του NXT και επιλέξτε View > Ultrasonic cm > Port 2. Καθώς κουνάτε γύρω – γύρω τον αισθητήρα, θα παρατηρήσετε ότι οι μετρήσεις θα αλλάζουν από 1 – 179. (Το 0 θα εμφανίστει ως ?????? στην κατάσταση Προβολή (View)).

Προγραμματισμός σε Mindstorms NXT-G

Η πυξίδα μπορεί να προγραμματιστεί με τη χρήση την εντολή λογισμικού LEGO Mindstorms NXT Compass*. Αν η εντολή δεν είναι διαθέσιμη μπορείτε επίσης να χρησιμοποιήσετε την εντολή Υπερήχων.
* Σημείωση:Η εντολή Αισθητήρα Πυξίδας NXT είναι διαθέσιμη για δωρεάν λήψη στον ιστοχώρο της HiTchnic http://www.hitechnic.com/contents/en-us/d17.html.

Εντολή Αισθητήρα Υπερήχων

USblock1 (1)

Εάν χρησιμοποιείτε την εντολή Αισθητήρα Υπερήχων για να προγραμματίσετε τον Αισθητήρα Πυξίδας NXT, ρυθμίστε το σε λειτουργία εκατοστών όπως φαίνεται στην εικόνα. Η εντολή θα επιστρέψει την τιμή του άξονα Χ που θα είναι στην περιοχή 0 – 254.
Η εντολή Αισθητήρα Υπερήχων μπορεί μόνο να επιστρέψει τιμές από 0 έως 250 προκειμένου να επιστρέψει το πλήρες φάσμα των θέσεων, από 0 έως 360, η τιμή θέσης που επιστρέφεται όταν χρησιμοποιείται η εντολή Αισθητήρα Υπερήχων θα είναι η τρέχουσα θέση διαιρεμένη δια 2. Για παράδειγμα, αν η τρέχουσα θεση είναι 220°, η τιμή που επιστρέφεται θα είναι 110. Ο Βορράς θα επιστρέψει την τιμή 0, η Ανατολή, μια τιμή των 45, ο Νότος, μια τιμη των 90 και Δύση, την τιμή 135. Για να λάβετε την πραγματική μαγνητική θέση, απλά πολαπλασιάστε την τιμές επι 2.

Εντολή Αισθητήρα Πυξίδας

Η Πυξίδα έχει σχεδιαστεί για να υποστηρίξει τον Αισθητήρα Πυξίδας HiTechnic και υποστηρίζει όλες τις λειτουργίες πυξίδας.

Compass2

  1. Αυτό το βύσμα συνδέει τον αριθμό της θύρας του ΝΧΤ σας στην οποία είναι συνδεδεμένος ο αισθητήρας πυξίδας.
  2. Αυτό το βύσμα συνδέει τον αριθμό της δράσης που πρέπει να εκτελεστεί.
  3. Αυτό το βύσμα συνδέει τον Στόχο θέσης, βλέπε παράγραφο σχετικά με Σχετική κατηγορία πιο κάτω από αυτή τη σελίδα.
  4. Αυτό το βύσμα συνδέει την τιμή κατώτατου ορίου για τη λειτουργία σύγκρισης Εισόδου/Εξόδου.
  5. Αυτό το βύσμα συνδέει την τιμή ανώτατου ορίου για τη λειτουργία σύγκρισης Εισόδου/Εξόδου.
  6. Αυτό το βύσμα εξάγει την τρέχουσα τιμή της Απόλυτη Θέσης.
  7. Αυτό το βύσμα εξάγει την τρέχουσα τιμή της Σχετική Θέσης, βλέπε παράγραφο σχετικά με Σχετική Θέση πιο κάτω.
  8. Αυτό το βύσμα εξάγει τη λογική τιμή Εισόδου/Εξόδου.

Διαμόρφωσης της  πυξίδας

CompassControl1

Θύρα (Port): σας επιτρέπει να επιλέξετε τη θύρα του NXT που είναι συνδεδεμένη η πυξίδα.

Ενέργεια (Action): Η Ενέργια έχει τρεις επιλογές. Αυτές είναι:

Απόλυτη Ανάγνωση (Absolute Reading): Σας επιτρέπει να διαβάσετε το Απόλυτη Θέση, μια τιμή από 0 έως 359, που αντιστοιχεί στη τρέχουσα μαγνητική θέση σε βαθμούς. (Βύσμα 6 στο κουτί δεδομένων).

Σχετική Ανάγνωση (Relative Reading): Σας επιτρέπει να θέσει ένα Στόχο και να διαβάσετε την Σχετική Θέση (Βύσμα 3 και 7 στο κουτί δεδομένων). Ανατρέξτε στην ενότητα Χρήση Σχετικής Ανάγνωσης παρακάτω για περισσότερες πληροφορίες.

Βαθμονόμηση (Calibrate): Ρύθμιση του αισθητήρα πυξίδας που σας επιτρέπει να περάσετε από αλληλουχία βαθμονόμησης ώστε να ελαχιστοποιείται η επίδραση των μετάλλων και άλλων πηγών μαγνητικών παρεμβολών, όπως κινητήρες ή μπαταρίες. Βλέπε Βαθμονόμηση του Αισθητήρα Πυξίδας παρακάτω.

Σύγκριση (Compare)

Συγκρίνει την Απόλυτη Θέση με μια περιοχή τιμών και θέτει τη λογική τιμή εάν η τιμή είναι εντός ή εκτός της περιοχής. Ανατρέξτε στην ενότητα Χρήση Περιοχών παρακάτω για περισσότερες πληροφορίες.

Χρησιμοποιώντας Σχετική Ανάγνωση

Η Σχετική Ανάγνωση καθιστά εύκολο να μείνετε σε μία επιλεγμένη θέση. Για να χρησιμοποιήσετε αυτήν τη δυνατότητα, επιλέξτε την Ενέργεια (Action) Σχετική Ανάγνωσης (Relative Reading). Στη συνέχεια, εισάγετε ένα Στόχο που είναι η θέση που θέλετε να διατηρηθεί.

Εάν θέλετε να πλοηγηθείτε Νότια, θα πρέπει να εισάγετε στον Στόχο 180 (Νότια είναι 180 μοίρες). Η εντολή αισθητήρα πυξίδας στη συνέχεια θα υπολογίζει τη διαφορά μεταξύ της Απόλυτης Θέσης και του Στόχου και θα επιστρέφει τη διαφορά ως Σχετική Θέση. (βύσμα 7). Για παράδειγμα, με το στόχο σας στο 180, εάν η Απόλυτη Θέση είναι 175, τότε η Σχετική Θέση θα είναι 5 (Στόχος – Απόλυτη Ονομασία ή 180 – 175 = 5). Αυτό δείχνει μια στροφή προς τα δεξιά ή ότι απαιτούνται 5 βαθμοί δεξιόστροφα για να επιτευχθεί ο Στόχος.

Εάν η Απόλυτη Θέση ήταν 185, τότε η Σχετική Θέση θα είναι -5 (Στόχος – Απόλυτη Θέση ή 180 – 185 = -5). Αυτό δείχνει μια στροφή προς τα αριστερά ή οτι απαιτούνται 5 βαθμοί αριστερόστροφα για να επιτευχθεί ο Στόχος. Παράδειγμα.

Βαθμονόμηση του Αισθητήρα Πυξίδας

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

Η βαθμονόμηση είναι προαιρετική και συνήθως δεν απαιτείται για την κανονική λειτουργία του. Για να ελαχιστοποιηθεί η ανάγκη για τη βαθμονόμηση, βεβαιωθείτε ότι έχετε τοποθετήσει την πυξίδα τουλάχιστον 10 – 15 cm (4 – 6 ίντσες) μακριά από το τούβλο NXT και τους κινητήρες.

Για τη βαθμονόμηση της πυξίδας στο πλαίσιο του προγράμματος ελέγχου, επιλέξτε κατάσταση βαθμονόμησης (calibration mode) ( τιμή 2 στο βύσμα Action) και, στη συνέχεια, προγραμματίστε το ρομπότ σας να περιστραφεί (στροφή σε ένα στενό κύκλο) μεταξύ 1 ½ και 2 φορές (πάνω από 360 μοίρες) μέχρι την ολοκλήρωση της μια πλήρη στροφή σε περίπου 20 δευτερόλεπτα. Μόλις οι στροφές έχουν ολοκληρωθεί, θέστε το Δράση Action σε λειτουργία Ανάγνωσης (Απόλυτη ή Σχετική) και η πυξίδα θα βαθμονομηθεί. Η πυξίδα θα διατηρήσει τις ρυθμίσεις βαθμονόμισης μέχρι να εκτελεστεί μία νέα, ακόμη και αν ΑΠΟΣΥΝΔΕΘΕΙ ο αισθητήρας.

 

Χρησιμοποιώντας την Περιοχή (Range)

Η Σύγκριση σας επιτρέπει να ορίσετε μια περιοχή και εύκολα να διαπιστώσετε εάν η τρέχουσα θέση είναι εντός ή εκτός αυτής. Τα Στοιχεία που χρησιμοποιούνται στη λειτουργία Περιοχής είναι:

Εντός Περιοχής / Εκτός Περιοχής: Επιλέξτε εάν θέλετε να ελέγξετε για μια Απόλυτη Θέση εντός ή εκτός της περιοχής.

Α: Το κατώτερο όριο της περιοχής (0 – 359)

Β: Το ανώτατο όριο της περιοχής (0 – 359)

Για να χρησιμοποιήσετε τη λειτουργία Περιοχή Range, θέστε το πάνω και κάτω όριο της περιοχή σας και αν θέλετε να το ελέγχετε για εντός ή εκτός αυτής.

Τα παραδείγματα που δείχνουν το λογικό αποτέλεσμα.

A B Εύρος Απόλυτος Τομέας Λογική τιμή
85 95 Inside Range 90 True
85 95 Inside Range 100 False
85 95 Outside Range 90 False
85 95 Outside Range 100 True

Πίνακας Καταχωρητών Αισθητήρα.

Διεύθυνση Τύπος Περιεχόμενα
00 – 07H chars Αριθμός έκδοσης αισθητήρα Sensor version number
08 – 0FH chars Κατασκευαστής Manufacturer
10 – 17H chars Τύπος Αισθητήρας Sensor type
18 – 3DH bytes Δεν χρησιμοποιείται Not used
3E, 3FH chars Κρατημένο Reserved
40H byte Δεν χρησιμοποιείται Not used
41η byte Κατάσταση ελέγχου Mode control
42η byte Τομέας) δύο βαθμό κλάσηςHeading } two degree heading
43H byte Τομέας) ένα βαθμό αθροιστής Heading } one degree adder
44, 45η word Τομέας) (χαμηλό byte, υψηλό byte) Heading (low byte, high byte)
46 – 7FH bytes Δεν χρησιμοποιείται Not used

Το πεδίο αριθμός έκδοσης Αισθητήρα θα αναφέρει ένα αριθμό αναθεώρησης με τη μορφή “²Vn.m”όπου n είναι ο μεγαλύτερος αριθμός έκδοσης και m είναι το επίπεδο αναθεώρησης . Οι αριθμοί αναθεώρησης συνήθως αντικατοπτρίζουν το επίπεδο firmware – υλικολογισμικού. Ο αριθμός έκδοσης θα χρησιμοποιηθεί για να υποδεικνύει το επίπεδο υλικού .

Το πεδίο κατασκευαστής θα περιέχει «HiTechnc».

Το πεδίο τύπος αισθητήρα θα περιέχει «Compass».

Το πεδίο τρόπος ελέγχου μπορεί να τεθεί σε 0x00 ή 0x43 για να καθορίσει ο τρόπος της μέτρηση ή λειτουργία βαθμονόμησηςhard-iron.

Τα πεδία Τομέας θα επιστρέψουν την τρέχουσα τιμή τομέα που μετράται κατά τη διάρκεια του τρόπου λειτουργίας μετρήσεων . Κατά τη διάρκεια της βαθμονόμησης τα πεδία είναι εκτός. Ο τομέας προέρχεται από την ανάγνωση της 0x42 θέσης για την απόκτηση τομέα δύο βαθμών και της 0x43 για να αποκτήσετε την προσθήκη ενός βαθμού. Ο τομέας μπορεί στη συνέχεια να υπολογίζεται ως. Τομέας = (τομέας δύο βαθμών * 2) + ένα βαθμό προσθήκη. Εάν το σήμα είναι ένα πρόβλημα, τότε η16 bit συμβατική τιμή μπορεί να ληφθεί από τη 0x44 (χαμηλό byte) και τη 0x45 (υψηλό byte).

Η θέση 0x41 είναι ο τρόπος ελέγχου. Προεπιλεγμένη σε 0, που είναι τρόπος μετρήσεων. Αλλαγή σε 0x43 για να ορίσετε λειτουργία βαθμονόμησης. Πρέπει να αλλαχθεί πίσω σε 0 όταν ολοκληρωθεί η βαθμονόμηση. ( Αν η βαθμονόμηση αποτύχει, η θέση 0x41 θα τεθεί σε 2 μετά την τοποθέτηση σε 0 από το ΝΧΤ στο τέλος της αποτυχημένης προσπάθειας βαθμονόμησης).

Άλλα περιβάλλοντα προγραμματισμού

RobotC

Όλα τα χαρακτηριστικά της Πυξίδας HiTechnic μπορούν να προσπελαστούν με τη χρήση της RobotC. Για περισσότερες πληροφορίες, μεταβείτε στο http://www-education.rec.ri.cmu.edu/robotc/.

NBC

Η Next Byte Code (NBC) είναι μια απλή γλώσσα  προγραμματισμού που μπορεί να έχει πρόσβαση σε όλα τα χαρακτηριστικά της πυξίδα. Για περισσότερες πληροφορίες, μεταβείτε στο http://bricxcc.sourceforge.net/nbc/.

Σημειώσεις:

  • Ο αισθητήρας πυξίδας HiTechnic θα λειτουργήσει σωστά μόνο σε οριζόντιο επίπεδο, κρατήστε την πυξίδα σε αυτό το επίπεδο για να διαβάσει σωστά. Αυτό είναι πολύ σημαντικό να το θυμόμαστε όταν κατασκευάζετε το ρομπότ σας.
  • Η έκδοση 1,03 του NXT Firmware , πρέπει να υπάρχει στο NXT για να λειτουργεί σωστά η πυξίδα. Μπορείτε να ελέγξετε την έκδοση firmware από την εμφάνιση του παράθυρου NXT στο λογισμικό Mindstorms .
  • Είναι ιδιαίτερα επιθυμητό να στεραιώνετε την πυξίδα τουλάχιστον 15 εκατοστά μακριά από τους κινητήρες και 10 εκατοστά μακριά από το ίδιο το τούβλο NXT.
  • Δοκιμάστε για να βεβαιωθείτε ότι είναι σταθερά τοποθετημένη, αν αναπηδά γύρω γύρω , και οι αναγνώσεις θα μεταβάλλονται το ίδιο.

Αφήστε μια απάντηση