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

Παρακολούθηση κίνησης χρησιμοποιώντας MPU-6000 και Raspberry Pi: 4 βήματα
Παρακολούθηση κίνησης χρησιμοποιώντας MPU-6000 και Raspberry Pi: 4 βήματα

Βίντεο: Παρακολούθηση κίνησης χρησιμοποιώντας MPU-6000 και Raspberry Pi: 4 βήματα

Βίντεο: Παρακολούθηση κίνησης χρησιμοποιώντας MPU-6000 και Raspberry Pi: 4 βήματα
Βίντεο: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, Ιούλιος
Anonim
Image
Image

Το MPU-6000 είναι ένας αισθητήρας παρακολούθησης κίνησης 6 αξόνων που έχει ενσωματωμένο επιταχυνσιόμετρο 3 αξόνων και γυροσκόπιο 3 αξόνων. Αυτός ο αισθητήρας είναι ικανός για αποτελεσματική παρακολούθηση της ακριβούς θέσης και θέσης ενός αντικειμένου στο τρισδιάστατο επίπεδο. Μπορεί να χρησιμοποιηθεί σε συστήματα που απαιτούν ανάλυση θέσης με την υψηλότερη ακρίβεια.

Σε αυτό το σεμινάριο απεικονίζεται η διασύνδεση της μονάδας αισθητήρα MPU-6000 με raspberry pi. Για να διαβάσετε τις τιμές της επιτάχυνσης και της γωνίας περιστροφής, χρησιμοποιήσαμε raspberry pi με προσαρμογέα I2c. Αυτός ο προσαρμογέας I2C καθιστά τη σύνδεση με τη μονάδα αισθητήρα εύκολη και πιο αξιόπιστη.

Βήμα 1: Απαιτείται υλικό:

Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό

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

1. MPU-6000

2. Raspberry Pi

3. Καλώδιο I2C

4. I2C Shield για raspberry pi

5. Καλώδιο Ethernet

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

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

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

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

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

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

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

Βήμα 3: Κώδικας για παρακολούθηση κίνησης:

Κωδικός για παρακολούθηση κίνησης
Κωδικός για παρακολούθηση κίνησης

Το πλεονέκτημα της χρήσης του raspberry pi είναι ότι σας παρέχει την ευελιξία της γλώσσας προγραμματισμού στην οποία θέλετε να προγραμματίσετε τον πίνακα για να διασυνδέσετε τον αισθητήρα με αυτό. Αξιοποιώντας αυτό το πλεονέκτημα αυτού του πίνακα, αποδεικνύουμε εδώ τον προγραμματισμό του στον πύθωνα. Η Python είναι μία από τις ευκολότερες γλώσσες προγραμματισμού με την ευκολότερη σύνταξη. Μπορείτε να κατεβάσετε τον κωδικό python για το MPU-6000 από την κοινότητα GitHub που είναι το Dcube Store

Εκτός από την ευκολία των χρηστών, εξηγούμε τον κώδικα και εδώ:

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

pypi.python.org/pypi/smbus-cffi/0.5.1

Μπορείτε επίσης να αντιγράψετε τον κωδικό εργασίας από εδώ:

εισαγωγή smbus

χρόνο εισαγωγής

# Λήψη I2C busbus = smbus. SMBus (1)

# Διεύθυνση MPU-6000, 0x68 (104)

# Επιλέξτε μητρώο διαμόρφωσης γυροσκοπίου, 0x1B (27)

# 0x18 (24) Εύρος πλήρους κλίμακας = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# Διεύθυνση MPU-6000, 0x68 (104)

# Επιλογή καταχωρητή διαμόρφωσης επιταχυνσιόμετρου, 0x1C (28)

# 0x18 (24) Εύρος πλήρους κλίμακας = +/- 16g

bus.write_byte_data (0x68, 0x1C, 0x18)

# Διεύθυνση MPU-6000, 0x68 (104)

# Επιλέξτε μητρώο διαχείρισης ενέργειας1, 0x6B (107)

# 0x01 (01) PLL με αναφορά xGyro

bus.write_byte_data (0x68, 0x6B, 0x01)

ώρα. ύπνος (0,8)

# Διεύθυνση MPU-6000, 0x68 (104)

# Ανάγνωση δεδομένων από 0x3B (59), 6 byte

# Επιταχυνσιόμετρο X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

δεδομένα = bus.read_i2c_block_data (0x68, 0x3B, 6)

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

xAccl = δεδομένα [0] * 256 + δεδομένα [1]

αν xAccl> 32767:

xAccl -= 65536

yAccl = δεδομένα [2] * 256 + δεδομένα [3]

αν yAccl> 32767:

yAccl -= 65536

zAccl = δεδομένα [4] * 256 + δεδομένα [5]

εάν zAccl> 32767:

zAccl -= 65536

# Διεύθυνση MPU-6000, 0x68 (104)

# Ανάγνωση δεδομένων από 0x43 (67), 6 byte

# Γυρόμετρο X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

δεδομένα = bus.read_i2c_block_data (0x68, 0x43, 6)

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

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

αν xGyro> 32767:

xGyro -= 65536

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

αν yGyro> 32767:

yGyro -= 65536

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

εάν zGyro> 32767:

zGyro -= 65536

# Έξοδος δεδομένων στην οθόνη

εκτύπωση "Επιτάχυνση στον άξονα Χ: %d" %xAccl

εκτύπωση "Επιτάχυνση στον άξονα Υ: %d" %yAccl

εκτύπωση "Επιτάχυνση στον άξονα Z: %d" %zAccl

εκτύπωση "X-Axis of Rotation: %d" %xGyro

εκτύπωση "Υ-άξονας περιστροφής: %d" %yGyro

εκτύπωση "Z-Axis of Rotation: %d" %zGyro

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

$> python MPU-6000.py gt; python MPU-6000.py

Η έξοδος του αισθητήρα εμφανίζεται στην παραπάνω εικόνα για αναφορά του χρήστη.

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

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

Το MPU-6000 είναι ένας αισθητήρας παρακολούθησης κίνησης, ο οποίος βρίσκει την εφαρμογή του στη διεπαφή κίνησης smartphone και tablet. Στα smartphone, αυτοί οι αισθητήρες μπορούν να χρησιμοποιηθούν σε εφαρμογές όπως εντολές χειρονομίας για εφαρμογές και έλεγχο τηλεφώνου, βελτιωμένο παιχνίδι, επαυξημένη πραγματικότητα, πανοραμική λήψη και προβολή φωτογραφιών, καθώς και πλοήγηση πεζών και οχημάτων. Η τεχνολογία MotionTracking μπορεί να μετατρέψει ακουστικά και tablet σε ισχυρές τρισδιάστατες έξυπνες συσκευές που μπορούν να χρησιμοποιηθούν σε εφαρμογές που κυμαίνονται από την παρακολούθηση της υγείας και της φυσικής κατάστασης έως υπηρεσίες βάσει τοποθεσίας.

Συνιστάται: