İçindekiler:
Video: ADXL345 ve Raspberry Pi Kullanarak İvme Ölçümü: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
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.
Bu eğitimde, ADXL345 sensör modülünün ahududu pi ile arayüzlenmesi ve python dili kullanılarak programlanması da gösterilmiştir. Tüm 3 eksendeki ivme değerlerini okumak için I2C adaptörlü raspberry pi kullandık. Bu I2C adaptörü sensör modülüne bağlantıyı daha kolay ve daha güvenilir hale getiriyor.
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. ADXL345
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:
ADXL345, 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ü 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. ADXL345 için python kodu, Her Şeyi Kontrol Et Topluluğu 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 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
Bu sensör için çalışan python kodunu buradan da kopyalayabilirsiniz:
smbus'u içe aktar
ithalat zamanı
# I2C veri yolunu al = smbus. SMBus(1)
# ADXL345 adresi, 0x53(83)
# Bant genişliği oranı kaydını 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
Aşağıda belirtilen kod kısmı, python kodlarının doğru yürütülmesi için gerekli kitaplıkları içerir.
smbusimport zamanını içe aktar
Komut istemine aşağıda belirtilen komutu yazarak kod çalıştırılabilir.
$> piton ADXL345.py
Sensörün çıkışı da kullanıcının referans olması açısından yukarıdaki resimde gösterilmektedir.
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:
ADXL345 ve Parçacık Fotonu Kullanarak İvme Ölçümü: 4 Adım
ADXL345 ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 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. Bunu ölçer
H3LIS331DL ve Arduino Nano Kullanarak İvme Ölçümü: 4 Adım
H3LIS331DL ve Arduino Nano Kullanarak İvme Ölçümü: H3LIS331DL, dijital I²C seri arayüzlü, “nano” ailesine ait, düşük güçlü, yüksek performanslı 3 eksenli doğrusal ivmeölçerdir. H3LIS331DL, kullanıcı tarafından seçilebilen ±100g/±200g/±400g tam skalaya sahiptir ve hızlanmaları ölçebilir
H3LIS331DL ve Raspberry Pi Kullanarak İvme Ölçümü: 4 Adım
H3LIS331DL ve Raspberry Pi Kullanarak İvme Ölçümü: H3LIS331DL, dijital I²C seri arayüzlü, “nano” ailesine ait, düşük güçlü, yüksek performanslı 3 eksenli 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
ADXL345 ve Arduino Nano Kullanarak İvme Ölçümü: 4 Adım
ADXL345 ve Arduino Nano Kullanarak İvme Ölçümü: 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. Bunu ölçer