Daftar Isi:

Pengukuran Percepatan Menggunakan BMA250 dan Foton Partikel: 4 Langkah
Pengukuran Percepatan Menggunakan BMA250 dan Foton Partikel: 4 Langkah

Video: Pengukuran Percepatan Menggunakan BMA250 dan Foton Partikel: 4 Langkah

Video: Pengukuran Percepatan Menggunakan BMA250 dan Foton Partikel: 4 Langkah
Video: Percobaan Penentuan Percepatan Gravitasi Dengan Metode Ayunan Bandul I Praktikum Fisika Dasar 1 2024, November
Anonim
Image
Image

BMA250 adalah akselerometer 3-sumbu kecil, tipis, berdaya ultra rendah dengan pengukuran resolusi tinggi (13-bit) hingga ±16 g. Data keluaran digital diformat sebagai pelengkap berpasangan 16-bit dan dapat diakses melalui antarmuka digital I2C. Ini mengukur akselerasi statis gravitasi dalam aplikasi sensor kemiringan, serta akselerasi dinamis yang dihasilkan dari gerakan atau guncangan. Resolusi tinggi (3,9 mg/LSB) memungkinkan pengukuran perubahan kemiringan kurang dari 1,0°.

Dalam tutorial ini kita akan mengukur percepatan di ketiga sumbu tegak lurus menggunakan BMA250 dan Particle photon.

Langkah 1: Perangkat Keras Yang Dibutuhkan:

Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan

Bahan yang kami butuhkan untuk mencapai tujuan kami meliputi komponen perangkat keras berikut:

1. BMA250

2. Foton Partikel

3. Kabel I2C

4. Perisai I2C untuk Foton Partikel

Langkah 2: Sambungan Perangkat Keras:

Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras

Bagian hookup perangkat keras pada dasarnya menjelaskan koneksi kabel yang diperlukan antara sensor dan foton partikel. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:

BMA250 akan bekerja melalui I2C. Berikut adalah contoh diagram pengkabelan, yang menunjukkan cara memasang setiap antarmuka sensor.

Out-of-the-box, papan dikonfigurasi untuk antarmuka I2C, karena itu kami sarankan menggunakan hookup ini jika Anda agnostik. Yang Anda butuhkan hanyalah empat kabel!

Hanya empat koneksi yang diperlukan pin Vcc, Gnd, SCL dan SDA dan ini terhubung dengan bantuan kabel I2C.

Koneksi ini ditunjukkan pada gambar di atas.

Langkah 3: Kode untuk Mengukur Percepatan:

Kode untuk Mengukur Percepatan
Kode untuk Mengukur Percepatan

Mari kita mulai dengan kode partikel sekarang.

Saat menggunakan modul sensor dengan arduino, kami menyertakan library application.h dan spark_wiring_i2c.h. Pustaka "application.h" dan spark_wiring_i2c.h berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan partikel.

Seluruh kode partikel diberikan di bawah ini untuk kenyamanan pengguna:

#termasuk

#termasuk

// Alamat BMA250 I2C adalah 0x18(24)

#tentukan Addr 0x18

int xAccl = 0, yAccl = 0, zAccl = 0;

batalkan pengaturan()

{

// Tetapkan variabel

Particle.variable("i2cdevice", "BMA250");

Particle.variable("xAccl", xAccl);

Particle.variable("yAccl", yAccl);

Particle.variable("zAccl", zAccl);

// Inisialisasi komunikasi I2C sebagai MASTER

Kawat.mulai();

// Inisialisasi komunikasi serial, setel baud rate = 9600

Serial.begin(9600);

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih daftar pilihan rentang

Wire.write(0x0F);

// Setel rentang +/- 2g

Kawat.tulis (0x03);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih register bandwidth

Kawat.tulis (0x10);

// Setel bandwidth 7,81 Hz

Kawat.tulis (0x08);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

penundaan(300);}

lingkaran kosong()

{

data int tidak ditandatangani[0];

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih Register Data (0x02 0x07)

Kawat.tulis (0x02);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Permintaan 6 byte

Wire.requestFrom(Addr, 6);

// Baca enam byte

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

if(Wire.available() == 6)

{

data[0] = Wire.read();

data[1] = Kawat.baca();

data[2] = Wire.read();

data[3] = Wire.read();

data[4] = Kawat.baca();

data[5] = Wire.read();

}

penundaan (300);

// Ubah data menjadi 10 bit

xAccl = ((data[1] * 256) + (data[0] & 0xC0)) / 64;

jika (xAccl > 511)

{

xAccl -= 1024;

}

yAccl = ((data[3] * 256) + (data[2] & 0xC0)) / 64;

jika (yAccl > 511)

{

yAccl -= 1024;

}

zAccl = ((data[5] * 256) + (data[4] & 0xC0)) / 64;

jika (zAccl > 511)

{

zAccl -= 1024;

}

// Keluarkan data ke dasbor

Particle.publish("Akselerasi pada Sumbu X:", String(xAccl));

penundaan (1000);

Particle.publish("Akselerasi pada Sumbu Y:", String(yAccl));

penundaan (1000);

Particle.publish("Akselerasi pada Sumbu Z:", String(zAccl));

penundaan (1000);

}

Fungsi Particle.variable() membuat variabel untuk menyimpan output sensor dan fungsi Particle.publish() menampilkan output di dasbor situs.

Output sensor ditunjukkan pada gambar di atas untuk referensi Anda.

Langkah 4: Aplikasi:

Aplikasi
Aplikasi

Akselerometer seperti BMA250 kebanyakan menemukan aplikasinya dalam permainan dan perpindahan profil tampilan. Modul sensor ini juga digunakan dalam sistem manajemen daya canggih untuk aplikasi seluler. BMA250 adalah sensor akselerasi digital triaksial yang digabungkan dengan pengontrol interupsi yang dipicu gerakan on-chip yang cerdas.

Direkomendasikan: