İçindekiler:
- Adım 1: Donanım Gerekli:
- Adım 2: Donanım Bağlantısı:
- Adım 3: İvme Ölçümü için Python Kodu:
- Adım 4: Uygulamalar:
Video: BMA250 ve Raspberry Pi Kullanarak Hızlanma Ölçümü: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
BMA250, ±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 I2C 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.
Bu derste, BMA250 ve Raspberry Pi kullanarak üç dikey eksenin tümünde ivmeyi ölçeceğiz. Sensör python dilinde programlanmıştır.
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. BMA250
2. Ahududu Pi
3. I2C Kablosu
4. Raspberry 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:
BMA250, I2C üzerinden ç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:
Raspberry pi kullanmanın avantajı, kartı programlamak istediğiniz programlama dilinin, sensör ile 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. BMA250 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 olması durumunda SMBus kütüphanesini indirmeniz gerekiyor çünkü bu kütüphane kodda kullanılan fonksiyonları destekliyor. 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)
# BMA250 adresi, 0x18(24)
# Aralık seçim kaydı seçin, 0x0F(15)
# 0x03(03) Aralığı ayarla = +/-2gbus.write_byte_data(0x18, 0x0F, 0x03)
# BMA250 adresi, 0x18(24)# Bant genişliği kaydı seç, 0x10(16)
# 0x08(08) Bant genişliği = 7.81 Hzbus.write_byte_data(0x18, 0x10, 0x08)
zaman.uyku(0.5)
# BMA250 adresi, 0x18(24)
# 0x02(02), 6 bayttan veriyi geri oku
# X Ekseni LSB, X Ekseni MSB, Y Ekseni LSB, Y Ekseni MSB, Z Ekseni LSB, Z Ekseni MSB
veri = bus.read_i2c_block_data(0x18, 0x02, 6)
# Veriyi 10 bite dönüştürün
xAccl = (veri[1] * 256 + (veri[0] & 0xC0)) / 64
xAccl > 511 ise:
xAccl -= 1024
yAccl = (veri[3] * 256 + (veri[2] & 0xC0)) / 64
yAccl > 511 ise:
yAccl -= 1024
zAccl = (veri[5] * 256 + (veri[4] & 0xC0)) / 64
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
Kod aşağıdaki komut kullanılarak yürütülür:
$> piton BMA250.py gt; piton BMA250.py
Sensörün çıkışı, kullanıcının referans olması için yukarıdaki resimde gösterilmektedir.
Adım 4: Uygulamalar:
BMA250 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. BMA250, akıllı bir çip üzerinde hareket tetiklemeli kesinti kontrolörü ile birleştirilmiş üç eksenli bir dijital hızlanma sensörüdür.
Önerilen:
AD7416ARZ ve Raspberry Pi Kullanarak Sıcaklık Ölçümü: 4 Adım
AD7416ARZ ve Raspberry Pi Kullanarak Sıcaklık Ölçümü: AD7416ARZ, dört adet tek kanallı analog-dijital dönüştürücü ve içinde yerleşik bir sıcaklık sensörü bulunan 10-Bit sıcaklık sensörüdür. Parçaların üzerindeki sıcaklık sensörüne multiplexer kanalları üzerinden erişilebilir. Bu yüksek hassasiyetli sıcaklık
BH1715 ve Raspberry Pi Kullanarak Işık Şiddeti Ölçümü: 5 Adım
BH1715 ve Raspberry Pi Kullanarak Işık Şiddeti Ölçümü: Dün LCD ekranlar üzerinde çalışıyorduk ve bunlar üzerinde çalışırken ışık şiddeti hesaplamasının önemini fark ettik. Işık yoğunluğu sadece bu dünyanın fiziksel alanında önemli değildir, aynı zamanda biyolojik alanda da iyi söylenen rolü vardır
H3LIS331DL ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 4 Adım
H3LIS331DL ve Parçacık Fotonu Kullanarak İvme Ölçümü: H3LIS331DL, dijital I²C seri arayüzlü, “nano” ailesine ait, düşük güçlü, yüksek performanslı, 3 eksenli bir doğrusal ivmeölçerdir. H3LIS331DL, kullanıcı tarafından seçilebilen ±100g/±200g/±400g tam skalaya sahiptir ve hızlanmaları ölçebilir
BMA250 ve Arduino Nano Kullanarak İvme Ölçümü: 4 Adım
BMA250 ve Arduino Nano Kullanarak Hızlanma Ölçümü: BMA250, ±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 I2C dijital arabirimi aracılığıyla erişilebilir. Statiği ölçer
BMA250 ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 4 Adım
BMA250 ve Partikül Fotonu Kullanılarak Hızlanma Ölçümü: BMA250, ±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 I2C dijital arabirimi aracılığıyla erişilebilir. Statiği ölçer