Daftar Isi:

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

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

Video: Pengukuran Percepatan Menggunakan ADXL345 dan Raspberry Pi: 4 Langkah
Video: belajar menggunakan ADXL345 dan library Accelerometer ADXL345 2024, Juli
Anonim
Image
Image

ADXL345 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 I2 C. 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 antarmuka modul sensor ADXL345 dengan raspberry pi ditunjukkan dan pemrogramannya menggunakan bahasa python juga telah diilustrasikan. Untuk membaca nilai akselerasi pada semua 3-sumbu, kami telah menggunakan raspberry pi dengan adaptor I2C. Adaptor I2C ini membuat koneksi ke modul sensor menjadi mudah dan lebih andal.

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

2. Raspberry Pi

3. Kabel I2C

4. I2C Shield untuk raspberry pi

5. Kabel Ethernet

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 raspberry pi. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:

ADXL345 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 Pengukuran Percepatan:

Kode untuk Pengukuran Percepatan
Kode untuk Pengukuran Percepatan

Keuntungan menggunakan raspberry pi adalah, memberikan Anda fleksibilitas bahasa pemrograman di mana Anda ingin memprogram papan untuk menghubungkan sensor dengannya. Memanfaatkan keunggulan papan ini, kami mendemonstrasikan di sini pemrogramannya dengan python. Kode python untuk ADXL345 dapat diunduh dari komunitas github kami yaitu Komunitas Kontrol Segalanya.

Selain untuk memudahkan pengguna, kami juga menjelaskan kodenya di sini:

Sebagai langkah pertama pengkodean, Anda perlu mengunduh pustaka smbus untuk python, karena pustaka ini mendukung fungsi yang digunakan dalam kode. Nah, untuk mendownload librarynya anda bisa mengunjungi link berikut ini:

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

Anda dapat menyalin kode python yang berfungsi untuk sensor ini dari sini juga:

impor smbus

waktu impor

# Dapatkan bus I2C = smbus. SMBus(1)

# alamat ADXL345, 0x53(83)

# Pilih daftar laju bandwidth, 0x2C(44)

# 0x0A(10) Mode normal, Kecepatan data keluaran = 100 Hz

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

# alamat ADXL345, 0x53(83)

# Pilih register kontrol daya, 0x2D(45)

# 0x08(08) Auto Sleep menonaktifkan

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

# alamat ADXL345, 0x53(83)

# Pilih format data register, 0x31(49)

# 0x08(08) Tes mandiri dinonaktifkan, antarmuka 4-kawat

# Resolusi penuh, Rentang = +/-2g

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

waktu.tidur(0.5)

# alamat ADXL345, 0x53(83)

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

# Sumbu X LSB, Sumbu X MSB

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

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

# Ubah data menjadi 10-bit

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

jika xAccl > 511:

xAccl -= 1024

# alamat ADXL345, 0x53(83)

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

# Sumbu Y LSB, Sumbu Y MSB

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

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

# Ubah data menjadi 10-bit

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

jika yAccl > 511:

yAccl -= 1024

# alamat ADXL345, 0x53(83)

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

# Sumbu Z LSB, Sumbu Z MSB

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

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

# Ubah data menjadi 10-bit

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

jika zAccl > 511:

zAccl -= 1024

# Keluarkan data ke layar

print "Percepatan pada Sumbu X: %d" %xAccl

print "Percepatan pada Sumbu Y: %d" %yAccl

print "Percepatan pada Sumbu Z: %d" %zAccl

Bagian dari kode yang disebutkan di bawah ini mencakup perpustakaan yang diperlukan untuk eksekusi kode python yang benar.

waktu impor smbus

Kode dapat dieksekusi dengan mengetikkan perintah yang disebutkan di bawah ini di command prompt.

$> python ADXL345.py

Output dari sensor juga ditunjukkan pada gambar di atas untuk referensi pengguna.

Langkah 4: Aplikasi:

Aplikasi
Aplikasi

ADXL345 adalah akselerometer 3-sumbu kecil, tipis, berdaya ultra rendah yang dapat digunakan di Handset, Instrumentasi medis, dll. Aplikasinya juga mencakup Gaming dan perangkat penunjuk, instrumentasi Industri, Perangkat navigasi pribadi, dan perlindungan Hard disk drive (HDD).

Direkomendasikan: