İçindekiler:
- Adım 1: Donanım Gerekli:
- Adım 2: Donanım Bağlantısı:
- 3. Adım: Hareket İzleme Kodu:
- Adım 4: Uygulamalar:
Video: MPU-6000 ve Arduino Nano Kullanarak Hareket İzleme: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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 arduino nano ile arayüzlenmesi gösterilmiştir. İvme ve dönüş açısı değerlerini okumak için I2c adaptörlü arduino nano 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. MPU-6000
2. Arduino Nano
3. I2C Kablosu
4. arduino nano 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 arduino nano 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:
Şimdi arduino koduyla başlayalım.
Sensör modülünü arduino ile kullanırken Wire.h kütüphanesini dahil ediyoruz. "Wire" kütüphanesi, sensör ve arduino kartı arasındaki i2c iletişimini kolaylaştıran fonksiyonları içerir.
Tüm arduino kodu, kullanıcının rahatlığı için aşağıda verilmiştir:
#Dahil etmek
// MPU-6000 I2C adresi 0x68(104)
#define Addr 0x68
geçersiz kurulum()
{
// 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 iletimini başlat
Wire.beginTransmission(Adr);
// Jiroskop konfigürasyon kaydını seç
Wire.write(0x1B);
// Tam ölçek aralığı = 2000 dps
Wire.write(0x18);
// I2C iletimini durdur
Wire.endTransmission();
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// İvmeölçer yapılandırma kaydını seç
Wire.write(0x1C);
// Tam ölçek aralığı = +/-16g
Wire.write(0x18);
// I2C iletimini durdur
Wire.endTransmission();
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Güç yönetimi kaydını seç
Wire.write(0x6B);
// xGyro referanslı PLL
Wire.write(0x01);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(300);
}
boşluk döngüsü()
{
imzasız int veri[6];
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x3B);
// I2C iletimini durdur
Wire.endTransmission();
// 6 bayt veri iste
Wire.requestFrom(Adr, 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();
}
// Verileri dönüştür
int xAccl = veri[0] * 256 + veri[1];
int yAccl = veri[2] * 256 + veri[3];
int zAccl = veri[4] * 256 + veri[5];
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x43);
// I2C iletimini durdur
Wire.endTransmission();
// 6 bayt veri iste
Wire.requestFrom(Adr, 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();
}
// Verileri dönüştür
int xGyro = veri[0] * 256 + veri[1];
int yGyro = veri[2] * 256 + veri[3];
int zGyro = veri[4] * 256 + veri[5];
// Verileri seri monitöre çıkar
Serial.print("X Ekseninde Hızlanma: ");
Serial.println(xAccl);
Serial.print("Y Ekseninde İvme: ");
Seri.println(yAccl);
Serial.print("Z Ekseninde İvme: ");
Serial.println(zAccl);
Serial.print("X Dönme Ekseni: ");
Serial.println(xGyro);
Serial.print("Y-Ekseni Dönme: ");
Serial.println(yGyro);
Serial.print("Z-Dönme Ekseni: ");
Serial.println(zGyro);
gecikme(500);
}
Tel kitaplığında Wire.write() ve Wire.read() komutları yazmak ve sensör çıkışını okumak için kullanılır.
Serial.print() ve Serial.println(), sensörün çıktısını Arduino IDE'nin seri monitöründe görüntülemek için kullanılır.
Sensörün çıkışı yukarıdaki resimde gösterilmektedir.
Adım 4: 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:
DIY Akıllı Robot İzleme Araç Kitleri Araba İzleme Işığa Duyarlı: 7 Adım
DIY Akıllı Robot Takip Araç Kitleri Araba Takip Işığa Duyarlı: Design by SINONING ROBOTTizleme robotu carTheoryLM393 çipinden satın alabilirsiniz, iki fotodirenci karşılaştırın, bir tarafı BEYAZ üzerinde fotodirenç LED'i olduğunda motorun tarafı hemen duracak, motorun diğer tarafı döndür, böylece
Adosia IoT WiFi Controller + Hareket Algılama Kullanarak Kertenkele Teraryumu İzleme: 17 Adım (Resimlerle)
Adosia IoT WiFi Controller + Hareket Algılama Kullanarak Bir Kertenkele Teraryumunu İzleme: Bu derste, dışarıda bahçe yaparken yanlışlıkla bulduğumuz ve rahatsız ettiğimiz bir avuç skink yumurta için basit bir kertenkele teraryumunun nasıl yapıldığını göstereceğiz. Yumurtaların güvenli bir şekilde yumurtadan çıkmasını istiyoruz, yani tek yapacağımız bir plast kullanarak güvenli bir alan yaratmak
MCP9808 ve Arduino Nano Kullanarak Sıcaklık İzleme: 4 Adım
MCP9808 ve Arduino Nano Kullanarak Sıcaklık İzleme: MCP9808, yüksek doğrulukta bir dijital sıcaklık sensörü ±0.5°C I2C mini modülüdür. Sıcaklık algılama uygulamalarını kolaylaştıran, kullanıcı tarafından programlanabilen kayıtlarla yapılandırılmışlardır. MCP9808 yüksek hassasiyetli sıcaklık sensörü bir endüstri haline geldi
Raspberry Pi ve AIS328DQTR Kullanarak Hızlandırmayı Python Kullanarak İzleme: 6 Adım
Raspberry Pi ve AIS328DQTR Kullanarak İvmeyi Python Kullanarak İzleme: İvme sonludur, bence bazı Fizik yasalarına göre. Karaya çıkan en hızlı yaratık, arada bir avını yakalamak için en yüksek hızını kullanır. NS
SHT25 ve Arduino Nano Kullanarak Sıcaklık ve Nem İzleme: 5 Adım
SHT25 ve Arduino Nano Kullanarak Sıcaklık ve Nem İzleme: Son zamanlarda sıcaklık ve nem izleme gerektiren çeşitli projeler üzerinde çalıştık ve daha sonra bu iki parametrenin bir sistemin çalışma verimliliğini tahmin etmede gerçekten çok önemli bir rol oynadığını fark ettik. Hem sanayide