Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Στον σημερινό κόσμο, περισσότεροι από τους μισούς νέους και παιδιά αγαπούν τα παιχνίδια και όλοι όσοι το λατρεύουν, γοητευμένοι από τις τεχνικές πτυχές του παιχνιδιού γνωρίζουν τη σημασία της ανίχνευσης κίνησης σε αυτόν τον τομέα. Weμασταν επίσης έκπληκτοι από το ίδιο πράγμα και απλά για να το φέρουμε στους πίνακες, σκεφτήκαμε να δουλέψουμε σε έναν αισθητήρα γυροσκοπίου που μπορεί να μετρήσει τον γωνιακό ρυθμό οποιουδήποτε αντικειμένου. Έτσι, ο αισθητήρας που χρησιμοποιήσαμε για να αντιμετωπίσουμε το έργο είναι ο BMG160. Το BMG160 είναι ένας 16-bit, ψηφιακός, τριαξονικός αισθητήρας γυροσκοπίου, ο οποίος μπορεί να μετρήσει τον ρυθμό γωνίας σε τρεις κάθετες διαστάσεις δωματίου.
Σε αυτό το σεμινάριο, θα παρουσιάσουμε τη λειτουργία του BMG160 με το Raspberry pi, χρησιμοποιώντας την Java ως γλώσσα προγραμματισμού.
Το υλικό που θα χρειαστείτε για αυτόν τον σκοπό είναι το ακόλουθο:
1. BMG160
2. Raspberry Pi
3. Καλώδιο I2C
4. I2C Shield για το Raspberry Pi
5. Καλώδιο Ethernet
Βήμα 1: Επισκόπηση BMG160:
Πρώτα απ 'όλα θα θέλαμε να σας εξοικειώσουμε με τα βασικά χαρακτηριστικά της μονάδας αισθητήρα που είναι το BMG160 και το πρωτόκολλο επικοινωνίας στο οποίο λειτουργεί.
Το BMG160 είναι βασικά ένας 16-bit, ψηφιακός, τριαξονικός αισθητήρας γυροσκοπίου που μπορεί να μετρήσει γωνιακούς ρυθμούς. Είναι σε θέση να υπολογίσει γωνιακούς ρυθμούς σε τρεις κάθετες διαστάσεις δωματίου, τον άξονα x-, y- και z, και να παρέχει τα αντίστοιχα σήματα εξόδου. Μπορεί να επικοινωνήσει με τον πίνακα raspberry pi χρησιμοποιώντας το πρωτόκολλο επικοινωνίας I2C. Η συγκεκριμένη ενότητα έχει σχεδιαστεί για να πληροί τις απαιτήσεις για εφαρμογές καταναλωτών καθώς και βιομηχανικούς σκοπούς.
Το πρωτόκολλο επικοινωνίας στο οποίο λειτουργεί ο αισθητήρας είναι I2C. Το I2C σημαίνει το ενσωματωμένο κύκλωμα. Είναι ένα πρωτόκολλο επικοινωνίας στο οποίο η επικοινωνία πραγματοποιείται μέσω γραμμών SDA (σειριακά δεδομένα) και SCL (σειριακό ρολόι). Επιτρέπει τη σύνδεση πολλαπλών συσκευών ταυτόχρονα. Είναι ένα από τα πιο απλά και αποτελεσματικά πρωτόκολλα επικοινωνίας.
Βήμα 2: Αυτό που χρειάζεστε..
Τα υλικά που χρειαζόμαστε για την επίτευξη του στόχου μας περιλαμβάνουν τα ακόλουθα στοιχεία υλικού:
1. BMG160
2. Raspberry Pi
3. Καλώδιο I2C
4. I2C Shield For Raspberry Pi
5. Καλώδιο Ethernet
Βήμα 3: Σύνδεση υλικού:
Το τμήμα σύνδεσης υλικού εξηγεί βασικά τις συνδέσεις καλωδίωσης που απαιτούνται μεταξύ του αισθητήρα και του raspberry pi. Η διασφάλιση των σωστών συνδέσεων είναι η βασική ανάγκη ενώ εργάζεστε σε οποιοδήποτε σύστημα για την επιθυμητή έξοδο. Έτσι, οι απαιτούμενες συνδέσεις είναι οι εξής:
Το BMG160 θα λειτουργεί πάνω από I2C. Ακολουθεί το παράδειγμα διαγράμματος καλωδίωσης, που δείχνει πώς συνδέεται κάθε διασύνδεση του αισθητήρα.
Εκτός συσκευασίας, ο πίνακας έχει διαμορφωθεί για διεπαφή I2C, ως εκ τούτου συνιστούμε τη χρήση αυτής της σύνδεσης εάν είστε αλλιώς αγνωστικιστής. Το μόνο που χρειάζεστε είναι τέσσερα καλώδια!
Απαιτούνται μόνο τέσσερις συνδέσεις ακροδέκτες Vcc, Gnd, SCL και SDA και αυτές συνδέονται με τη βοήθεια καλωδίου I2C.
Αυτές οι συνδέσεις φαίνονται στις παραπάνω εικόνες.
Βήμα 4: Μέτρηση γυροσκοπίου 3 αξόνων με χρήση κώδικα Java:
Το πλεονέκτημα της χρήσης του raspberry pi είναι ότι σας παρέχει την ευελιξία της γλώσσας προγραμματισμού στην οποία θέλετε να προγραμματίσετε τον πίνακα προκειμένου να διασυνδέσετε τον αισθητήρα με αυτό. Αξιοποιώντας αυτό το πλεονέκτημα αυτού του πίνακα, αποδεικνύουμε εδώ τον προγραμματισμό του στην Java. Μπορείτε να κατεβάσετε τον κώδικα Java για το BMG160 από την κοινότητα github που είναι η Κοινότητα καταστήματος Dcube.
Εκτός από την ευκολία των χρηστών, εξηγούμε τον κώδικα και εδώ: Ως πρώτο βήμα κωδικοποίησης πρέπει να κατεβάσετε τη βιβλιοθήκη pi4j σε περίπτωση java, επειδή αυτή η βιβλιοθήκη υποστηρίζει τις λειτουργίες που χρησιμοποιούνται στον κώδικα. Έτσι, για να κατεβάσετε τη βιβλιοθήκη μπορείτε να επισκεφθείτε τον ακόλουθο σύνδεσμο:
pi4j.com/install.html
Μπορείτε να αντιγράψετε τον λειτουργικό κώδικα java για αυτόν τον αισθητήρα από εδώ επίσης:
εισαγωγή com.pi4j.io.i2c. I2CBus;
εισαγωγή com.pi4j.io.i2c. I2CDevice;
εισαγωγή com.pi4j.io.i2c. I2CFactory?
εισαγωγή java.io. IOException;
δημόσια τάξη BMG160
{
public static void main (String args ) ρίχνει Εξαίρεση
{
// Δημιουργία διαύλου I2C
I2CBus bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Λήψη συσκευής I2C, η διεύθυνση BMG160 I2C είναι 0x68 (104)
I2CDevice device = bus.getDevice (0x68);
// Επιλογή καταχωρητή εύρους
// Διαμόρφωση εύρους πλήρους κλίμακας, 2000 dps
device.write (0x0F, (byte) 0x80);
// Επιλογή καταχωρητή εύρους ζώνης
// Εύρος ζώνης 200 Hz
device.write (0x10, (byte) 0x04);
Thread.sleep (500);
// Διαβάστε 6 byte δεδομένων
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
byte data = new byte [6];
device.read (0x02, δεδομένα, 0, 6);
// Μετατροπή δεδομένων
int xGyro = ((δεδομένα [1] & 0xFF) * 256 + (δεδομένα [0] & 0xFF)];
εάν (xGyro> 32767)
{
xGyro -= 65536;
}
int yGyro = ((δεδομένα [3] & 0xFF) * 256 + (δεδομένα [2] & 0xFF));
εάν (yGyro> 32767)
{
yGyro -= 65536;
}
int zGyro = ((δεδομένα [5] & 0xFF) * 256 + (δεδομένα [4] & 0xFF));
εάν (zGyro> 32767)
{
zGyro -= 65536;
}
// Έξοδος δεδομένων στην οθόνη
System.out.printf ("X-Axis of Rotation: %d %n", xGyro);
System.out.printf ("Υ-άξονας περιστροφής: %d %n", yGyro);
System.out.printf ("Άξονας περιστροφής Ζ: %d %n", zGyro);
}
}
Η βιβλιοθήκη που διευκολύνει την επικοινωνία i2c μεταξύ του αισθητήρα και της πλακέτας είναι pi4j, τα διάφορα πακέτα I2CBus, I2CDevice και I2CFactory βοηθούν στη δημιουργία της σύνδεσης.
εισαγωγή com.pi4j.io.i2c. I2CBus; εισαγωγή com.pi4j.io.i2c. I2CDevice; εισαγωγή com.pi4j.io.i2c. I2CFactory? εισαγωγή java.io. IOException;
Αυτό το μέρος του κώδικα κάνει τον αισθητήρα να μετρήσει τον γωνιακό ρυθμό γράφοντας τις αντίστοιχες εντολές χρησιμοποιώντας τη συνάρτηση εγγραφής () και, στη συνέχεια, τα δεδομένα διαβάζονται χρησιμοποιώντας τη συνάρτηση ανάγνωσης ().
// Επιλογή καταχωρητή εύρους // Διαμόρφωση πλήρους εύρους κλίμακας, συσκευή 2000 dps.write (0x0F, (byte) 0x80); // Επιλογή καταχωρητή εύρους ζώνης // Εύρος ζώνης 200 Hz device.write (0x10, (byte) 0x04); Thread.sleep (500);
// Διαβάστε 6 byte δεδομένων
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb byte δεδομένα = νέο byte [6]; device.read (0x02, δεδομένα, 0, 6);
Τα δεδομένα που λαμβάνονται από τον αισθητήρα μετατρέπονται στην κατάλληλη μορφή χρησιμοποιώντας τα ακόλουθα:
int xGyro = ((δεδομένα [1] & 0xFF) * 256 + (δεδομένα [0] & 0xFF)]; εάν (xGyro> 32767) {xGyro -= 65536; } int yGyro = ((δεδομένα [3] & 0xFF) * 256 + (δεδομένα [2] & 0xFF)); εάν (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((δεδομένα [5] & 0xFF) * 256 + (δεδομένα [4] & 0xFF)); εάν (zGyro> 32767) {zGyro -= 65536; }
Η έξοδος εκτυπώνεται χρησιμοποιώντας τη λειτουργία System.out.println (), στην ακόλουθη μορφή.
System.out.println ("X-Axis of Rotation: %d %n", xGyro); System.out.println ("Υ-άξονας περιστροφής: %d %n", yGyro); System.out.println ("Άξονας περιστροφής Ζ: %d %n", zGyro);
Η έξοδος του αισθητήρα εμφανίζεται στην παραπάνω εικόνα.
Βήμα 5: Εφαρμογές:
Το BMG160 διαθέτει ποικίλο αριθμό εφαρμογών σε συσκευές όπως κινητά τηλέφωνα, συσκευές διασύνδεσης ανθρώπινων μηχανών. Αυτή η μονάδα αισθητήρα έχει σχεδιαστεί για να ικανοποιεί απαιτήσεις για εφαρμογές καταναλωτών, όπως σταθεροποίηση εικόνας (DSC και κάμερα-τηλέφωνο), συσκευές παιχνιδιών και κατάδειξης. Χρησιμοποιείται επίσης σε συστήματα που απαιτούν αναγνώριση χειρονομιών και συστήματα που χρησιμοποιούνται στην εσωτερική πλοήγηση.
Συνιστάται:
Διασύνδεση χωρητικού αισθητήρα δακτυλικών αποτυπωμάτων με Arduino UNO: 7 βήματα
Διασύνδεση χωρητικού αισθητήρα δακτυλικών αποτυπωμάτων με Arduino UNO: Γεια, τι συμβαίνει, παιδιά! Akarsh εδώ από τη CETech. Σήμερα θα προσθέσουμε ένα προστατευτικό στρώμα στα έργα μας. Μην ανησυχείτε δεν πρόκειται να διορίσουμε σωματοφύλακες για το ίδιο. Θα είναι ένας χαριτωμένος λίγο καλός αισθητήρας δακτυλικών αποτυπωμάτων από το DFRobot. Έτσι
Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με Arduino Nano: 5 βήματα
Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με Arduino Nano: Στον σημερινό κόσμο, περισσότεροι από τους μισούς νέους και παιδιά λατρεύουν το παιχνίδι και όλοι όσοι το λατρεύουν, γοητευμένοι από τις τεχνικές πτυχές του παιχνιδιού γνωρίζουν τη σημασία της ανίχνευσης κίνησης σε αυτόν τον τομέα. Μας εξέπληξε επίσης το ίδιο πράγμα και
Διασύνδεση Arduino με αισθητήρα υπερήχων και αισθητήρα θερμοκρασίας χωρίς επαφή: 8 βήματα
Διασύνδεση Arduino με αισθητήρα υπερήχων και αισθητήρα θερμοκρασίας χωρίς επαφή: Σήμερα, οι κατασκευαστές, οι προγραμματιστές προτιμούν το Arduino για την ταχεία ανάπτυξη του πρωτοτύπου των έργων. Το Arduino είναι μια ηλεκτρονική πλατφόρμα ανοιχτού κώδικα που βασίζεται σε εύχρηστο υλικό και λογισμικό. Το Arduino έχει πολύ καλή κοινότητα χρηστών. Σε αυτό το έργο
Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με σωματίδιο: 5 βήματα
Διασύνδεση αισθητήρα γυροσκοπίου 3 αξόνων BMG160 με σωματίδιο: Στον σημερινό κόσμο, περισσότεροι από τους μισούς νέους και παιδιά αγαπούν το παιχνίδι και όλοι όσοι το λατρεύουν, γοητευμένοι από τις τεχνικές πτυχές του παιχνιδιού γνωρίζουν τη σημασία της ανίχνευσης κίνησης αυτόν τον τομέα. Μας εξέπληξε επίσης το ίδιο πράγμα και
Βαθμονόμηση και δοκιμή μονάδας αισθητήρα 6 αξόνων FSP200: 6 βήματα
Βαθμονόμηση και δοκιμή μονάδας αισθητήρα 6 αξόνων FSP200: Το FSP200 είναι ένας αδρανειακός επεξεργαστής μονάδας μέτρησης 6 αξόνων που παρέχει έξοδο κατεύθυνσης και κατεύθυνσης. Πραγματοποιεί σύντηξη επιταχυνσιόμετρων και γυροσκοπικών αισθητήρων για σταθερή και ακριβή κατεύθυνση και κατεύθυνση. Το FSP200 είναι κατάλληλο για χρήση σε ρομπότ