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

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

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

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

Το 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 είναι ένας τριαξονικός ψηφιακός αισθητήρας επιτάχυνσης ο οποίος ενσωματώνεται με έναν έξυπνο ελεγκτή διακοπής ενεργοποίησης κίνησης στο τσιπ.

Συνιστάται: