İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu talimat, Güney Florida Üniversitesi'ndeki Makecourse proje gereksinimini yerine getirmek için oluşturulmuştur (www.makecourse.com)
Bu projenin amacı, Arduino nano + 3 servo motor + MPU6050 jiroskop/ivmeölçer kullanarak GoPro için 3 eksenli bir Gimbal oluşturmaktı. Bu projede MPU6050 jiroskop/ivmeölçer kullanarak 2 eksen (Roll and yalpalama) kontrol ettim, üçüncü eksen(yaw) HC-05 ve Android App Store'da bulunan Arduino BlueControl uygulaması yardımıyla uzaktan ve manuel olarak kontrol ediliyor..
Bu çalışma aynı zamanda Gimbal'ın mekanik bileşenlerinin tüm 3D tasarım dosyalarını da içermektedir. Kolayca 3D baskı için.stl dosyaları ve en altta 3D tasarım dosyaları paylaştım.
Projemin başında planım 3 fırçasız motorla 3 eksenli gimbal yapmaktı, çünkü fırçasız motorlar servo motorlara kıyasla pürüzsüz ve daha duyarlıdır. Fırçasız motorlar yüksek hızlı uygulamalarda kullanılır, bu nedenle ESC (kontrolör) satın alma motorunun hızını ayarlayabiliriz. Ama Gimbal projesinde fırçasız motor kullanabilmek için fırçasız motoru bir servo gibi sürmem gerektiğini anladım. Servo motorlarda motorun konumu bilinmektedir. Ama fırçasız motorda motorun konumunu bilmiyoruz, bu yüzden fırçasız motorun bir dezavantajı, nasıl süreceğimi anlayamadım. Sonunda yüksek tork gerektiren Gimbal projesi için 3 adet MG995 servo motor kullanmaya karar verdim. MPU6050 gyro kullanarak 2 servo motorun roll ve pitch eksenini, yalpa ekseni servo motorunu HC-05 bluetooth ve Android uygulamasını kullanarak kontrol ettim.
Adım 1: Bileşenler
Bu projede kullandığım bileşenler;
1- Arduino Nano (1 adet) (Mikro usb)
2- MG995 Servo motorlar (3 adet)
3- GY-521 MPU6050 3 eksen İvmeölçer/Jiroskop (1 adet)
4- HC-05 Bluetooth Modülü (Yaw(Servo3) eksenini uzaktan kontrol etmek için)
4-5V mikro usb taşınabilir şarj cihazı
Adım 2: 3 Servo Motor + MPU6050 Gyro + HC-05 Uygulaması
Servo Kablolama
Servo1 (Yuvarlanma), Servo2 (Adım), Servo3(Yaw)
Servo motorların 3 kablosu vardır: VCC(kırmızı), GND(kahverengi veya siyah), PWM(sarı).
D3 => Servo1 PWM(sarı tel)
D4 => Servo2 PWM(sarı tel)
D5 => Servo3 PWM(sarı tel)
Arduino'nun 5V PIN'i => 3 servo motorun VCC(kırmızı).
Arduino'nun GND PIN'i => 3 servo motorun GND (kahverengi veya siyah)
MPU6050 cayro kablolama
A4 => SDA
A5 => SCL
Arduino'nun 3.3 V PIN'i => MPU6050'nin VCC'si
Arduino'nun GND PIN'i => MPU6050'nin GND'si
HC-05 Bluetooth kablolama
D9 => TX
D10 => RX
Arduino'nun 3.3 V PIN'i => HC-05 Bluetooth'un VCC'si
Arduino'nun GND PIN'i => HC-05 Bluetooth'un GND'si
Adım 3: 3B Tasarım ve İşlevsellik
Gimbal'ın 3D tasarımını piyasada satılan diğer Gimbal'lardan referans alarak tamamladım. Servo motorlarla dönen üç ana bileşen vardır. Boyutuna uyan bir GoPro montajı tasarladım.
Tüm 3D tasarımların.step dosyası, düzenlemeyi kolaylaştırmak için altta paylaşılmıştır.
Adım 4: Kontrol Mekanizması
Gimbal projemin ana algoritması Euler açılarına alternatif olan Quaternion rotasyonunu kullanıyor. Quaternion algoritmasını kullanarak sorunsuz hareket sağlamak için helper_3dmath.h kütüphanesini referans olarak kullandım. Adım ekseni tepkisi düzgün olsa da, yuvarlanma ekseni çubuk hareketine yanıt vermek için gecikir. Quaternion algoritmasını kullanarak Roll ve Pitch servo motorlarını kontrol edebildim. Sapma eksenini kullanmak istiyorsanız, sadece sapma eksenini kontrol etmek için ikinci MPU6050'yi kullanmanız gerekebilir. Alternatif bir çözüm olarak HC-05'i yapılandırdım ve yaw eksenini uzaktan kumanda ile android uygulaması ile butonları kullanarak kontrol ettim. Düğmeye her basıldığında, yalpa ekseni servosu 10 derece döner.
Bu projede dışarıdan import etmem gereken kütüphaneler;
1- I2Cdev.h // MPU6050 ile iletişimi sağlamak için wire.h ile kullanılır
2- "MPU6050_6Axis_MotionApps20.h" // Jiroskop kütüphanesi
3- // Dijital pinleri RX ve TX pinlerine çevirmeyi sağlar (HC-05 bluetooth modülüne ihtiyaç vardır)
4-
5- // İki data pini (SDA ve SCL) kullanan I2C cihazları ile haberleşmeyi sağlar =>MPU6050
Ana kod Jeff Rowberg tarafından oluşturuldu ve onu proje işlevselliğime göre değiştirdim ve tüm işlevleri ino dosyasında yorumladım.