- Gerekli Bileşenler:
- MPU6050 Gyro Sensörü:
- Açıklama:
- Devre Şeması ve Açıklaması:
- Programlama Açıklaması
MPU6050 sensörünün tek çip üzerinde birçok işlevi vardır. Bir MEMS ivmeölçer, bir MEMS cayro ve sıcaklık sensöründen oluşur. Bu modül, analog değerleri dijitale çevirirken oldukça hassastır çünkü her kanal için 16 bit analogdan dijitale dönüştürücü donanımı vardır. Bu modül aynı anda x, y ve z kanallarını yakalayabilir. Ana bilgisayar denetleyicisiyle iletişim kurmak için bir I2C arayüzüne sahiptir. Bu MPU6050 modülü, hem ivmeölçer hem de cayroya sahip kompakt bir çiptir. Bu, dronlar, robotlar, hareket sensörleri gibi birçok uygulama için çok kullanışlı bir cihazdır. Jiroskop veya Üç eksenli ivmeölçer olarak da adlandırılır.
Bugün bu yazıda bu MPU6050 Jiroskop'u Arduino ile arayüzleyeceğiz ve 16x2 LCD üzerindeki değerleri göstereceğiz.
Gerekli Bileşenler:
- Arduino Uno
- MPU-6050
- 10K Tencere
- Atlama teli
- Breadboard
- USB kablosu
- Güç kaynağı
MPU6050 Gyro Sensörü:
MPU-6050, tek bir çipte bulunan 8 pinli 6 eksenli bir cayro ve ivmeölçerdir. Bu modül varsayılan olarak I2C seri iletişiminde çalışır, ancak kaydını yapılandırarak SPI arayüzü için yapılandırılabilir. I2C için bunun SDA ve SCL hatları vardır. Neredeyse tüm pinler çok işlevlidir ancak burada sadece I2C mod pinleri ile ilerliyoruz.
PIN konfigürasyonu:
Vcc: - bu pin MPU6050 modülüne toprağa göre güç sağlamak için kullanılır
GND: - bu toprak pimi
SDA: - SDA pin, denetleyici ve mpu6050 modülü arasındaki veriler için kullanılır
SCL: - SCL pini saat girişi için kullanılır
XDA: - Bu, harici sensörlerden yapılandırma ve okuma için sensör I2C SDA Veri hattıdır ((isteğe bağlı) bizim durumumuzda kullanılmaz)
XCL: - Bu, harici sensörlerden yapılandırma ve okuma için sensör I2C SCL saat hattıdır ((isteğe bağlı) bizim durumumuzda kullanılmamaktadır)
ADO: - I2C Slave Adresi LSB (bizim durumumuzda geçerli değildir)
INT: - Verinin hazır olduğunu gösteren kesinti pini.
Açıklama:
Bu yazımızda Arduino ile MPU6050 kullanarak LCD üzerinden sıcaklık, cayro ve ivmeölçer okumalarını gösteriyoruz. Bu modül bize çıktıda satır değerleri ve normalleştirilmiş değerler verir, ancak satır değerleri sabit değildir, bu nedenle burada LCD üzerinden normalleştirilmiş değerler gösteriyoruz. Sadece ivmeölçer değeri istiyorsanız, Arduino ile birlikte İvme Ölçer ADXL335 de kullanabilirsiniz.
Bu projede öncelikle LCD üzerinden bir sıcaklık değeri gösterdik ve 10 saniye sonra jiroskop değerlerini gösteriyoruz ve 10 saniye sonra aşağıdaki resimlerde gösterildiği gibi ivmeölçer okumalarına sahibiz:
Devre Şeması ve Açıklaması:
MPU6050'yi Arduino ile arayüzlemek için devre şeması çok basittir burada bir LCD ve MPU6050 kullandık. Ve burada bir dizüstü bilgisayar USB güç kaynağı kullandık. LCD'nin parlaklığını kontrol etmek için 10k'lik bir pot kullanılır. MPU6050 ile bağlantılı olarak, MPU6050'nin 3.3v güç kaynağı ve topraklamasını Arduino'nun 3.3v ve toprağına bağladığımız 5 bağlantı yaptık. MPU6050'nin SCL ve SDA pinleri Arduino'nun A4 ve A5 pinlerine bağlanır. Ve MPU6050'nin INT pini, Arduino'nun (D2) 0 kesintisine bağlanır. LCD'ler RS, RW ve EN doğrudan Arduino'nun 8, gnd ve 9'una bağlanır. Veri pini doğrudan 10, 11, 12 ve 13 numaralı dijital pimlere bağlanır.
Programlama Açıklaması
Programlama kısmı da bu proje için kolaydır. Burada bu MPU6050 kütüphanesini Arduino ile arayüz oluşturmak için kullandık. Öncelikle MPU6050 kütüphanesini GitHub'dan indirip Arduino IDE'ye kurmamız gerekiyor.
Ondan sonra, örnekte örnek kodlar bulabiliriz. Kullanıcı bu kodu doğrudan Arduino'ya yükleyerek test edebilir ve değerleri seri monitör üzerinden görebilir. Ya da kullanıcı makale sonunda verdiğimiz kodumuzu LCD ve seri monitör üzerinden değerleri göstermek için kullanabilir.
Kodlamada, MPU6050 ve LCD gibi bazı gerekli kitaplıkları dahil ettik.
#Dahil etmek
In kurulum fonksiyonu, biz iki cihazı başlatmak LCD üzerinde ve yazma hoş geldiniz mesajı
geçersiz kurulum () {lcd.begin (16,2); lcd.createChar (0, derece); Serial.begin (9600); Serial.println ("MPU6050'yi Başlat"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Aygıt Bulunamadı"); Serial.println ("Geçerli bir MPU6050 sensörü bulunamadı, kablolamayı kontrol edin!"); gecikme (500); } sayım = 0; mpu.calibrateGyro (); mpu.setThreshold (3); In döngü Function, biz her 10saniye üç fonksiyonu çağrıda , ve okuma ivmeölçer sıcaklık, jiroskop gösteren LCD ekranda. Bu üç işlev tempShow, gyroShow ve accelShow'dur , bu işlevleri bu makalenin sonunda verilen tam Arduino kodunda kontrol edebilirsiniz:
geçersiz döngü () {lcd.clear (); lcd.print ("Sıcaklık"); uzun st = milis (); Serial.println ("Sıcaklık"); while (milis ()
MPU6050 cayro ve ivmeölçer, herhangi bir cihazın konumunu ve yönünü tespit etmek için kullanılır. Gyro, x, y ve z ekseni konumlarını belirlemek için yerçekimini kullanır ve ivmeölçer, hareketin değişim oranına göre tespit eder. İvmeölçeri Arduino ile zaten birçok projemizde kullandık:
- İvme Ölçer Tabanlı El Hareketi Kontrollü Robot
- Arduino Tabanlı Araç Kaza Uyarı Sistemi
- Arduino kullanarak Deprem Dedektörü Alarmı