Πίνακας περιεχομένων:

Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με σωματίδιο: 5 βήματα
Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με σωματίδιο: 5 βήματα

Βίντεο: Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με σωματίδιο: 5 βήματα

Βίντεο: Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με σωματίδιο: 5 βήματα
Βίντεο: How does mobile know about its orientation? 2024, Ιούλιος
Anonim
Image
Image

Στον σημερινό κόσμο, περισσότεροι από τους μισούς νέους και παιδιά αγαπούν τα παιχνίδια και όλοι όσοι το λατρεύουν, γοητευμένοι από τις τεχνικές πτυχές του παιχνιδιού γνωρίζουν τη σημασία της ανίχνευσης κίνησης σε αυτόν τον τομέα. Weμασταν επίσης έκπληκτοι από το ίδιο πράγμα και απλά για να το φέρουμε στους πίνακες, σκεφτήκαμε να δουλέψουμε σε έναν αισθητήρα γυροσκοπίου που μπορεί να μετρήσει τον γωνιακό ρυθμό οποιουδήποτε αντικειμένου. Έτσι, ο αισθητήρας που χρησιμοποιήσαμε για να αντιμετωπίσουμε το έργο είναι ο BMG160. Το BMG160 είναι ένας 16-bit, ψηφιακός, τριαξονικός αισθητήρας γυροσκοπίου, ο οποίος μπορεί να μετρήσει τον ρυθμό γωνίας σε τρεις κάθετες διαστάσεις δωματίου.

Σε αυτό το σεμινάριο, θα παρουσιάσουμε τη λειτουργία του BMG160 με το Particle Photon.

Το υλικό που θα χρειαστείτε για αυτόν τον σκοπό είναι το ακόλουθο:

1. BMG160

2. Φωτόνιο σωματιδίων

3. Καλώδιο I2C

4. I2C Shield for Particle Photon

Βήμα 1: Επισκόπηση BMG160:

Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!

Πρώτα απ 'όλα θα θέλαμε να σας εξοικειώσουμε με τα βασικά χαρακτηριστικά της μονάδας αισθητήρα που είναι το BMG160 και το πρωτόκολλο επικοινωνίας στο οποίο λειτουργεί.

Το BMG160 είναι βασικά ένας 16-bit, ψηφιακός, τριαξονικός αισθητήρας γυροσκοπίου που μπορεί να μετρήσει γωνιακούς ρυθμούς. Είναι σε θέση να υπολογίσει γωνιακούς ρυθμούς σε τρεις κάθετες διαστάσεις δωματίου, τον άξονα x-, y- και z, και να παρέχει τα αντίστοιχα σήματα εξόδου. Μπορεί να επικοινωνήσει με τον πίνακα raspberry pi χρησιμοποιώντας το πρωτόκολλο επικοινωνίας I2C. Η συγκεκριμένη ενότητα έχει σχεδιαστεί για να πληροί τις απαιτήσεις για εφαρμογές καταναλωτών καθώς και βιομηχανικούς σκοπούς.

Το πρωτόκολλο επικοινωνίας στο οποίο λειτουργεί ο αισθητήρας είναι I2C. Το I2C σημαίνει το ενσωματωμένο κύκλωμα. Είναι ένα πρωτόκολλο επικοινωνίας στο οποίο η επικοινωνία πραγματοποιείται μέσω γραμμών SDA (σειριακά δεδομένα) και SCL (σειριακό ρολόι). Επιτρέπει τη σύνδεση πολλαπλών συσκευών ταυτόχρονα. Είναι ένα από τα πιο απλά και αποτελεσματικά πρωτόκολλα επικοινωνίας.

Βήμα 2: Αυτό που χρειάζεστε..

Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!

Τα υλικά που χρειαζόμαστε για την επίτευξη του στόχου μας περιλαμβάνουν τα ακόλουθα στοιχεία υλικού:

1. BMG160

2. Φωτόνιο σωματιδίων

3. Καλώδιο I2C

4. I2C Shield For Particle Photon

Βήμα 3: Σύνδεση υλικού:

Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού

Η ενότητα σύνδεσης υλικού εξηγεί βασικά τις συνδέσεις καλωδίωσης που απαιτούνται μεταξύ του αισθητήρα και του σωματιδίου. Η διασφάλιση των σωστών συνδέσεων είναι η βασική ανάγκη ενώ εργάζεστε σε οποιοδήποτε σύστημα για την επιθυμητή έξοδο. Έτσι, οι απαιτούμενες συνδέσεις είναι οι εξής:

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

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

Το μόνο που χρειάζεστε είναι τέσσερα καλώδια! Απαιτούνται μόνο τέσσερις συνδέσεις ακροδέκτες Vcc, Gnd, SCL και SDA και αυτές συνδέονται με τη βοήθεια καλωδίου I2C.

Αυτές οι συνδέσεις φαίνονται στις παραπάνω εικόνες.

Βήμα 4: Κωδικός σωματιδίου μέτρησης γυροσκοπίου 3 αξόνων:

Κωδικός σωματιδίου μέτρησης γυροσκοπίου 3 αξόνων
Κωδικός σωματιδίου μέτρησης γυροσκοπίου 3 αξόνων
Κωδικός σωματιδίου μέτρησης γυροσκοπίου 3 αξόνων
Κωδικός σωματιδίου μέτρησης γυροσκοπίου 3 αξόνων

Ας ξεκινήσουμε με τον κωδικό σωματιδίων τώρα.

Κατά τη χρήση της μονάδας αισθητήρα με το arduino, συμπεριλαμβάνουμε τη βιβλιοθήκη application.h και spark_wiring_i2c.h. Η βιβλιοθήκη "application.h" και spark_wiring_i2c.h περιέχει τις λειτουργίες που διευκολύνουν την επικοινωνία i2c μεταξύ του αισθητήρα και του σωματιδίου.

Ολόκληρος ο κωδικός σωματιδίων δίνεται παρακάτω για τη διευκόλυνση του χρήστη:

#περιλαμβάνω

#περιλαμβάνω

// Η διεύθυνση BMG160 I2C είναι 0x68 (104)

#define Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

void setup ()

{

// Ορισμός μεταβλητής

Particle.variable ("i2cdevice", "BMG160");

Particle.variable ("xGyro", xGyro);

Particle.variable ("yGyro", yGyro);

Particle.variable ("zGyro", zGyro);

// Αρχικοποίηση επικοινωνίας I2C ως MASTER

Wire.begin ();

// Αρχικοποίηση σειριακής επικοινωνίας

Serial.begin (9600);

// Έναρξη μετάδοσης I2C

Wire.beginTransmission (Addr);

// Επιλέξτε Εγγραφή εύρους

Wire.write (0x0F);

// Διαμόρφωση πλήρους κλίμακας 2000 dps

Wire.write (0x80);

// Διακοπή μετάδοσης I2C

Wire.endTransmission ();

// Έναρξη μετάδοσης I2C

Wire.beginTransmission (Addr);

// Επιλέξτε μητρώο εύρους ζώνης

Wire.write (0x10);

// Ορισμός εύρους ζώνης = 200 Hz

Wire.write (0x04);

// Διακοπή μετάδοσης I2C

Wire.endTransmission ();

καθυστέρηση (300)?

}

κενός βρόχος ()

{

ανυπόγραφα δεδομένα int [6];

// Έναρξη μετάδοσης I2C

Wire.beginTransmission (Addr);

// Επιλέξτε μητρώο δεδομένων

Wire.write (0x02);

// Διακοπή μετάδοσης I2C

Wire.endTransmission ();

// Ζητήστε 6 byte δεδομένων

Wire.requestFrom (Addr, 6)?

// Διαβάστε 6 byte δεδομένων

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

εάν (Wire.available () == 6)

{

δεδομένα [0] = Wire.read ();

δεδομένα [1] = Wire.read ();

δεδομένα [2] = Wire.read ();

δεδομένα [3] = Wire.read ();

δεδομένα [4] = Wire.read ();

δεδομένα [5] = Wire.read ();

}

καθυστέρηση (300)?

// Μετατρέψτε τα δεδομένα

xGyro = ((δεδομένα [1] * 256) + δεδομένα [0]);

εάν (xGyro> 32767)

{

xGyro -= 65536;

}

yGyro = ((δεδομένα [3] * 256) + δεδομένα [2]);

εάν (yGyro> 32767)

{

yGyro -= 65536;

}

zGyro = ((δεδομένα [5] * 256) + δεδομένα [4]);

εάν (zGyro> 32767)

{

zGyro -= 65536;

}

// Έξοδος δεδομένων στον πίνακα ελέγχου

Particle.publish ("X-Axis of Rotation:", String (xGyro));

Particle.publish ("Y-Axis of Rotation:", String (yGyro));

Particle.publish ("Z-Axis of Rotation:", String (zGyro));

καθυστέρηση (1000)?

}

Βήμα 5: Εφαρμογές:

Εφαρμογές
Εφαρμογές

Το BMG160 διαθέτει ποικίλο αριθμό εφαρμογών σε συσκευές όπως κινητά τηλέφωνα, συσκευές διασύνδεσης ανθρώπινων μηχανών. Αυτή η μονάδα αισθητήρα έχει σχεδιαστεί για να ικανοποιεί απαιτήσεις για εφαρμογές καταναλωτών, όπως σταθεροποίηση εικόνας (DSC και κάμερα-τηλέφωνο), συσκευές παιχνιδιών και κατάδειξης. Χρησιμοποιείται επίσης σε συστήματα που απαιτούν αναγνώριση χειρονομιών και συστήματα που χρησιμοποιούνται στην εσωτερική πλοήγηση.

Συνιστάται: