İçindekiler:

H3LIS331DL ve Raspberry Pi Kullanarak İvme Ölçümü: 4 Adım
H3LIS331DL ve Raspberry Pi Kullanarak İvme Ölçümü: 4 Adım

Video: H3LIS331DL ve Raspberry Pi Kullanarak İvme Ölçümü: 4 Adım

Video: H3LIS331DL ve Raspberry Pi Kullanarak İvme Ölçümü: 4 Adım
Video: MPU6050 Kullanımı [İvme ve Jiroskop Sensörlü] - Raspberry Pi 3 İle #17 2024, Aralık
Anonim
Image
Image

H3LIS331DL, dijital I²C seri arabirimli, “nano” ailesine ait, düşük güçlü, yüksek performanslı, 3 eksenli bir doğrusal ivmeölçerdir. H3LIS331DL, kullanıcı tarafından seçilebilir ±100g/±200g/±400g tam ölçeklere sahiptir ve 0,5 Hz ila 1 kHz çıkış veri hızları ile ivmeleri ölçebilir. H3LIS331DL'nin -40 °C ila +85 °C arasında geniş bir sıcaklık aralığında çalışması garanti edilir.

Bu derste, programlama dili olarak python kullanarak H3LIS331DL'nin Raspberry Pi ile arayüzlenmesini göstereceğiz.

Adım 1: Donanım Gerekli:

Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım

Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:

1. H3LIS331DL

2. Ahududu Pi

3. I2C Kablosu

4. Ahududu pi için I2C Kalkanı

5. Ethernet Kablosu

Adım 2: Donanım Bağlantısı:

Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı

Donanım bağlantısı bölümü temel olarak sensör ve ahududu pi arasında gerekli olan kablo bağlantılarını açıklar. İstenilen çıktı için herhangi bir sistem üzerinde çalışırken doğru bağlantıların sağlanması temel zorunluluktur. Yani, gerekli bağlantılar aşağıdaki gibidir:

H3LIS331DL, I2C üzerinde çalışacaktır. Sensörün her bir arayüzünün nasıl bağlanacağını gösteren örnek kablo şeması buradadır.

Kutudan çıktığı gibi, kart bir I2C arayüzü için yapılandırılmıştır, bu nedenle, aksi takdirde agnostik iseniz bu bağlantıyı kullanmanızı öneririz. Tek ihtiyacınız olan dört tel!

Vcc, Gnd, SCL ve SDA pinlerinden sadece dört bağlantı gereklidir ve bunlar I2C kablosu yardımıyla bağlanır.

Bu bağlantılar yukarıdaki resimlerde gösterilmiştir.

Adım 3: İvme Ölçümü için Python Kodu:

İvme Ölçümü için Python Kodu
İvme Ölçümü için Python Kodu

ahududu pi kullanmanın avantajı, kartı programlamak istediğiniz programlama dilinin, sensörle arayüz oluşturmak için size esneklik sağlamasıdır. Bu kartın bu avantajından yararlanarak, burada programlamasını python'da gösteriyoruz. Python, en kolay sözdizimine sahip en kolay programlama dillerinden biridir. H3LIS331DL için python kodu, DCUBE Store olan github topluluğumuzdan indirilebilir.

Kullanıcıların kolaylığının yanı sıra, kodu burada da açıklıyoruz:

Kodlamanın ilk adımı olarak, python durumunda SMBus kitaplığını indirmeniz gerekir, çünkü bu kitaplık kodda kullanılan işlevleri destekler. Bu nedenle, kütüphaneyi indirmek için aşağıdaki bağlantıyı ziyaret edebilirsiniz:

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

Çalışma kodunu buradan da kopyalayabilirsiniz:

smbus'u içe aktar

ithalat zamanı

# I2C veri yolunu al = smbus. SMBus(1)

# H3LIS331DL adresi, 0x18(24)

# Kontrol kaydı seç 1, 0x20(32)

# 0x27(39) Güç AÇIK modu, Veri çıkış hızı = 50 Hz# X, Y, Z Ekseni etkin

bus.write_byte_data(0x18, 0x20, 0x27)

# H3LIS331DL adresi, 0x18(24)# Kontrol kaydı 4'ü seçin, 0x23(35)

# 0x00(00) Sürekli güncelleme, Tam ölçek seçimi = +/-100g

bus.write_byte_data(0x18, 0x23, 0x00)

zaman.uyku(0.5)

# H3LIS331DL adresi, 0x18(24)

# 0x28(40), 2 bayttan veriyi geri oku

# X Ekseni LSB, X Ekseni MSB

data0 = bus.read_byte_data(0x18, 0x28)

data1 = bus.read_byte_data(0x18, 0x29)

# dataxAccl = data1 * 256 + data0 dönüştürün

xAccl > 32767 ise:

xAccl -= 65536

# H3LIS331DL adresi, 0x18(24)

# 0x2A(42), 2 bayttan veriyi geri oku

# Y Ekseni LSB, Y Ekseni MSB

data0 = bus.read_byte_data(0x18, 0x2A)

data1 = bus.read_byte_data(0x18, 0x2B)

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

yAccl = veri1 * 256 + veri0

yAccl > 32767 ise:

yAccl -= 65536

# H3LIS331DL adresi, 0x18(24)

# 0x2C(44), 2 bayttan veriyi geri oku

# Z Ekseni LSB, Z Ekseni MSB

data0 = bus.read_byte_data(0x18, 0x2C)

data1 = bus.read_byte_data(0x18, 0x2D)

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

zAccl = veri1 * 256 + veri0

zAccl > 32767 ise:

zAccl -= 65536

# Ekrana veri çıkışı

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

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

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

Kod aşağıdaki komut kullanılarak yürütülür:

$> piton H3LIS331DL.py gt; piton H3LIS331DL.py

Sensörün çıkışı, kullanıcının referans olması için yukarıdaki resimde gösterilmektedir.

Adım 4: Uygulamalar:

Uygulamalar
Uygulamalar

H3LIS331DL gibi ivmeölçerler, uygulamalarını çoğunlukla oyunlarda bulur ve profil değiştirmeyi görüntüler. Bu sensör modülü, mobil uygulamalar için gelişmiş güç yönetim sisteminde de kullanılır. H3LIS331DL, akıllı bir çip üzerinde hareketle tetiklenen kesinti kontrolörü ile birleştirilmiş üç eksenli bir dijital hızlanma sensörüdür.

Önerilen: