Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Το MMA8452Q είναι ένα έξυπνο, χαμηλής ισχύος, τριών αξόνων, χωρητικό, μικρομηχανικό επιταχυνσιόμετρο με ανάλυση 12 bits. Παρέχονται ευέλικτες προγραμματιζόμενες επιλογές χρήστη με τη βοήθεια ενσωματωμένων λειτουργιών στο επιταχυνσιόμετρο, διαμορφώσιμες σε δύο ακίδες διακοπής. Διαθέτει πλήρεις κλίμακες που μπορούν να επιλέξουν οι χρήστες of 2g/± 4g/± 8g με φιλτραρισμένα δεδομένα φίλτρου υψηλής διέλευσης καθώς και μη φιλτραρισμένα δεδομένα διαθέσιμα σε πραγματικό χρόνο. Εδώ είναι η επίδειξή του με raspberry pi χρησιμοποιώντας κώδικα python.
Βήμα 1: Αυτό που χρειάζεστε..
1. Raspberry Pi
2. MMA8452Q
3. Καλώδιο I²C
4. I²C Shield για το Raspberry Pi
5. Καλώδιο Ethernet
Βήμα 2: Συνδέσεις:
Πάρτε μια ασπίδα I2C για raspberry pi και σπρώξτε την απαλά πάνω από τις καρφίτσες gpio του raspberry pi.
Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα MMA8452Q και το άλλο άκρο στην ασπίδα I2C.
Συνδέστε επίσης το καλώδιο Ethernet στο pi ή μπορείτε να χρησιμοποιήσετε μια μονάδα WiFi.
Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.
Βήμα 3: Κωδικός:
Μπορείτε να κατεβάσετε τον κώδικα python για το MMA8452Q από το αποθετήριο github μας- ControlEverythingCommunity
Ορίστε ο σύνδεσμος.
Έχουμε χρησιμοποιήσει τη βιβλιοθήκη SMBus για κώδικα python, τα βήματα για την εγκατάσταση του SMBus στο raspberry pi περιγράφονται εδώ:
pypi.python.org/pypi/smbus-cffi/0.5.1
Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:
# Διανέμεται με άδεια ελεύθερης βούλησης.
# Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρα ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.
# MMA8452Q
# Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module MMA8452Q_I2CS I2C.
εισαγωγή smbus
χρόνο εισαγωγής
# Πάρτε το λεωφορείο I2C
bus = smbus. SMBus (1)
# Διεύθυνση MMA8452Q, 0x1C (28)
# Επιλέξτε μητρώο ελέγχου, 0x2A (42)
# 0x00 (00) Λειτουργία StandBy
bus.write_byte_data (0x1C, 0x2A, 0x00)
# Διεύθυνση MMA8452Q, 0x1C (28)
# Επιλέξτε μητρώο ελέγχου, 0x2A (42)
# 0x01 (01) Ενεργή λειτουργία
bus.write_byte_data (0x1C, 0x2A, 0x01)
# Διεύθυνση MMA8452Q, 0x1C (28)
# Επιλέξτε καταχωρητής διαμόρφωσης, 0x0E (14)
# 0x00 (00) Ορίστε το εύρος σε +/- 2g
bus.write_byte_data (0x1C, 0x0E, 0x00)
ώρα. ύπνος (0,5)
# MMA8452Q διεύθυνση, 0x1C (28)
# Ανάγνωση δεδομένων από 0x00 (0), 7 byte
# Μητρώο κατάστασης, X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB
δεδομένα = bus.read_i2c_block_data (0x1C, 0x00, 7)
# Μετατρέψτε τα δεδομένα
xAccl = (δεδομένα [1] * 256 + δεδομένα [2]) / 16
αν xAccl> 2047:
xAccl -= 4096
yAccl = (δεδομένα [3] * 256 + δεδομένα [4]) / 16
αν yAccl> 2047:
yAccl -= 4096 z
Accl = (δεδομένα [5] * 256 + δεδομένα [6]) / 16
εάν zAccl> 2047:
zAccl -= 4096
# Έξοδος δεδομένων στην οθόνη
εκτύπωση "Επιτάχυνση στον άξονα Χ: %d" %xAccl
εκτύπωση "Επιτάχυνση στον άξονα Υ: %d" %yAccl
εκτύπωση "Επιτάχυνση στον άξονα Z: %d" %zAccl
Βήμα 4: Εφαρμογές:
Το MMA8452Q διαθέτει διάφορες εφαρμογές που περιλαμβάνουν εφαρμογές E-Compass, ανίχνευση στατικού προσανατολισμού που ενσωματώνουν πορτρέτο/τοπίο, πάνω/κάτω, αριστερά/δεξιά, αναγνώριση θέσης πίσω/εμπρός, σημειωματάριο, e-reader και ανίχνευση ανατροπής και ελεύθερης πτώσης φορητού υπολογιστή, σε πραγματικό χρόνο ανίχνευση προσανατολισμού, συμπεριλαμβανομένης της εικονικής πραγματικότητας και του παιχνιδιού 3D ανατροφοδότηση θέσης χρήστη, ανάλυση δραστηριότητας σε πραγματικό χρόνο, όπως καταμέτρηση βημάτων βηματόμετρου, ανίχνευση πτώσης ελεύθερης πτώσης για σκληρό δίσκο, δημιουργία αντιγράφων ασφαλείας GPS νεκρού λογαριασμού και πολλά άλλα.