Isi kandungan:

Pengukuran Pecutan Menggunakan BMA250 dan Foton Zarah: 4 Langkah
Pengukuran Pecutan Menggunakan BMA250 dan Foton Zarah: 4 Langkah

Video: Pengukuran Pecutan Menggunakan BMA250 dan Foton Zarah: 4 Langkah

Video: Pengukuran Pecutan Menggunakan BMA250 dan Foton Zarah: 4 Langkah
Video: GAMPANG!! Cara pasang gombyok pecut// gombyok bulat #pecut #gambuh @hqpecutponcokusumo 2024, Julai
Anonim
Image
Image

BMA250 adalah kecil, tipis, kuasa ultralow, akselerometer 3-paksi dengan ukuran resolusi tinggi (13-bit) hingga ± 16 g. Data output digital diformat sebagai pelengkap dua-bit 16-bit dan dapat diakses melalui antara muka digital I2C. Ini mengukur percepatan graviti statik dalam aplikasi penginderaan kecondongan, serta percepatan dinamis yang dihasilkan dari gerakan atau kejutan. Resolusi tinggi (3.9 mg / LSB) memungkinkan pengukuran perubahan kecenderungan kurang dari 1.0 °.

Dalam tutorial ini kita akan mengukur pecutan di ketiga paksi tegak lurus menggunakan BMA250 dan partikel foton.

Langkah 1: Perkakasan Diperlukan:

Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan

Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:

1. BMA250

2. Foton Zarah

3. Kabel I2C

4. Perisai I2C untuk Foton Zarah

Langkah 2: Penyambungan Perkakasan:

Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan

Bahagian penyambungan perkakasan pada dasarnya menerangkan sambungan pendawaian yang diperlukan antara sensor dan foton zarah. Memastikan sambungan yang betul adalah keperluan asas semasa mengerjakan sistem apa pun untuk output yang diinginkan. Jadi, sambungan yang diperlukan adalah seperti berikut:

BMA250 akan berfungsi di atas I2C. Berikut adalah contoh rajah pendawaian, yang menunjukkan cara memasang setiap antara muka sensor.

Di luar kotak, papan dikonfigurasikan untuk antara muka I2C, oleh itu kami mengesyorkan menggunakan penyambungan ini jika anda tidak agnostik. Yang anda perlukan hanyalah empat wayar!

Hanya diperlukan empat sambungan pin Vcc, Gnd, SCL dan SDA dan ini disambungkan dengan bantuan kabel I2C.

Sambungan ini ditunjukkan dalam gambar di atas.

Langkah 3: Kod untuk Mengukur Pecutan:

Kod untuk Mengukur Pecutan
Kod untuk Mengukur Pecutan

Mari mulakan dengan kod zarah sekarang.

Semasa menggunakan modul sensor dengan arduino, kami menyertakan library application.h dan spark_wiring_i2c.h. Perpustakaan "application.h" dan spark_wiring_i2c.h mengandungi fungsi yang memudahkan komunikasi i2c antara sensor dan zarah.

Keseluruhan kod zarah diberikan di bawah untuk kemudahan pengguna:

#sertakan

#sertakan

// Alamat BMA250 I2C adalah 0x18 (24)

#tentukan Addr 0x18

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

persediaan tidak sah ()

{

// Tetapkan pemboleh ubah

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

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// Memulakan komunikasi I2C sebagai MASTER

Wire.begin ();

// Mulakan komunikasi bersiri, tetapkan kadar baud = 9600

Serial.begin (9600);

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar pilihan julat

Wire.write (0x0F);

// Tetapkan julat +/- 2g

Wire.write (0x03);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar lebar jalur

Wire.write (0x10);

// Tetapkan lebar jalur 7.81 Hz

Wire.write (0x08);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

kelewatan (300);}

gelung kosong ()

{

data int yang tidak ditandatangani [0];

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih Daftar Data (0x02 - 0x07)

Wire.write (0x02);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Minta 6 bait

Wire.requestFrom (Addr, 6);

// Baca enam bait

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

jika (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

kelewatan (300);

// Tukarkan 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 papan pemuka

Particle.publish ("Pecutan dalam X-Axis:", String (xAccl));

kelewatan (1000);

Particle.publish ("Pecutan dalam Y-Axis:", String (yAccl));

kelewatan (1000);

Particle.publish ("Pecutan dalam Z-Axis:", String (zAccl));

kelewatan (1000);

}

Fungsi Particle.variable () mencipta pemboleh ubah untuk menyimpan output sensor dan fungsi Particle.publish () memaparkan output di papan pemuka laman web.

Output sensor ditunjukkan dalam gambar di atas untuk rujukan anda.

Langkah 4: Aplikasi:

Permohonan
Permohonan

Accelerometer seperti BMA250 kebanyakannya menggunakan aplikasinya dalam permainan dan menukar profil paparan. Modul sensor ini juga digunakan dalam sistem pengurusan kuasa lanjutan untuk aplikasi mudah alih. BMA250 adalah sensor pecutan digital triaksial yang digabungkan dengan pengawal interrupt yang dicetuskan oleh gerakan on-chip pintar.

Disyorkan: