İçindekiler:
Video: H3LIS331DL ve Raspberry Pi Kullanarak İvme Ölçümü: 4 Adım
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
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:
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ı 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:
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:
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.