İçindekiler:
Video: Kendi Kendini Dengeleyen Robot - PID Kontrol Algoritması: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Bu proje, Kontrol Algoritmaları ve işlevsel PID döngülerinin nasıl etkin bir şekilde uygulanacağı hakkında daha fazla şey öğrenmekle ilgilendiğim için tasarlandı. Bluetooth özellikli bir akıllı telefondan robot üzerinde kontrole izin verecek bir Bluetooth modülü henüz eklenmediğinden proje hala geliştirme aşamasındadır.
Kullanılan N20 DC motorları nispeten ucuzdu ve bu nedenle içlerinde önemli miktarda oynama var. Bu, motorlar tekerleklere tork uygularken 'gevşekliği' aşarken az miktarda sarsıntıya yol açar. Bu nedenle, mükemmel düzgün hareket elde etmek neredeyse imkansızdır. Yazdığım kod oldukça basit ama PID algoritmasının yeteneklerini etkili bir şekilde gösteriyor.
Proje özeti:
Robotun kasası, Ender 3 yazıcı kullanılarak 3D olarak yazdırılır ve birbirine bastırmak üzere tasarlanmıştır.
Robot, MPU6050'den sensör verilerini alan ve DC motorları harici bir motor sürücüsü aracılığıyla kontrol eden bir Arduino Uno tarafından kontrol edilir. 7.4V, 1500mAh pil ile çalışır. Motor sürücüsü, Arduino'ya güç sağlamak için bunu 5V'a ayarlar ve motorlara 7.4V sağlar.
Yazılım, gitHub'dan 'Arduino-KalmanFilter-master' ve 'Arduino-MPU6050-master' kütüphanelerinin yardımıyla sıfırdan yazılmıştır.
Gereçler:
- 3D Baskılı Parçalar
- Arduino UNO'su
- MPU6050 6 Eksen Sensörü
- DC Motor Sürücüsü
- N20 DC Motorlar (x2)
- 9V Pil
1. Adım: Robot Yapısı
Baskı ve Montaj
Tüm yapı baskılı olmalıdır, ancak dengeleme sırasında robotun tamamen sert olmasını sağlamak için bileşenleri sabitlemek için süper yapıştırıcı kullandım.
Parçaları Fusion 360'ta tasarladım ve daha sıkı toleranslar ve daha temiz bir yüzey kalitesi sağlamak için her parçayı desteksiz yazdırmak üzere optimize ettim.
Ender 3 Yazıcıda kullanılan ayarlar şunlardı: 0.16mm Katman Yükseklikleri @ tüm parçalar için %40 dolgu.
2. Adım: 3D Baskı Robotu
Şasi (x1)
Sol Tekerlek (x2)
Sol Motor Muhafazası (x2)
Arduino Kasası (x1)
Adım 3: PID Kontrol Algoritması
GitHub'dan 'Arduino-KalmanFilter-master' ve 'Arduino-MPU6050-master' kitaplıklarını kullanarak sıfırdan bir PID Kontrol Algoritması yazdım.
Algoritmanın temeli aşağıdaki gibidir:
- MPU6050'den ham verileri okuyun
- Sensörün hızlanmasından kaynaklanan jiroskop okumalarındaki yanlışlıkları ortadan kaldırmak için hem Jiroskoptan hem de İvmeölçerden gelen verileri analiz etmek için Kalman Filtresini kullanın. Bu, sensörün eğimi için derece cinsinden iki ondalık basamağa kadar nispeten düzleştirilmiş bir değer döndürür.
- Açıdaki Hatayı hesaplayın, yani: Sensör ile ayar noktası arasındaki açı.
- Orantılı hatayı (Orantılılık Sabiti x hatası) olarak hesaplayın.
- İntegral Hatasını (Entegrasyon Sabiti x hatası) toplamı olarak hesaplayın.
- Türev Hatasını Sabit Olarak Hesapla [(Farklılaşma Sabiti) x (Hatadaki Değişim / Zamandaki Değişim)]
- Motorlara gönderilecek hız çıkışını vermek için tüm hataları toplayın.
- Hata açısının işaretine göre motorları hangi yöne çevireceğinizi hesaplayın.
- Döngü süresiz olarak çalışacak ve girdi değiştikçe çıktıyı oluşturacaktır. Bir sonraki yineleme için çıkış değerlerini yeni giriş değerleri olarak kullanan bir geri besleme döngüsüdür.
Son Adım, PID döngüsü Kp, Ki & Kd parametrelerini ayarlamaktır.
- İyi bir başlangıç noktası, robot denge noktası etrafında salınan ve bir düşüş yakalayabilene kadar Kp'yi yavaşça artırmaktır.
- Ardından, Kd'yi Kp değerinin yaklaşık %1'inde başlatın ve salınımlar kaybolana ve robot itildiğinde pürüzsüzce kayana kadar yavaşça artırın.
- Son olarak, Kp'nin yaklaşık %20'si kadar Ki ile başlayın ve robot aktif olarak bir düşüşü yakalamak ve dikey konuma dönmek için ayar noktasını "aşana kadar" değiştirin.
Önerilen:
Magicbit'ten Kendi Kendini Dengeleyen Robot: 6 Adım
Magicbit'ten Kendi Kendini Dengeleyen Robot: Bu eğitim, Magicbit geliştirme kartını kullanarak kendi kendini dengeleyen bir robotun nasıl yapıldığını gösterir. ESP32 tabanlı bu projede geliştirme kartı olarak magicbit kullanıyoruz. Bu nedenle bu projede herhangi bir ESP32 geliştirme kartı kullanılabilir
İki Tekerlekli Kendi Kendini Dengeleyen Robot: 7 Adım
İki Tekerlekli Kendi Kendini Dengeleyen Robot: Bu talimat, kendi kendini dengeleyen bir robot için tasarım ve yapım sürecinden geçecektir. Bir not olarak, kendi kendini dengeleyen robotların yeni bir konsept olmadığını ve başkaları tarafından yapıldığını ve belgelendiğini söylemek istiyorum. Bu fırsatı kullanmak istiyorum
HeadBot – STEM Öğrenme ve Sosyal Yardım için Kendi Kendini Dengeleyen Robot: 7 Adım (Resimlerle)
HeadBot – STEM Öğrenimi ve Sosyal Yardımlaşma için Kendi Kendini Dengeleyen Robot: Headbot – iki fit uzunluğunda, kendi kendini dengeleyen bir robot – FIRST'te rekabetçi bir lise robotik ekibi olan South Eugene Robotik Ekibi'nin (SERT, FRC 2521) buluşudur. Eugene, Oregon'dan Robotik Yarışması. Bu popüler sosyal yardım robotu, yeniden
Uzaktan Kumandalı 3D Baskılı Kendi Kendini Dengeleyen Robot Nasıl Oluşturulur: 9 Adım (Resimlerle)
Uzaktan Kumandalı 3D Baskılı Kendi Kendini Dengeleyen Robot Nasıl Oluşturulur: Bu, B-robot'un önceki sürümünün bir evrimidir. %100 AÇIK KAYNAK / Arduino robotu. KOD, 3D parçalar ve elektronikler açıktır, bu yüzden onu değiştirmekten veya robotun büyük bir versiyonunu oluşturmaktan çekinmeyin. Şüpheleriniz, fikirleriniz veya yardıma ihtiyacınız varsa
Uzaktan Kumandalı Arduino Kendi Kendini Dengeleyen Robot Oluşturma: B-robot EVO: 8 Adım
Uzaktan Kumandalı Arduino Kendi Kendini Dengeleyen Robot Oluşturma: B-robot EVO: ------------------------------------ --------------GÜNCELLEME: Bu robotun yeni ve geliştirilmiş bir versiyonu burada: Yeni özelliklere sahip B-robot EVO!----------- --------------------------------------Nasıl çalışır?B-ROBOT EVO uzaktan kontrol