İçindekiler:

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

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

Video: Raspberry Pi MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Java Eğitimi: 4 Adım
Video: DERS-12- I2C INTERRUPT MODE 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 java 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 Java kodu GitHub depomuzdan indirilebilir - Dcube Store

İşte aynısı için bağlantı:

github.com/DcubeTechVentures/MMA8452Q

Java kodu için pi4j kütüphanesini kullandık, pi4j'yi ahududu pi'ye kurma adımları burada açıklanmıştır:

pi4j.com/install.html

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

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

// İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.

// MMA8452Q

// Bu kod, Dcube Store'da bulunan MMA8452Q_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.

com.pi4j.io.i2c. I2CBus'u içe aktarın;

com.pi4j.io.i2c. I2CDevice'ı içe aktarın;

com.pi4j.io.i2c. I2CFFactory'yi içe aktarın;

java.io. IOException'ı içe aktarın;

genel sınıf MMA8452Q

{

public static void main(String args) İstisna atar

{

// I2C veri yolu oluştur

I2CBus veri yolu = I2CFactory.getInstance(I2CBus. BUS_1);

// I2C cihazını al, MMA8452Q I2C adresi 0x1C(28)

I2CDevice cihazı = bus.getDevice(0x1C);

// Bekleme komutu gönder

device.write(0x2A, (bayt)0x00);

// Aktif komut gönder

device.write(0x2A, (bayt)0x01);

// Aralığı +/-2g'ye ayarla

device.write(0x0E, (bayt)0x00);

thread.sleep(500);

// 0x00(0) adresinden 7 bayt veri oku

// Durum, X msb, X lsb, Y msb, Y lsb, Z msb, Z lsb

bayt veri = yeni bayt[7];

device.read(0x00, veri, 0, 7);

// Değerleri dönüştür

int xAccl = (((veri[1] & 0xFF) * 256) + (veri[2] & 0xFF)) / 16;

eğer (xAccl > 2047)

{

xAccl = xAccl - 4096;

}

int yAccl = (((veri[3] & 0xFF) * 256) + (veri[4] & 0xFF)) / 16;

if (yAccl > 2047)

{

yAccl = yAccl - 4096;

}

int zAccl = (((veri[5] & 0xFF) * 256) + (veri[6] & 0xFF)) / 16;

if (zAccl > 2047)

{

zAccl = zAccl - 4096;

}

// Ekrana veri çıktısı

System.out.printf("X Ekseni: %d %n", xAccl);

System.out.printf("Y Ekseni: %d %n", yAccl);

System.out.printf("Z-Ekseni: %d %n", 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: