İçindekiler:
- Adım 1: Donanım Gerekli:
- Adım 2: Donanım Bağlantısı:
- Adım 3: Manyetik Alan Yoğunluğunu Ölçmek için Java Kodu:
- Adım 4: Uygulamalar:
Video: HMC5883 ve Raspberry Pi Kullanarak Manyetik Alan Ölçümü: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
HMC5883, düşük alanlı manyetik algılama için tasarlanmış dijital bir 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 1° ila 2° pusula yönü doğruluğu sağlayan 12 bitlik bir ADC içerir. Tüm I²C Mini Modülleri 5VDC'de çalışacak şekilde tasarlanmıştır.
Bu dersimizde HMC5883'ün Raspberry pi ile detaylı çalışmasını ve Java programlama dilini kullanarak programlamasını anlatacağız.
Adım 1: Donanım Gerekli:
Görevi gerçekleştirmek için gereken donanım aşağıdaki gibidir:
1. HMC5883
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:
HMC5883, 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: Manyetik Alan Yoğunluğunu Ölçmek için Java 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 Java'da programlama olduğunu gösteriyoruz. HMC5883 için java 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 java durumunda pi4j 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:
pi4j.com/install.html
Bu sensör için çalışan Java kodunu buradan da kopyalayabilirsiniz:
com.pi4j.io.i2c. I2CBus'u içe aktarın;
com.pi4j.io.i2c. I2CDevice'ı içe aktarın;
mport com.pi4j.io.i2c. I2CFFactory;
java.io. IOException'ı içe aktar;genel sınıf HMC5883
{
public static void main(String args) İstisna atar
{
// I2C veri yolu oluştur
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// I2C cihazını al, HMC5883 I2C adresi 0x1E(30)
I2CDevice cihazı = Bus.getDevice(0x1E);
// Yapılandırma kaydı A'yı seçin
// Normal ölçüm konfigürasyonu, veri hızı o/p = 0.75 Hz
device.write(0x00, (bayt)0x60);
// Mod kaydını seç
// Sürekli ölçüm modu
device.write(0x02, (bayt)0x00);
thread.sleep(500);
// 0x03(3)'ten 6 bayt veri oku
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
bayt veri = yeni bayt[6];
device.read(0x03, veri, 0, 6);
// Verileri dönüştür
int xMag = ((veri[0] ve 0xFF) * 256 + (veri[1] ve 0xFF));
if(xMag > 32767)
{
xMag -= 65536;
}
int zMag = ((veri[2] ve 0xFF) * 256 + (veri[3] ve 0xFF));
if(zMag > 32767)
{
zMag -= 65536;
}
int yMag = ((veri[4] & 0xFF) * 256 + (veri[5] & 0xFF));
if(yMag > 32767)
{
yMag -= 65536;
}
// Ekrana veri çıktısı
System.out.printf("X Ekseninde Manyetik alan: %d %n", xMag);
System.out.printf("Y Ekseninde Manyetik alan: %d %n", yMag);
System.out.printf("Z Ekseninde Manyetik alan: %d %n", zMag);
}
}
Write() ve read() işlevleri sırasıyla komutları yazmak ve sensör çıktısını okumak için kullanılır. Aşağıdaki kısım manyetik alan değerlerinin okunmasını göstermektedir.
// 0x03(3)'ten 6 bayt veri oku
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
bayt veri = yeni bayt[6];
device.read(0x03, veri, 0, 6);
Çıktı yukarıdaki resimde gösterilmiştir.
Adım 4: Uygulamalar:
HMC5883, düşük maliyetli pusula ve manyetometri gibi uygulamalar için dijital bir arayüze sahip düşük alanlı manyetik algılama için tasarlanmış yüzeye monte, çok çipli bir modüldür. Bir ila iki derecelik yüksek düzeyde doğruluk ve hassasiyet, Yaya Navigasyonu ve LBS Uygulamalarına olanak tanı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
HMC5883 ve Arduino Nano Kullanarak Manyetik Alan Ölçümü: 4 Adım
HMC5883 ve Arduino Nano Kullanarak Manyetik Alan Ölçümü: HMC5883, düşük alan manyetik algılama için tasarlanmış dijital bir 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
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
3 Eksenli Manyetik Alan Sensörü: 10 Adım (Resimli)
3 Eksenli Manyetik Alan Sensörü: Kablosuz güç aktarım sistemleri, geleneksel kablolu şarjın yerini alma yolundadır. Minik biyomedikal implantlardan devasa elektrikli araçları kablosuz olarak şarj etmeye kadar. Kablosuz güç araştırmasının ayrılmaz bir parçası