İçindekiler:

MPU-6000 ve Parçacık Fotonu Kullanarak Hareket İzleme: 4 Adım
MPU-6000 ve Parçacık Fotonu Kullanarak Hareket İzleme: 4 Adım

Video: MPU-6000 ve Parçacık Fotonu Kullanarak Hareket İzleme: 4 Adım

Video: MPU-6000 ve Parçacık Fotonu Kullanarak Hareket İzleme: 4 Adım
Video: 14 | Measure angles with the MPU6050 accelerometer 2024, Kasım
Anonim
Image
Image

MPU-6000, içinde 3 Eksen ivmeölçer ve 3 Eksen jiroskop bulunan 6 Eksenli Hareket İzleme Sensörüdür. Bu sensör, 3 boyutlu düzlemde bir nesnenin tam konumunu ve konumunu verimli bir şekilde takip etme yeteneğine sahiptir. En yüksek hassasiyette pozisyon analizi gerektiren sistemlerde kullanılabilir.

Bu eğitimde, MPU-6000 sensör modülünün parçacık fotonu ile arayüzlenmesi gösterilmiştir. İvme ve dönme açısı değerlerini okumak için I2c adaptörlü parçacık 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:

Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım

Görevimizi gerçekleştirmek için gerekli malzemeler aşağıda belirtilen donanım bileşenlerini içerir:

1. MPU-6000

2. Parçacık Fotonu

3. I2C Kablosu

4. Parçacık fotonu için I2C Shield

Adım 2: Donanım Bağlantısı:

Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı
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:

MPU-6000, 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.

3. Adım: Hareket İzleme Kodu:

Hareket İzleme Kodu
Hareket İzleme Kodu

Ş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:

#include#include // MPU-6000 I2C adresi 0x68(104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup() { // Particle.variable değişkenini ayarla("i2cdevice", "MPU-6000"); Particle.variable("xAccl", xAccl); Particle.variable("yAccl",yAccl); Particle.variable("zAccl",zAccl); Particle.variable("xGyro", xGyro); Particle.variable("yGyro", yGyro); Particle.variable("zGyro", zGyro); // I2C iletişimini Master Wire.begin() olarak başlat; // Seri iletişimi başlat, baud hızını ayarla = 9600 Serial.begin(9600); // I2C iletimini başlat Wire.beginTransmission(Addr); // Jiroskop konfigürasyon kaydını seçin Wire.write(0x1B); // Tam ölçek aralığı = 2000 dps Wire.write(0x18); // I2C iletimini durdur Wire.endTransmission(); // I2C iletimini başlat Wire.beginTransmission(Addr); // İvmeölçer konfigürasyon kaydını seçin Wire.write(0x1C); // Tam ölçek aralığı = +/-16g Wire.write(0x18); // I2C iletimini durdur Wire.endTransmission(); // I2C iletimini başlat Wire.beginTransmission(Addr); // Güç yönetimi kaydını seçin Wire.write(0x6B); // xGyro referanslı PLL Wire.write(0x01); // I2C iletimini durdur Wire.endTransmission(); gecikme(300); } void loop() { unsigned int data[6]; // I2C iletimini başlat Wire.beginTransmission(Addr); // Veri kaydı seçin Wire.write(0x3B); // I2C iletimini durdur Wire.endTransmission(); // 6 bayt veri iste Wire.requestFrom(Addr, 6); // 6 bayt veri oku 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(800); // Verileri dönüştür xAccl = ((data[1] * 256) + data[0]); if (xAccl > 32767) { xAccl -= 65536; } yAccl = ((veri[3] * 256) + veri[2]); if (yAccl > 32767) { yAccl -= 65536; } zAccl = ((veri[5] * 256) + veri[4]); if (zAccl > 32767) {zAccl -= 65536; } gecikme(800); // I2C iletimini başlat Wire.beginTransmission(Addr); // Veri kaydı seçin Wire.write(0x43); // I2C iletimini durdur Wire.endTransmission(); // 6 bayt veri iste Wire.requestFrom(Addr, 6); // 6 bayt veri oku 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(); } // Veriyi dönüştür xGyro = ((data[1] * 256) + data[0]); if (xGyro > 32767) { xGyro -= 65536; } yGyro = ((veri[3] * 256) + veri[2]); if (yGyro > 32767) { yGyro -= 65536; } zGyro = ((veri[5] * 256) + veri[4]); if (zGyro > 32767) { zGyro -= 65536; } // Verileri panoya çıkar Particle.publish("X Ekseninde Hızlanma: ", String(xAccl)); gecikme(1000); Particle.publish("Y Ekseninde İvme: ", String(yAccl)); gecikme(1000); Particle.publish("Z-Ekseninde İvme: ", String(zAccl)); gecikme(1000); Particle.publish("X-Ekseni Dönme: ", String(xGyro)); gecikme(1000); Particle.publish("Y-Ekseni Döndürme: ", String(yGyro)); gecikme(1000); Particle.publish("Z-Dönme Ekseni: ", String(zGyro)); 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:

Uygulamalar
Uygulamalar

MPU-6000, uygulamasını akıllı telefonların ve tabletlerin hareket arayüzünde bulan bir hareket izleme sensörüdür. Akıllı telefonlarda bu sensörler, uygulamalar ve telefon kontrolü için hareket komutları, gelişmiş oyun, artırılmış gerçeklik, panoramik fotoğraf çekme ve görüntüleme, yaya ve araç navigasyonu gibi uygulamalarda kullanılabilir. MotionTracking teknolojisi, el cihazlarını ve tabletleri, sağlık ve fitness izlemeden konum tabanlı hizmetlere kadar çeşitli uygulamalarda kullanılabilen güçlü 3D akıllı cihazlara dönüştürebilir.

Önerilen: