İçindekiler:

MPU-6000 ve Raspberry Pi Kullanarak Hareket İzleme: 4 Adım
MPU-6000 ve Raspberry Pi Kullanarak Hareket İzleme: 4 Adım

Video: MPU-6000 ve Raspberry Pi Kullanarak Hareket İzleme: 4 Adım

Video: MPU-6000 ve Raspberry Pi Kullanarak Hareket İzleme: 4 Adım
Video: Arduino MPU 6050 - Gyro Sensor- Yön Sensörü - Arduino Dersleri - 65 - 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 ahududu pi ile arayüzlenmesi gösterilmiştir. İvme ve dönüş açısı değerlerini okumak için I2c adaptörlü ahududu 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:

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

Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:

1. MPU-6000

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

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

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

# MPU-6000 adresi, 0x68(104)

# Jiroskop konfigürasyon kaydını seçin, 0x1B(27)

# 0x18(24) Tam ölçek aralığı = 2000 dps

bus.write_byte_data(0x68, 0x1B, 0x18)

# MPU-6000 adresi, 0x68(104)

# İvmeölçer yapılandırma kaydını seçin, 0x1C(28)

# 0x18(24) Tam ölçek aralığı = +/-16g

bus.write_byte_data(0x68, 0x1C, 0x18)

# MPU-6000 adresi, 0x68(104)

# Güç yönetimi kaydı seçin1, 0x6B(107)

# 0x01(01) xGyro referanslı PLL

bus.write_byte_data(0x68, 0x6B, 0x01)

zaman.uyku(0.8)

# MPU-6000 adresi, 0x68(104)

# 0x3B(59), 6 bayttan veriyi geri oku

# İvmeölçer X Ekseni MSB, X Ekseni LSB, Y Ekseni MSB, Y Ekseni LSB, Z Ekseni MSB, Z Ekseni LSB

veri = bus.read_i2c_block_data(0x68, 0x3B, 6)

# Verileri dönüştürün

xAccl = veri[0] * 256 + veri[1]

xAccl > 32767 ise:

xAccl -= 65536

yAccl = veri[2] * 256 + veri[3]

yAccl > 32767 ise:

yAccl -= 65536

zAccl = veri[4] * 256 + veri[5]

zAccl > 32767 ise:

zAccl -= 65536

# MPU-6000 adresi, 0x68(104)

# 0x43(67), 6 bayttan veriyi geri oku

# Jirometre X Ekseni MSB, X Ekseni LSB, Y Ekseni MSB, Y Ekseni LSB, Z Ekseni MSB, Z Ekseni LSB

veri = bus.read_i2c_block_data(0x68, 0x43, 6)

# Verileri dönüştürün

xGyro = veri[0] * 256 + veri[1]

xGyro > 32767 ise:

xGyro -= 65536

yGyro = veri[2] * 256 + veri[3]

yGyro > 32767 ise:

yGyro -= 65536

zGyro = veri[4] * 256 + veri[5]

zGyro > 32767 ise:

zGyro -= 65536

# Ekrana veri çıkışı

print "X Ekseninde Hızlanma: %d" %xAccl

print "Y Ekseninde Hızlanma: %d" %yAccl

print "Z-Ekseninde Hızlanma: %d" %zAccl

print "X-Ekseni Dönme: %d" %xGyro

print "Y-Ekseni Dönme: %d" %yGyro

print "Z-Dönme Ekseni: %d" %zGyro

Kod aşağıdaki komut kullanılarak yürütülür:

$> piton MPU-6000.py gt; piton MPU-6000.py

Sensörün çıkışı, kullanıcının referans olması 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: