Isi kandungan:

Pengukuran Pecutan Menggunakan ADXL345 dan Raspberry Pi: 4 Langkah
Pengukuran Pecutan Menggunakan ADXL345 dan Raspberry Pi: 4 Langkah

Video: Pengukuran Pecutan Menggunakan ADXL345 dan Raspberry Pi: 4 Langkah

Video: Pengukuran Pecutan Menggunakan ADXL345 dan Raspberry Pi: 4 Langkah
Video: PENJELASAN SENSOR AKSELEROMETER 2024, November
Anonim
Image
Image

ADXL345 adalah akselerometer 3-paksi kecil, tipis, kuasa ultra kecil 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 I2 C. 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, antara muka modul sensor ADXL345 dengan raspberry pi ditunjukkan dan pengaturcaraannya menggunakan bahasa python juga telah digambarkan. Untuk membaca nilai pecutan pada semua paksi 3, kami telah menggunakan raspberry pi dengan penyesuai I2C. Penyesuai I2C ini menjadikan sambungan ke modul sensor mudah dan lebih dipercayai.

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. ADXL345

2. Raspberry Pi

3. Kabel I2C

4. I2C Shield untuk raspberry pi

5. Kabel Ethernet

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 raspberry pi. Memastikan sambungan yang betul adalah keperluan asas semasa mengerjakan sistem apa pun untuk output yang diinginkan. Jadi, sambungan yang diperlukan adalah seperti berikut:

ADXL345 akan berfungsi menggunakan 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 Pengukuran Pecutan:

Kod untuk Pengukuran Pecutan
Kod untuk Pengukuran Pecutan

Kelebihan menggunakan raspberry pi adalah, yang memberi anda fleksibiliti bahasa pengaturcaraan di mana anda ingin memprogram papan untuk menghubungkan antara sensor dengannya. Dengan memanfaatkan kelebihan papan ini, kami menunjukkan di sini pengaturcaraannya di python. Kod python untuk ADXL345 boleh dimuat turun dari komuniti github kami iaitu Komuniti Segala-galanya.

Serta untuk kemudahan pengguna, kami menerangkan kodnya di sini juga:

Sebagai langkah pertama pengekodan, anda perlu memuat turun perpustakaan smbus sekiranya berlaku python, kerana perpustakaan ini menyokong fungsi yang digunakan dalam kod. Oleh itu, untuk memuat turun perpustakaan anda boleh melayari pautan berikut:

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

Anda boleh menyalin kod python yang berfungsi untuk sensor ini dari sini juga:

import smbus

masa import

# Dapatkan bus2 I2C = smbus. SMBus (1)

# Alamat ADXL345, 0x53 (83)

# Pilih daftar kadar lebar jalur, 0x2C (44)

# 0x0A (10) Mod normal, Kadar data output = 100 Hz

bas.write_byte_data (0x53, 0x2C, 0x0A)

# Alamat ADXL345, 0x53 (83)

# Pilih daftar kawalan kuasa, 0x2D (45)

# 0x08 (08) Matikan Tidur Auto

bas.write_byte_data (0x53, 0x2D, 0x08)

# Alamat ADXL345, 0x53 (83)

# Pilih daftar format data, 0x31 (49)

# 0x08 (08) Ujian kendiri dilumpuhkan, antara muka 4 wayar

# Resolusi penuh, Julat = +/- 2g

bas.write_byte_data (0x53, 0x31, 0x08)

masa. tidur (0.5)

# Alamat ADXL345, 0x53 (83)

# Baca kembali data dari 0x32 (50), 2 bait

# X-Axis LSB, X-Axis MSB

data0 = bas.read_byte_data (0x53, 0x32)

data1 = bas.read_byte_data (0x53, 0x33)

# Tukar data menjadi 10-bit

xAccl = ((data1 & 0x03) * 256) + data0

jika xAccl> 511:

xAccl - = 1024

# Alamat ADXL345, 0x53 (83)

# Baca kembali data dari 0x34 (52), 2 bait

# Y-Axis LSB, Y-Axis MSB

data0 = bas.read_byte_data (0x53, 0x34)

data1 = bas.read_byte_data (0x53, 0x35)

# Tukar data menjadi 10-bit

yAccl = ((data1 & 0x03) * 256) + data0

jika yAccl> 511:

yAccl - = 1024

# Alamat ADXL345, 0x53 (83)

# Baca kembali data dari 0x36 (54), 2 bait

# Z-Axis LSB, Z-Axis MSB

data0 = bas.read_byte_data (0x53, 0x36)

data1 = bas.read_byte_data (0x53, 0x37)

# Tukar data menjadi 10-bit

zAccl = ((data1 & 0x03) * 256) + data0

jika zAccl> 511:

zAccl - = 1024

# Keluarkan data ke skrin

cetak "Pecutan dalam X-Axis:% d"% xAccl

cetak "Pecutan dalam Paksi-Y:% d"% yAccl

cetak "Pecutan dalam Z-Axis:% d"% zAccl

Bahagian kod yang disebutkan di bawah merangkumi perpustakaan yang diperlukan untuk pelaksanaan kod python yang betul.

import masa smbusimport

Kod tersebut dapat dijalankan dengan mengetik perintah yang disebutkan di bawah ini di command prompt.

$> python ADXL345.py

Output sensor juga ditunjukkan dalam gambar di atas untuk rujukan pengguna.

Langkah 4: Aplikasi:

Permohonan
Permohonan

ADXL345 adalah kecil, tipis, daya ultralow, akselerometer 3-paksi yang dapat digunakan di Handset, alat perubatan dll. Aplikasinya juga merangkumi Perisian permainan dan penunjuk, Instrumentasi industri, Peranti navigasi peribadi dan perlindungan cakera keras (HDD).

Disyorkan: