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

Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και Raspberry Pi: 4 βήματα
Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και Raspberry Pi: 4 βήματα

Βίντεο: Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και Raspberry Pi: 4 βήματα

Βίντεο: Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και Raspberry Pi: 4 βήματα
Βίντεο: Φωτοπύλες: Συσκευή Μέτρησης Επιτάχυνσης Βαρύτητας 2024, Ιούλιος
Anonim
Image
Image

Το BMA250 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο εξαιρετικά χαμηλής ισχύος, 3 αξόνων με μέτρηση υψηλής ανάλυσης (13-bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών 16 bit και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2C. Μετρά τη στατική επιτάχυνση της βαρύτητας σε εφαρμογές ανίχνευσης κλίσης, καθώς και τη δυναμική επιτάχυνση που προκύπτει από κίνηση ή κρούση. Η υψηλή του ανάλυση (3,9 mg/LSB) επιτρέπει τη μέτρηση των αλλαγών κλίσης μικρότερη από 1,0 °.

Σε αυτό το σεμινάριο θα μετρήσουμε την επιτάχυνση και στους τρεις κάθετους άξονες χρησιμοποιώντας BMA250 και Raspberry Pi. Ο αισθητήρας έχει προγραμματιστεί σε γλώσσα python.

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

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

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

1. BMA250

2. Raspberry Pi

3. Καλώδιο I2C

4. I2C Shield για το Raspberry Pi

5. Καλώδιο Ethernet

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

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

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

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

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

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

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

Βήμα 3: Κωδικός Python για μέτρηση επιτάχυνσης:

Κωδικός Python για μέτρηση επιτάχυνσης
Κωδικός Python για μέτρηση επιτάχυνσης
Κωδικός Python για μέτρηση επιτάχυνσης
Κωδικός Python για μέτρηση επιτάχυνσης

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

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

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

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

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

εισαγωγή smbus

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

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

# Διεύθυνση BMA250, 0x18 (24)

# Επιλογή καταχωρητή επιλογής εύρους, 0x0F (15)

# 0x03 (03) Ορισμός εύρους = +/- 2gbus.write_byte_data (0x18, 0x0F, 0x03)

# Διεύθυνση BMA250, 0x18 (24)# Επιλογή καταχωρητή εύρους ζώνης, 0x10 (16)

# 0x08 (08) Εύρος ζώνης = 7.81 Hzbus.write_byte_data (0x18, 0x10, 0x08)

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

# Διεύθυνση BMA250, 0x18 (24)

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

# X-Axis LSB, X-Axis MSB, Y-Axis LSB, Y-Axis MSB, Z-Axis LSB, Z-Axis MSB

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

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

xAccl = (δεδομένα [1] * 256 + (δεδομένα [0] & 0xC0)) / 64

αν xAccl> 511:

xAccl -= 1024

yAccl = (δεδομένα [3] * 256 + (δεδομένα [2] & 0xC0)) / 64

αν yAccl> 511:

yAccl -= 1024

zAccl = (δεδομένα [5] * 256 + (δεδομένα [4] & 0xC0)) / 64

εάν zAccl> 511:

zAccl -= 1024

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

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

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

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

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

$> python BMA250.py gt; python BMA250.py

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

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

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

Τα επιταχυνσιόμετρα όπως το BMA250 βρίσκουν ως επί το πλείστον την εφαρμογή του στα παιχνίδια και την αλλαγή προφίλ οθόνης. Αυτή η μονάδα αισθητήρα χρησιμοποιείται επίσης στο προηγμένο σύστημα διαχείρισης ενέργειας για κινητές εφαρμογές. Το BMA250 είναι ένας τριαξονικός ψηφιακός αισθητήρας επιτάχυνσης ο οποίος ενσωματώνεται με έναν έξυπνο ελεγκτή διακοπής ενεργοποίησης κίνησης στο τσιπ.

Συνιστάται: