İçindekiler:

Raspberry Pi MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Python Eğitimi: 4 Adım
Raspberry Pi MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Python Eğitimi: 4 Adım

Video: Raspberry Pi MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Python Eğitimi: 4 Adım

Video: Raspberry Pi MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Python Eğitimi: 4 Adım
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Temmuz
Anonim
Image
Image

MMA8452Q, 12 bit çözünürlüğe sahip akıllı, düşük güçlü, üç eksenli, kapasitif, mikro makinede işlenmiş bir ivmeölçerdir. İvmeölçerdeki yerleşik fonksiyonların yardımıyla, iki kesme pinine yapılandırılabilen esnek, kullanıcı tarafından programlanabilen seçenekler sunulur. Kullanıcı tarafından seçilebilen ±2g/±4g/±8g tam ölçeklere sahip olup, yüksek geçişli filtre filtreli veriler ve filtrelenmemiş veriler gerçek zamanlı olarak mevcuttur. İşte python kodunu kullanarak ahududu pi ile gösterimi.

Adım 1: İhtiyacınız Olan Şey..!

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!

1. Ahududu Pi

2. MMA8452Q

3. I²C Kablosu

4. Raspberry Pi için I²C Kalkanı

5. Ethernet Kablosu

Adım 2: Bağlantılar:

Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar

Ahududu pi için bir I2C kalkanı alın ve ahududu pi'nin gpio pimlerinin üzerine hafifçe itin.

Ardından I2C kablosunun bir ucunu MMA8452Q sensörüne ve diğer ucunu I2C blendajına bağlayın.

Ayrıca Ethernet kablosunu pi'ye bağlayın veya bir WiFi modülü kullanabilirsiniz.

Bağlantılar yukarıdaki resimde gösterilmiştir.

Adım 3: Kod:

Kod
Kod

MMA8452Q için python kodu github depomuzdan indirilebilir - ControlEverythingCommunity

Bağlantı burada.

Python kodu için SMBus kütüphanesini kullandık, raspberry pi'ye SMBus kurma adımları burada açıklanmıştır:

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

Kodu buradan da kopyalayabilirsiniz, aşağıdaki şekilde verilmiştir:

# Özgür irade lisansıyla dağıtılır.

# İlgili eserlerinin lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.

# MMA8452Q

# Bu kod, MMA8452Q_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.

smbus'u içe aktar

ithalat zamanı

# I2C veri yolunu alın

veri yolu = smbus. SMBus(1)

# MMA8452Q adresi, 0x1C(28)

# Kontrol kaydı seçin, 0x2A(42)

# 0x00(00) Bekleme modu

bus.write_byte_data(0x1C, 0x2A, 0x00)

# MMA8452Q adresi, 0x1C(28)

# Kontrol kaydı seçin, 0x2A(42)

# 0x01(01) Aktif mod

bus.write_byte_data(0x1C, 0x2A, 0x01)

# MMA8452Q adresi, 0x1C(28)

# Konfigürasyon kaydını seçin, 0x0E(14)

# 0x00(00) Aralığı +/- 2g olarak ayarla

bus.write_byte_data(0x1C, 0x0E, 0x00)

zaman.uyku(0.5)

# MMA8452Q adresi, 0x1C(28)

# 0x00(0), 7 bayttan veriyi geri oku

# Durum kaydı, X Ekseni MSB, X Ekseni LSB, Y Ekseni MSB, Y Ekseni LSB, Z Ekseni MSB, Z Ekseni LSB

veri = bus.read_i2c_block_data(0x1C, 0x00, 7)

# Verileri dönüştürün

xAccl = (veri[1] * 256 + veri[2]) / 16

xAccl > 2047 ise:

xAccl -= 4096

yAccl = (veri[3] * 256 + veri[4]) / 16

yAccl > 2047 ise:

yAccl -= 4096 z

Accl = (veri[5] * 256 + veri[6]) / 16

zAccl > 2047 ise:

zAccl -= 4096

# Ekrana veri çıkışı

print "X Ekseninde Hızlanma: %d" %xAccl

print "Y Ekseninde Hızlanma: %d" %yAccl

print "Z-Ekseninde Hızlanma: %d" %zAccl

Adım 4: Uygulamalar:

MMA8452Q, E-Pusula uygulamaları, Dikey/Yatay, Yukarı/Aşağı, Sol/Sağ, Arka/Ön konum tanımlama, Dizüstü Bilgisayar, e-okuyucu ve Dizüstü Bilgisayar Düşme ve Serbest Düşme Algılamayı içeren Statik yön algılama, Gerçek zamanlı gibi çeşitli uygulamalara sahiptir. sanal gerçeklik ve oyun 3D kullanıcı konumu geri bildirimi dahil oryantasyon algılama, pedometre adım sayma gibi gerçek zamanlı etkinlik analizi, HDD için serbest düşüş algılama, ölü hesaplama GPS yedekleme ve çok daha fazlası.

Önerilen: