Αισθητήρας Επιτάχυνσης της HiTechnic για LEGO Mindstorms NXT (Acceleration / Tilt Sensor)

HiTechnic Αισθητήρας Επιτάχυνσης  για LEGO Mindstorms NXT

Εισαγωγή

Tilt_Sensor

Ο Αισθητήρας Επιτάχυνσης NXT περιέχει ένα επιταχυνσιόμετρο τριών αξόνων  το οποίο μέτρα επιτάχυνση σε τρεις άξονες, X, Y και Z. Η επιτάχυνση μετράται στην περιοχή από -2g έως 2g με κλιμάκωση  περίπου 200 γραμμάρια ανά μέτρηση.

Ο Αισθητήρας Επιτάχυνσης NXT μπορεί επίσης να χρησιμοποιηθεί για τη μέτρηση της κλίσης σε τρεις άξονες.

Συνδέεται σε μια θύρα ειδόδου του NXT με τη χρήση του τυποποιημένου 6-πλού καλωδίου και χρησιμοποιεί το ψηφιακό πρωτόκολλο επικοινωνιών I2C. Η μετρούμενη επιτάχυνση για κάθε άξονα ανανεώνεται περίπου 100 φορές ανά δευτερόλεπτο.

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

Οι τρεις άξονες της μέτρησης ονομάζονται x, y, και z, όπως φαίνεται παρακάτω.

Tilt_Sensor2

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

Προγραμματισμός

Mindstorms NXT-G

Ο Αισθητήρας Επιτάχυνσης NXT μπορεί να προγραμματιστεί με τη χρήση της εντολής Αισθητήρα Επιτάχυνσης (Acceleration Sensor Block) στο λογισμικό LEGO Mindstorms NXT. Αν η εντολή Αισθητήρα Επιτάχυνσης δεν είναι διαθέσιμη μπορείτε επίσης να χρησιμοποιήσετε το πρότυπο μπλοκ  Αισθητήρα Υπερήχων για πρόσβαση μόνο στο άξονα εξόδου x.

Η εντολή Αισθητήρα Επιτάχυνσης είναι διαθέσιμο για δωρεάν λήψη στον ιστοχώρο της HiTechnic http://www.hitechnic.com/contents/en-us/d19.html.

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

USblock1

Εάν χρησιμοποιείτε την εντολή Αισθητήρα Υπερήχων για να προγραμματίσετε τον Αισθητήρα Επιτάχυνσης, ρυθμίστε το σε λειτουργία εκατοστών όπως φαίνεται στην εικόνα.  Η εντολή θα επιστρέψει την τιμή του άξονα Χ  που θα είναι στην περιοχή 0 – 254.

Εντολή Αισθητήρα Επιτάχυνσης

Tilt_block

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

Προσθετικά, ένα σημείο σκανδαλισμού μπορεί να τεθεί για τον άξονα X. Οι προϋποθέσεις για την ενεργοποίηση θα πρέπει να πληρούνται, όταν η τιμή του άξονα x υπερβαίνει αυτη του σκανδάλισμού.

 

Ρύθμιση της εντολής  Αισθητήρα Επιτάχυνσης

AccelerationControl1

  1. Επιλέξτε τη θύρα, όπου συνδέεται ο Αισθητήρας Επιτάχυνσης. Προεπιλεγμένη θα είναι η Θύρα 3. Μπορείτε να αλλάξετε αυτή την επιλογή εάν θέλετε.
  2. Εάν επιλέξετε τη λειτουργία Σύγκρισης, το μπλοκ θα ενεργοποιείται όταν η τιμή του άξονα x θα είναι πάνω ή κάτω από την επιλεγμένη τιμή,  Επιλέξετε < «λιγότερο από» για τον σκανδαλισμό του μπλοκ όταν η τιμή είναι χαμηλότερη από την τιμή ενεργοποίησης ή > «μεγαλύτερο από» για τον σκανδαλισμό του μπλοκ όταν η τιμή είναι πάνω από την τιμή ενεργοποίησης. Χρησιμοποιήστε το ρυθμιστικό για να ρυθμίσετε την τιμή ενεργοποίησης ή πληκτρολογήστε την απευθείας στο κουτί εισόδου.

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

Διεύθυνση

Τύπος

Περιεχόμενα

42H

byte

X άξονα άνω 8 bits

43H

byte

Y άξονα άνω 8 bits

44H

byte

άξονα άνω 8 bits

45H

byte

X  άξονα χαμηλά 2 bits

46H

byte

Υ άξονα χαμηλά 2 bits

47H

byte

Ζ άξονα χαμηλά 2 bits

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

RobotC

Όλα τα χαρακτηριστικά του αισθητήρα  HiTechnic Acceleration Sensor μπορούν να προσεγγιστούν με τη χρήση RobotC.

Για περισσότερες πληροφορίες, μεταβείτε στο http://www-education.rec.ri.cmu.edu/robotc/.

NXC

Η NXC είναι μια γλώσσα προγραμματισμού C που μπορεί να έχει πρόσβαση σε όλες τα χαρακτηριστικά του Αισθητήρα Επιτάχυνσης.  Για περισσότερες πληροφορίες, μεταβείτε στο http://bricxcc.sourceforge.net/nbc/.

Παράδειγμα NXC Κώδικα

#include «NXCDefs.h»
task main()
{
SetSensorLowspeed(IN_1);
int count;

int xval;
int yval;
int zval;

byte inI2Ccmd[];
byte outbuf[];
while (TRUE)
{

ArrayInit(inI2Ccmd, 0, 2); // set the buffer to hold 10 values (initially all are zero)
inI2Ccmd[0] = 0x02; // set values in the array
inI2Ccmd[1] = 0x42;
count=8;                                  //read count set to 8 bytes

I2CBytes(IN_1, inI2Ccmd, count, outbuf);  //read the acceleration sensor on port 1
xval=outbuf[0];                           //load x axis upper 8 bits
yval=outbuf[1];                           //load Y axis upper 8 bits
zval=outbuf[2];                           //load z axis upper 8 bits
if (xval > 127) xval-=256;                //convert x to 10 bit value
xval=xval*4 + outbuf[3];
if (yval > 127) yval-=256;                //convert y to 10 bit value
yval=yval*4 + outbuf[4];
if (zval > 127) zval-=256;                //convert z to 10 bit value
zval=zval*4 + outbuf[5];
… …

}

Σημειώσεις:

Η έκδοση Firmware  1,03 και πάνω, πρέπει να έχει φορτωθεί στο NXT για να λειτουργεί σωστά ο Αισθητήρας Επιτάχυνσης . Μπορείτε να ελέγξετε την έκδοση firmware από την εμφάνιση του παράθυρου NXT στο λογισμικό Mindstorms.

Επιπλέον παρατηρήσεις

Ο Αισθητήρας Επιταχυνσιόμετρο και το μυστήριο I2C

Έχουν γίνει περισσότερες δοκιμές με το «ACCL-Nx-3g3x» επιταχυνσιόμετρο μέρος από Mindsensors. Στόχος μας ήταν να αποκτηθούν οι Χ και Υ τιμές του άξονα από τον αισθητήρα μέσω Bluetooth χρησιμοποιώντας Άμεσες Εντολές Lego NXT , και στη συνέχεια, να συνδεθούν αυτές οι τιμές με ένα πίνακα στο PC.

Πρώτον, κοίταξαμε ποιες
Άμεσες Εντολές Lego NXT  ήταν αναγκαίες για να διαβαστούν οι τιμές του αισθητήρα μεσω του I2C. Έλεγξαμε τον πινακα χαρακτηρηστικών του  Mindsensors που καθορίζει τους κωδικούς εντολής του I2C και τις διευθύνσεις μνήμης. Η απλή ανάγνωση των καταχωρητών αξόνων λειτούργησε καλά, όμως, όταν αρχίσαμε διαδοχικές αναγνώσεις του αισθητήρα σε διαστήματα των 40ms , το NXT βγηκε εκτός ορίου. Πιστεύουμε στις επόμενες εκδόσεις firmware (τρεχουσα 1.03) να έχει διορθωθεί.

Τα χρώματα και άλλες ιδιότητες μπορούν να υποστούν επεξεργασία. Εδω είναι ενα δείγμα του πίνακα οργάνων roboDNA Lego NXT:

AccelGauges

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