İçindekiler:
- Adım 1: Donanım Gerekli:
- Adım 2: Donanım Bağlantısı:
- Adım 3: İvmeyi Ölçmek için Kod:
- Adım 4: Uygulamalar:
Video: BMA250 ve Parçacık Fotonu 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 Parçacık fotonu kullanarak üç dikey eksenin tümünde ivmeyi ölçeceğ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. BMA250
2. Parçacık Fotonu
3. I2C Kablosu
4. Parçacık Fotonu için I2C Kalkanı
Adım 2: Donanım Bağlantısı:
Donanım bağlantısı bölümü temel olarak sensör ve parçacık fotonu 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: İvmeyi Ölçmek için Kod:
Şimdi parçacık koduyla başlayalım.
Sensör modülünü arduino ile kullanırken application.h ve spark_wiring_i2c.h kütüphanesini dahil ediyoruz. "application.h" ve spark_wiring_i2c.h kitaplığı, sensör ve parçacık arasındaki i2c iletişimini kolaylaştıran işlevleri içerir.
Parçacık kodunun tamamı, kullanıcının rahatlığı için aşağıda verilmiştir:
#Dahil etmek
#Dahil etmek
// BMA250 I2C adresi 0x18(24)
#define Addr 0x18
int xAccl = 0, yAccl = 0, zAccl = 0;
geçersiz kurulum()
{
// Değişken ayarla
Particle.variable("i2ccihaz", "BMA250");
Particle.variable("xAccl", xAccl);
Particle.variable("yAccl",yAccl);
Particle.variable("zAccl",zAccl);
// I2C iletişimini MASTER olarak başlat
Wire.begin();
// Seri iletişimi başlat, baud hızını ayarla = 9600
Seri.başla(9600);
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Aralık seçim kaydı seç
Wire.write(0x0F);
// Aralığı ayarla +/- 2g
Wire.write(0x03);
// I2C İletimini Durdur
Wire.endTransmission();
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Bant genişliği kaydını seç
Wire.write(0x10);
// Bant genişliğini 7,81 Hz ayarla
Wire.write(0x08);
// I2C İletimini Durdur
Wire.endTransmission();
gecikme(300);}
boşluk döngüsü()
{
imzasız int veri[0];
// I2C İletimini Başlat
Wire.beginTransmission(Adr);
// Veri Kayıtlarını Seç (0x02 − 0x07)
Wire.write(0x02);
// I2C İletimini Durdur
Wire.endTransmission();
// 6 bayt iste
Wire.requestFrom(Adr, 6);
// Altı baytı oku
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if(Wire.available() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
veri[3] = Wire.read();
veri[4] = Wire.read();
veri[5] = Wire.read();
}
gecikme(300);
// Veriyi 10 bite dönüştürün
xAccl = ((veri[1] * 256) + (veri[0] & 0xC0)) / 64;
eğer (xAccl > 511)
{
xAccl -= 1024;
}
yAccl = ((veri[3] * 256) + (veri[2] & 0xC0)) / 64;
eğer (yAccl > 511)
{
yAccl -= 1024;
}
zAccl = ((veri[5] * 256) + (veri[4] & 0xC0)) / 64;
eğer (zAccl > 511)
{
zAccl -= 1024;
}
// Gösterge tablosuna veri çıkışı
Particle.publish("X-Ekseninde İvme:", String(xAccl));
gecikme(1000);
Particle.publish("Y Ekseninde İvme:", String(yAccl));
gecikme(1000);
Particle.publish("Z Ekseninde İvme:", String(zAccl));
gecikme(1000);
}
Particle.variable() işlevi, sensörün çıktısını depolamak için değişkenleri oluşturur ve Particle.publish() işlevi, çıktıyı sitenin panosunda görüntüler.
Sensör çıkışı, referansınız 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:
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
HMC5883 ve Parçacık Fotonu Kullanarak Manyetik Alan Ölçümü: 4 Adım
HMC5883 ve Parçacık Fotonu Kullanarak Manyetik Alan Ölçümü: HMC5883, düşük alanlı manyetik algılama için tasarlanmış bir dijital pusuladır. Bu cihaz, +/-8 Oe geniş bir manyetik alan aralığına ve 160 Hz çıkış hızına sahiptir. HMC5883 sensörü, otomatik manyetiklik giderme kayış sürücüleri, ofset iptali ve bir
HYT939 ve Parçacık Fotonu Kullanarak Nem Ölçümü: 4 Adım
HYT939 ve Particle Photon Kullanılarak Nem Ölçümü: HYT939, I2C haberleşme protokolü ile çalışan dijital bir nem sensörüdür. Tıbbi sistemler ve laboratuvarlar söz konusu olduğunda nem çok önemli bir parametredir, bu nedenle bu hedeflere ulaşmak için HYT939'u ahududu pi ile arayüzlemeye çalıştık. BEN
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 Raspberry Pi Kullanarak Hızlanma Ölçümü: 4 Adım
BMA250 ve Raspberry Pi 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