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

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

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

Βίντεο: Μέτρηση της επιτάχυνσης με χρήση H3LIS331DL και Raspberry Pi: 4 βήματα
Βίντεο: Ένα πείραμα με απλά μέσα για τη μέτρηση της επιτάχυνσης. 2024, Νοέμβριος
Anonim
Image
Image

Το H3LIS331DL, είναι ένα γραμμικό επιταχυνσιόμετρο 3 αξόνων χαμηλής ισχύος υψηλής απόδοσης που ανήκει στην οικογένεια «νανο», με ψηφιακή σειριακή διεπαφή I²C. Το H3LIS331DL διαθέτει πλήρεις κλίμακες επιλογής από user 100g/± 200g/± 400g και είναι σε θέση να μετρήσει επιταχύνσεις με ρυθμούς δεδομένων εξόδου από 0,5 Hz έως 1 kHz. Το H3LIS331DL είναι εγγυημένο ότι λειτουργεί σε εκτεταμένο εύρος θερμοκρασιών από -40 ° C έως +85 ° C.

Σε αυτό το σεμινάριο θα δείξουμε τη διασύνδεση του H3LIS331DL με το Raspberry Pi, χρησιμοποιώντας το python ως γλώσσα προγραμματισμού.

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

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

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

1. H3LIS331DL

2. Raspberry Pi

3. Καλώδιο I2C

4. I2C Shield για raspberry pi

5. Καλώδιο Ethernet

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

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

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

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

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

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

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

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

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

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

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

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

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

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

εισαγωγή smbus

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

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

# H3LIS331DL διεύθυνση, 0x18 (24)

# Επιλογή καταχωρητή ελέγχου 1, 0x20 (32)

# 0x27 (39) Λειτουργία ενεργοποίησης, Ρυθμός εξόδου δεδομένων = 50 Hz# X, Y, Z-Axis

bus.write_byte_data (0x18, 0x20, 0x27)

# H3LIS331DL διεύθυνση, 0x18 (24)# Επιλογή καταχωρητή ελέγχου 4, 0x23 (35)

# 0x00 (00) Συνεχής ενημέρωση, Επιλογή πλήρους κλίμακας = +/- 100g

bus.write_byte_data (0x18, 0x23, 0x00)

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

# H3LIS331DL διεύθυνση, 0x18 (24)

# Ανάγνωση δεδομένων από 0x28 (40), 2 byte

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x18, 0x28)

data1 = bus.read_byte_data (0x18, 0x29)

# Μετατρέψτε το dataxAccl = data1 * 256 + data0

αν xAccl> 32767:

xAccl -= 65536

# H3LIS331DL διεύθυνση, 0x18 (24)

# Ανάγνωση δεδομένων από 0x2A (42), 2 byte

# Y-Axis LSB, Y-Axis MSB

data0 = bus.read_byte_data (0x18, 0x2A)

data1 = bus.read_byte_data (0x18, 0x2B)

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

yAccl = data1 * 256 + data0

αν yAccl> 32767:

yAccl -= 65536

# H3LIS331DL διεύθυνση, 0x18 (24)

# Ανάγνωση δεδομένων από 0x2C (44), 2 byte

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x18, 0x2C)

data1 = bus.read_byte_data (0x18, 0x2D)

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

zAccl = data1 * 256 + data0

εάν zAccl> 32767:

zAccl -= 65536

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

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

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

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

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

$> python H3LIS331DL.py gt; python H3LIS331DL.py

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

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

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

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

Συνιστάται: