İçindekiler:

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

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

Video: Raspberry Pi - ADXL345 3 Eksenli İvmeölçer Python Eğitimi: 4 Adım
Video: BBC micro:bit-İvme Sensörü İle Eğim Ölçümü 2024, Kasım
Anonim

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 python kodunu kullanarak ahududu pi ile gösteri.

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

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
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ı:

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

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 python kodu GitHub depomuzdan indirilebilir - Dcube Store

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

github.com/DcubeTechVentures/ADXL345..

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.

# ADXL345

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

# ADXL345 adresi, 0x53(83)

# Bant genişliği oranı kaydı seçin, 0x2C(44)# 0x0A(10) Normal mod, Çıkış veri hızı = 100 Hz

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

# ADXL345 adresi, 0x53(83)

# Güç kontrol kaydını seçin, 0x2D(45)

# 0x08(08) Otomatik Uyku devre dışı

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

# ADXL345 adresi, 0x53(83)

# Veri formatı kaydı seçin, 0x31(49)

# 0x08(08) Kendi kendine test devre dışı, 4 kablolu arayüz

# Tam çözünürlük, Aralık = +/-2g

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

zaman.uyku(0.5)

# ADXL345 adresi, 0x53(83)

# 0x32(50), 2 bayttan veriyi geri oku

# X Ekseni LSB, X Ekseni MSB

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

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

# Veriyi 10 bit'e dönüştürün

xAccl = ((veri1 ve 0x03) * 256) + veri0

xAccl > 511 ise:

xAccl -= 1024

# ADXL345 adresi, 0x53(83)

# 0x34(52), 2 bayttan veriyi geri oku

# Y Ekseni LSB, Y Ekseni MSB

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

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

# Veriyi 10 bit'e dönüştürün

yAccl = ((veri1 ve 0x03) * 256) + veri0

yAccl > 511 ise:

yAccl -= 1024

# ADXL345 adresi, 0x53(83)

# 0x36(54), 2 bayttan veriyi geri oku

# Z Ekseni LSB, Z Ekseni MSB

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

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

# Veriyi 10 bit'e dönüştürün

zAccl = ((veri1 ve 0x03) * 256) + veri0

zAccl > 511 ise:

zAccl -= 1024

# 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:

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: