Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Το BMA250 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο εξαιρετικά χαμηλής ισχύος, 3 αξόνων με μέτρηση υψηλής ανάλυσης (13-bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών 16 bit και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2C. Μετρά τη στατική επιτάχυνση της βαρύτητας σε εφαρμογές ανίχνευσης κλίσης, καθώς και τη δυναμική επιτάχυνση που προκύπτει από κίνηση ή κρούση. Η υψηλή του ανάλυση (3,9 mg/LSB) επιτρέπει τη μέτρηση των αλλαγών κλίσης μικρότερη από 1,0 °.
Σε αυτό το σεμινάριο θα μετρήσουμε την επιτάχυνση και στους τρεις κάθετους άξονες χρησιμοποιώντας BMA250 και σωματίδιο φωτονίου.
Βήμα 1: Απαιτείται υλικό:
Τα υλικά που χρειαζόμαστε για την επίτευξη του στόχου μας περιλαμβάνουν τα ακόλουθα στοιχεία υλικού:
1. BMA250
2. Φωτόνιο σωματιδίων
3. Καλώδιο I2C
4. I2C Shield for Particle Photon
Βήμα 2: Σύνδεση υλικού:
Η ενότητα σύνδεσης υλικού εξηγεί βασικά τις συνδέσεις καλωδίωσης που απαιτούνται μεταξύ του αισθητήρα και του φωτονίου σωματιδίων. Η διασφάλιση των σωστών συνδέσεων είναι η βασική ανάγκη ενώ εργάζεστε σε οποιοδήποτε σύστημα για την επιθυμητή έξοδο. Έτσι, οι απαιτούμενες συνδέσεις είναι οι εξής:
Το BMA250 θα λειτουργεί πάνω από I2C. Ακολουθεί το παράδειγμα διαγράμματος καλωδίωσης, που δείχνει πώς συνδέεται κάθε διασύνδεση του αισθητήρα.
Εκτός συσκευασίας, ο πίνακας έχει διαμορφωθεί για διεπαφή I2C, ως εκ τούτου συνιστούμε τη χρήση αυτής της σύνδεσης εάν είστε αλλιώς αγνωστικιστής. Το μόνο που χρειάζεστε είναι τέσσερα καλώδια!
Απαιτούνται μόνο τέσσερις συνδέσεις ακροδέκτες Vcc, Gnd, SCL και SDA και αυτές συνδέονται με τη βοήθεια καλωδίου I2C.
Αυτές οι συνδέσεις φαίνονται στις παραπάνω εικόνες.
Βήμα 3: Κωδικός για τη μέτρηση της επιτάχυνσης:
Ας ξεκινήσουμε με τον κωδικό σωματιδίων τώρα.
Κατά τη χρήση της μονάδας αισθητήρα με το arduino, συμπεριλαμβάνουμε τη βιβλιοθήκη application.h και spark_wiring_i2c.h. Η βιβλιοθήκη "application.h" και spark_wiring_i2c.h περιέχει τις λειτουργίες που διευκολύνουν την επικοινωνία i2c μεταξύ του αισθητήρα και του σωματιδίου.
Ολόκληρος ο κωδικός σωματιδίων δίνεται παρακάτω για τη διευκόλυνση του χρήστη:
#περιλαμβάνω
#περιλαμβάνω
// Η διεύθυνση BMA250 I2C είναι 0x18 (24)
#define Addr 0x18
int xAccl = 0, yAccl = 0, zAccl = 0;
void setup ()
{
// Ορισμός μεταβλητής
Particle.variable ("i2cdevice", "BMA250");
Particle.variable ("xAccl", xAccl);
Particle.variable ("yAccl", yAccl);
Particle.variable ("zAccl", zAccl);
// Αρχικοποιήστε την επικοινωνία I2C ως MASTER
Wire.begin ();
// Αρχικοποίηση σειριακής επικοινωνίας, ρύθμιση ρυθμού baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλογή καταχωρητή επιλογής εύρους
Wire.write (0x0F);
// Ορίστε εύρος +/- 2g
Wire.write (0x03);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλογή καταχωρητή εύρους ζώνης
Wire.write (0x10);
// Ορίστε εύρος ζώνης 7,81 Hz
Wire.write (0x08);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (300);}
κενός βρόχος ()
{
μη υπογεγραμμένα δεδομένα int [0];
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλογή καταχωρητών δεδομένων (0x02 - 0x07)
Wire.write (0x02);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 6 byte
Wire.requestFrom (Addr, 6)?
// Διαβάστε τα έξι byte
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
εάν (Wire.available () == 6)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
δεδομένα [2] = Wire.read ();
δεδομένα [3] = Wire.read ();
δεδομένα [4] = Wire.read ();
δεδομένα [5] = Wire.read ();
}
καθυστέρηση (300)?
// Μετατρέψτε τα δεδομένα σε 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;
}
// Έξοδος δεδομένων στον πίνακα ελέγχου
Particle.publish ("Acceleration in X-Axis:", String (xAccl));
καθυστέρηση (1000)?
Particle.publish ("Acceleration in Y-Axis:", String (yAccl));
καθυστέρηση (1000)?
Particle.publish ("Acceleration in Z-Axis:", String (zAccl));
καθυστέρηση (1000)?
}
Η συνάρτηση Particle.variable () δημιουργεί τις μεταβλητές για αποθήκευση της εξόδου του αισθητήρα και η λειτουργία Particle.publish () εμφανίζει την έξοδο στον πίνακα ελέγχου της τοποθεσίας.
Η έξοδος του αισθητήρα εμφανίζεται στην παραπάνω εικόνα για αναφορά.
Βήμα 4: Εφαρμογές:
Τα επιταχυνσιόμετρα όπως το BMA250 βρίσκουν ως επί το πλείστον την εφαρμογή του στα παιχνίδια και την αλλαγή προφίλ οθόνης. Αυτή η μονάδα αισθητήρα χρησιμοποιείται επίσης στο προηγμένο σύστημα διαχείρισης ενέργειας για κινητές εφαρμογές. Το BMA250 είναι ένας τριαξονικός ψηφιακός αισθητήρας επιτάχυνσης ο οποίος ενσωματώνεται με έναν έξυπνο ελεγκτή διακοπής ενεργοποίησης κίνησης στο τσιπ.
Συνιστάται:
Μέτρηση της επιτάχυνσης χρησιμοποιώντας ADXL345 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση της επιτάχυνσης χρησιμοποιώντας το ADXL345 και το σωματίδιο φωτονίου: Το ADXL345 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο 3 αξόνων, εξαιρετικά χαμηλής ισχύος, με υψηλή ανάλυση (13 bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών ψηφίων 16 και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2 C. Μετρά τα
Μέτρηση μαγνητικού πεδίου χρησιμοποιώντας HMC5883 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση μαγνητικού πεδίου χρησιμοποιώντας το HMC5883 και το σωματίδιο φωτονίου: Το HMC5883 είναι μια ψηφιακή πυξίδα σχεδιασμένη για μαγνητική ανίχνευση χαμηλού πεδίου. Αυτή η συσκευή έχει ευρύ φάσμα μαγνητικού πεδίου +/- 8 Oe και ρυθμό εξόδου 160 Hz. Ο αισθητήρας HMC5883 περιλαμβάνει αυτόματους οδηγούς απομάκρυνσης ιμάντων, ακύρωση offset και
Μέτρηση θερμοκρασίας χρησιμοποιώντας MCP9803 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση θερμοκρασίας χρησιμοποιώντας το MCP9803 και το σωματίδιο φωτονίου: Το MCP9803 είναι ένας αισθητήρας θερμοκρασίας υψηλής ακρίβειας 2 συρμάτων. Είναι ενσωματωμένα με προγραμματιζόμενους από τον χρήστη καταχωρητές που διευκολύνουν τις εφαρμογές ανίχνευσης θερμοκρασίας. Αυτός ο αισθητήρας είναι κατάλληλος για εξαιρετικά εξελιγμένο σύστημα παρακολούθησης θερμοκρασίας πολλαπλών ζωνών. Σε
Μέτρηση πίεσης χρησιμοποιώντας CPS120 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση πίεσης με χρήση CPS120 και Parton Photon: Το CPS120 είναι υψηλής ποιότητας και χαμηλού κόστους χωρητικός αισθητήρας απόλυτης πίεσης με πλήρως αντισταθμισμένη έξοδο. Καταναλώνει πολύ λιγότερη ενέργεια και περιλαμβάνει έναν εξαιρετικά μικρό μικροηλεκτρομηχανικό αισθητήρα (MEMS) για τη μέτρηση της πίεσης. Βασισμένο σε σίγμα-δέλτα
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και σωματίδιο φωτονίου: Το HDC1000 είναι ένας ψηφιακός αισθητήρας υγρασίας με ενσωματωμένο αισθητήρα θερμοκρασίας που παρέχει εξαιρετική ακρίβεια μέτρησης σε πολύ χαμηλή ισχύ. Η συσκευή μετρά την υγρασία με βάση έναν νέο χωρητικό αισθητήρα. Οι αισθητήρες υγρασίας και θερμοκρασίας είναι