Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
MMA8452Q adalah akselerometer micromachined yang cerdas, berdaya rendah, tiga sumbu, kapasitif, dengan resolusi 12 bit. Opsi yang dapat diprogram pengguna yang fleksibel disediakan dengan bantuan fungsi tertanam di akselerometer, dapat dikonfigurasi untuk dua pin interupsi. Ini memiliki skala penuh yang dapat dipilih pengguna ±2g/±4g/±8g dengan data terfilter filter high-pass serta data non-filter yang tersedia secara real-time. Berikut adalah demonstrasinya dengan raspberry pi menggunakan kode python.
Langkah 1: Yang Anda Butuhkan.
1. Raspberry Pi
2. MMA8452Q
3. Kabel I²C
4. Perisai I²C untuk Raspberry Pi
5. Kabel Ethernet
Langkah 2: Koneksi:
Ambil pelindung I2C untuk raspberry pi dan dorong perlahan ke atas pin gpio dari raspberry pi.
Kemudian sambungkan salah satu ujung kabel I2C ke sensor MMA8452Q dan ujung lainnya ke pelindung I2C.
Hubungkan juga kabel Ethernet ke pi atau Anda dapat menggunakan modul WiFi.
Koneksi ditunjukkan pada gambar di atas.
Langkah 3: Kode:
Kode python untuk MMA8452Q dapat diunduh dari repositori github kami- ControlEverythingCommunity
Ini tautannya.
Kami telah menggunakan perpustakaan SMBus untuk kode python, langkah-langkah untuk menginstal SMBus pada raspberry pi dijelaskan di sini:
pypi.python.org/pypi/smbus-cffi/0.5.1
Anda juga dapat menyalin kode dari sini, diberikan sebagai berikut:
# Didistribusikan dengan lisensi kehendak bebas.
# Gunakan dengan cara apa pun yang Anda inginkan, untung atau gratis, asalkan sesuai dengan lisensi karya terkaitnya.
#MMA8452Q
# Kode ini dirancang untuk bekerja dengan Modul Mini MMA8452Q_I2CS I2C.
impor smbus
waktu impor
# Dapatkan bus I2C
bus = smbus. SMBus(1)
# Alamat MMA8452Q, 0x1C(28)
# Pilih Kontrol register, 0x2A(42)
# 0x00(00) mode Siaga
bus.write_byte_data(0x1C, 0x2A, 0x00)
# Alamat MMA8452Q, 0x1C(28)
# Pilih Kontrol register, 0x2A(42)
# 0x01(01) Mode aktif
bus.write_byte_data(0x1C, 0x2A, 0x01)
# Alamat MMA8452Q, 0x1C(28)
# Pilih Daftar konfigurasi, 0x0E (14)
# 0x00(00) Setel rentang ke +/- 2g
bus.write_byte_data(0x1C, 0x0E, 0x00)
waktu.tidur(0.5)
# Alamat MMA8452Q, 0x1C(28)
# Baca data kembali dari 0x00(0), 7 byte
# Status register, MSB Sumbu X, LSB Sumbu X, MSB Sumbu Y, LSB Sumbu Y, MSB Sumbu Z, LSB Sumbu Z
data = bus.read_i2c_block_data(0x1C, 0x00, 7)
# Konversi data
xAccl = (data[1] * 256 + data[2]) / 16
jika xAccl > 2047:
xAccl -= 4096
yAccl = (data[3] * 256 + data[4]) / 16
jika yAccl > 2047:
yAccl -= 4096 z
Accl = (data[5] * 256 + data[6]) / 16
jika zAccl > 2047:
zAccl -= 4096
# 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
Langkah 4: Aplikasi:
MMA8452Q memiliki berbagai aplikasi yang meliputi aplikasi E-Compass, Deteksi orientasi statis yang menggabungkan Portrait/Landscape, Atas/Bawah, Kiri/Kanan, identifikasi posisi Belakang/Depan, Notebook, e-reader, dan Laptop Jatuh dan Deteksi Jatuh, Real-time deteksi orientasi termasuk realitas virtual dan umpan balik posisi pengguna game 3D, Analisis aktivitas waktu nyata seperti penghitungan langkah pedometer, deteksi jatuh bebas untuk HDD, pencadangan GPS perhitungan mati, dan banyak lagi.