İçindekiler:

Raspberry Pi - ADXL345 3-Eksen İvmeölçer Java Eğitimi: 4 Adım
Raspberry Pi - ADXL345 3-Eksen İvmeölçer Java Eğitimi: 4 Adım

Video: Raspberry Pi - ADXL345 3-Eksen İvmeölçer Java Eğitimi: 4 Adım

Video: Raspberry Pi - ADXL345 3-Eksen İvmeölçer Java Eğitimi: 4 Adım
Video: ESP32 Web Server with MPU-6050 Accelerometer and Gyroscope (3D object representation) 2024, Temmuz
Anonim
Image
Image

ADXL345, ±16 g'a kadar yüksek çözünürlüklü (13 bit) ölçüme sahip küçük, ince, ultra düşük güçlü, 3 eksenli bir ivmeölçerdir. Dijital çıkış verileri, 16 bitlik ikili tamamlayıcı olarak biçimlendirilir ve I2 C dijital arabirimi aracılığıyla erişilebilir. Eğim algılama uygulamalarında yerçekiminin statik ivmesini ve ayrıca hareket veya şoktan kaynaklanan dinamik ivmeyi ölçer. Yüksek çözünürlüğü (3,9 mg/LSB), 1.0°'den daha düşük eğim değişikliklerinin ölçülmesini sağlar. İşte java kodunu kullanarak ahududu pi ile gösteri.

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

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

1. Ahududu Pi

2. ADXL345

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

ADXL345 için java kodu GitHub depomuzdan indirilebilir - Dcube Store

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

github.com/DcubeTechVentures/ADXL345

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.

// ADXL345

// Bu kod, Dcube Store'da bulunan ADXL345_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 ADXL345

{

public static void main(String args) İstisna atar

{

// I2C veri yolu oluştur

I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);

// I2C cihazını al, cihazın I2C adresi 0x53(83)

I2CDevice cihazı = Bus.getDevice(0x53);

// Bant genişliği oranı kaydını seç

// Normal mod, Çıkış veri hızı = 100 Hz

device.write(0x2C, (bayt)0x0A);

// Güç kontrol kaydını seç

// Otomatik uyku devre dışı

device.write(0x2D, (bayt)0x08);

// Veri formatı kaydını seçin

// Kendi kendine test devre dışı, 4 kablolu arayüz, Tam çözünürlük, aralık = +/-2g

device.write(0x31, (bayt)0x08);

thread.sleep(500);

// 6 bayt veri oku

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

bayt veri = yeni bayt[6];

data[0] = (bayt)device.read(0x32);

data[1] = (bayt)device.read(0x33);

data[2] = (bayt)device.read(0x34);

data[3] = (bayt)device.read(0x35);

veri[4] = (bayt)device.read(0x36);

veri[5] = (bayt)device.read(0x37);

// Veriyi 10 bit'e çevir

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

if(xAccl > 511)

{

xAccl -= 1024;

}

int yAccl = ((veri[3] ve 0x03) * 256 + (veri[2] ve 0xFF));

if(yAccl > 511)

{

yAccl -= 1024;

}

int zAccl = ((veri[5] & 0x03) * 256 + (veri[4] & 0xFF));

if(zAccl > 511)

{

zAccl -= 1024;

}

// Ekrana veri çıktısı

System.out.printf("X Ekseninde İvme: %d %n", xAccl);

System.out.printf("Y Ekseninde İvme: %d %n", yAccl);

System.out.printf("Z Ekseninde İvme: %d %n", zAccl);

}

}

Adım 4: Uygulamalar:

ADXL345, Ahizelerde, Tıbbi enstrümantasyonda vb. kullanılabilecek küçük, ince, ultra düşük güçlü, 3 eksenli bir ivmeölçerdir. Uygulaması ayrıca Oyun ve işaretleme cihazları, Endüstriyel enstrümantasyon, Kişisel navigasyon cihazları ve Sabit disk sürücüsü (HDD) korumasını içerir.

Önerilen: